diff --git a/_proto/Makefile b/_proto/Makefile new file mode 100644 index 000000000..baf437cc5 --- /dev/null +++ b/_proto/Makefile @@ -0,0 +1,37 @@ +space := $(empty) $(empty) +comma := , +empty := + +import_path = github.com/deis/tiller/pkg/proto/hapi + +dst = ../pkg/proto +target = go +plugins = grpc + +chart_ias = $(subst $(space),$(comma),$(addsuffix =$(import_path)/$(chart_pkg),$(addprefix M,$(chart_pbs)))) +chart_pbs = $(wildcard hapi/chart/*.proto) +chart_pkg = chart + +release_ias = $(subst $(space),$(comma),$(addsuffix =$(import_path)/$(release_pkg),$(addprefix M,$(release_pbs)))) +release_pbs = $(wildcard hapi/release/*.proto) +release_pkg = release + +services_ias = $(subst $(space),$(comma),$(addsuffix =$(import_path)/$(services_pkg),$(addprefix M,$(services_pbs)))) +services_pbs = $(wildcard hapi/services/*.proto) +services_pkg = services + +google_deps = Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any + +all: chart release services + +chart: + protoc --$(target)_out=plugins=$(plugins),$(google_deps),$(chart_ias):$(dst) $(chart_pbs) + +release: + protoc --$(target)_out=plugins=$(plugins),$(google_deps),$(chart_ias):$(dst) $(release_pbs) + +services: + protoc --$(target)_out=plugins=$(plugins),$(google_deps),$(chart_ias),$(release_ias):$(dst) $(services_pbs) + +clean: + @rm -rf $(dst)/hapi 2>/dev/null diff --git a/_proto/aaa.proto b/_proto/aaa.proto deleted file mode 100644 index 4db9d8f94..000000000 --- a/_proto/aaa.proto +++ /dev/null @@ -1,48 +0,0 @@ -syntax = "proto3"; -package hapi; - -message Chart { - // Option 1: Chart is raw []byte data - // Option 2: List of files as []byte data, with special treatment for Chart.yaml - // Option 3: Completely parsed out (probably very inflexible, ultimately) - - // Option 2: - Chartfile chartfile = 1; - Values defaultValues = 2; - map templates = 3; // filename => []bytes - repeated Chart charts = 4; -} - -// Values represents a set of values that will be passed into the template. -message Values { - // Option 1: "values" is unparsed TOML data (raw []byte) - // Option 2: Model TOML in Protobuf (not _too_ bad) - // Option 3: Force everything into a map[string]string model -} - -message Release { - string name = 1; -} - -message Status { - StatusCode code = 1; - string msg = 2; -} - -message Error { - ErrorCode errror_code = 1; - string error_msg = 2; -} - -enum ErrorCode { - ERROR_CODE_UNSET = 0; - BAD_REQUEST = 1; -} - -enum StatusCode { - STATUS_CODE_UNSET = 0; - UNKNOWN = 1; - DEPLOYED = 2; - DELETED = 3; - SUPERSEDED = 4; -} diff --git a/_proto/chartfile.proto b/_proto/chartfile.proto deleted file mode 100644 index 07921f624..000000000 --- a/_proto/chartfile.proto +++ /dev/null @@ -1,36 +0,0 @@ -syntax = "proto3"; -package hapi; - -// Maintainer is a chart maintainer -message Maintainer { - // Name is a user name or organization name - string name = 1; - // Email is an optional email address to contact the named maintainer - string email = 2; -} - -// Chartfile represents the structure of a Chart.yaml file. -// -// Spec: https://github.com/kubernetes/helm/blob/master/docs/design/chart_format.md#the-chart-file -// -// Fields: -// - name: The name of the chart -// - verison: The SemVer 2 conformant version of the chart -// - description: A once-sentence description of the chart -// - keywords: A list of string keywords -message Chartfile { - // Name is the name of the chart - string name = 1; - // Version is the SemVer 2 version of the chart - string version = 2; - // Description is a sentence describing the chart - string description = 3; - // Keywords is a list of keywords describing the chart - repeated string keywords = 4; - // Maintainers is the set of maintainers of this chart - repeated Maintainer maintainers = 5; - // Source is the URL to the source code of this chart - string source = 6; - // Home is the URL to the chart's home page - string home = 7; -} diff --git a/_proto/get.proto b/_proto/get.proto deleted file mode 100644 index e66fcc03e..000000000 --- a/_proto/get.proto +++ /dev/null @@ -1,20 +0,0 @@ -syntax = "proto3"; -package hapi; - -import "aaa.proto"; - -message GetRequest { - string name = 1; -} - -message GetResponseError { - oneof response { - Error err = 1; - GetResponse get_response = 2; - } -} - -message GetResponse { - Chart chart = 1; - Values values = 2; -} diff --git a/_proto/hapi/chart/chart.proto b/_proto/hapi/chart/chart.proto new file mode 100644 index 000000000..67bb79ee4 --- /dev/null +++ b/_proto/hapi/chart/chart.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +package hapi.chart; + +import "hapi/chart/metadata.proto"; +import "hapi/chart/template.proto"; + +option go_package = "chart"; + +// +// Chart: +// A chart is a helm package that contains metadata, a default config, zero or more +// optionally parameterizable templates, and zero or more charts (dependencies). +// +message Chart { + // TODO + hapi.chart.Metadata metadata = 1; + + // TODO + hapi.chart.Templates templates = 2; + + // TODO + repeated Chart dependencies = 3; +} diff --git a/_proto/hapi/chart/config.proto b/_proto/hapi/chart/config.proto new file mode 100644 index 000000000..e5c51e9a7 --- /dev/null +++ b/_proto/hapi/chart/config.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package hapi.chart; + +option go_package = "chart"; + +// +// Config: +// +// A config supplies values to the parametrizable templates of a chart. +// +message Config { +} diff --git a/_proto/hapi/chart/metadata.proto b/_proto/hapi/chart/metadata.proto new file mode 100644 index 000000000..3068aa452 --- /dev/null +++ b/_proto/hapi/chart/metadata.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; + +package hapi.chart; + +option go_package = "chart"; + +// +// Maintainer: +// +// A descriptor of the Chart maintainer(s). +// +message Maintainer { + // Name is a user name or organization name + string name = 1; + + // Email is an optional email address to contact the named maintainer + string email = 2; +} + +// +// Metadata: +// +// Metadata for a Chart file. This models the structure +// of a Chart.yaml file. +// +// Spec: https://github.com/kubernetes/helm/blob/master/docs/design/chart_format.md#the-chart-file +// +message Metadata { + // The name of the chart + string name = 1; + + // The URL to a relecant project page, git repo, or contact person + string home = 2; + + // Source is the URL to the source code of this chart + string source = 3; + + // A SemVer 2 conformant version string of the chart + string version = 4; + + // A one-sentence description of the chart + string description = 5; + + // A list of string keywords + repeated string keywords = 6; + + // A list of name and URL/email address combinations for the maintainer(s) + repeated Maintainer maintainers = 7; +} diff --git a/_proto/hapi/chart/template.proto b/_proto/hapi/chart/template.proto new file mode 100644 index 000000000..4f9968966 --- /dev/null +++ b/_proto/hapi/chart/template.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; + +package hapi.chart; + +option go_package = "chart"; + +// +// Template: +// +// TODO +// +message Templates { + // TODO + repeated Template templates = 1; +} + +message Template { + // TODO + string template_name = 1; + + // TODO + bytes template_data = 2; +} diff --git a/_proto/hapi/release/info.proto b/_proto/hapi/release/info.proto new file mode 100644 index 000000000..09e022ecd --- /dev/null +++ b/_proto/hapi/release/info.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package hapi.release; + +import "google/protobuf/timestamp.proto"; +import "hapi/release/status.proto"; + +option go_package = "release"; + +// +// Info: +// +// +message Info { + Status status = 1; + + google.protobuf.Timestamp first_deployed = 2; + + google.protobuf.Timestamp last_deployed = 3; +} diff --git a/_proto/hapi/release/release.proto b/_proto/hapi/release/release.proto new file mode 100644 index 000000000..0caa3cf28 --- /dev/null +++ b/_proto/hapi/release/release.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; + +package hapi.release; + +import "hapi/release/info.proto"; +import "hapi/chart/config.proto"; +import "hapi/chart/chart.proto"; + +option go_package = "release"; + +// +// Release: +// +// TODO +// +message Release { + // TODO + string name = 1; + + // TODO + hapi.release.Info info = 2; + + // TODO + hapi.chart.Chart chart = 3; + + // TODO + hapi.chart.Config config = 4; +} diff --git a/_proto/hapi/release/status.proto b/_proto/hapi/release/status.proto new file mode 100644 index 000000000..9ec021005 --- /dev/null +++ b/_proto/hapi/release/status.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package hapi.release; + +import "google/protobuf/any.proto"; + +option go_package = "release"; + +// +// Status: +// +// +message Status { + enum Code { + UNKNOWN = 0; + + DEPLOYED = 1; + + DELETED = 2; + + SUPERSEDED = 3; + } + + Code code = 1; + + google.protobuf.Any details = 2; +} diff --git a/_proto/hapi/services/probe.proto b/_proto/hapi/services/probe.proto new file mode 100644 index 000000000..062b37bdb --- /dev/null +++ b/_proto/hapi/services/probe.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +package hapi.services.probe; + +option go_package = "services"; + +service ProbeService { + rpc Ready(ReadyRequest) returns (ReadyResponse) { + } +} + +message ReadyRequest { +} + +message ReadyResponse { +} diff --git a/_proto/hapi/services/tiller.proto b/_proto/hapi/services/tiller.proto new file mode 100644 index 000000000..6704477f8 --- /dev/null +++ b/_proto/hapi/services/tiller.proto @@ -0,0 +1,190 @@ +syntax = "proto3"; + +package hapi.services.tiller; + +import "hapi/release/release.proto"; +import "hapi/release/status.proto"; + +option go_package = "services"; + +// +// ReleaseService: +// +// The service that a helm application uses to mutate, +// query, and manage releases. +// +// Release: A named installation composed of a chart and +// config. At any given time a release has one +// chart and one config. +// +// Config: A config is a TOML file that supplies values +// to the parametrizable templates of a chart. +// +// Chart: A chart is a helm package that contains +// metadata, a default config, zero or more +// optionally parameterizable templates, and +// zero or more charts (dependencies). +// +// +service ReleaseService { + // + // Retrieve release history. TODO: Allow filtering the set of releases by + // release status. By default, ListAllReleases returns the releases who + // current status is "Active". + // + rpc ListReleases(ListReleasesRequest) returns (stream ListReleasesResponse) { + } + + // + // Retrieve status information for the specified release. + // + rpc GetReleaseStatus(GetReleaseStatusRequest) returns (GetReleaseStatusResponse) { + } + + // + // Retrieve the release content (chart + value) for the specifed release. + // + rpc GetReleaseContent(GetReleaseContentRequest) returns (GetReleaseContentResponse) { + } + + // + // Update release content. + // + rpc UpdateRelease(UpdateReleaseRequest) returns (UpdateReleaseResponse) { + } + + // + // Request release install. + // + rpc InstallRelease(InstallReleaseRequest) returns (InstallReleaseResponse) { + } + + // + // Request release deletion. + // + rpc UninstallRelease(UninstallReleaseRequest) returns (UninstallReleaseResponse) { + } +} + +// +// ListReleasesRequest: +// +// TODO +// +message ListReleasesRequest { + // The maximum number of releases to be returned + int64 limit = 1; + + // The zero-based offset at which the returned release list begins + int64 offset = 2; +} + +// +// ListReleasesResponse: +// +// TODO +// +message ListReleasesResponse { + // The expected total number of releases to be returned + int64 count = 1; + + // The zero-based offset at which the list is positioned + int64 offset = 2; + + // The total number of queryable releases + int64 total = 3; + + // The resulting releases + repeated hapi.release.Release releases = 4; +} + +// +// GetReleaseStatusRequest: +// +// TODO +// +message GetReleaseStatusRequest { + // The name of the release + string release_name = 1; +} + +// +// GetReleaseStatusResponse: +// +// TODO +// +message GetReleaseStatusResponse { + // The name of the release + string release_name = 1; + + // The release status + hapi.release.Status release_status = 2; +} + +// +// GetReleaseContentRequest: +// +// TODO +// +message GetReleaseContentRequest { + // The name of the release + string release_name = 1; +} + +// +// GetReleaseContentResponse: +// +// TODO +// +message GetReleaseContentResponse { + // The release content + hapi.release.Release release = 1; +} + +// +// UpdateReleaseRequest: +// +// TODO +// +message UpdateReleaseRequest { +} + +// +// UpdateReleaseResponse: +// +// TODO +// +message UpdateReleaseResponse { +} + +// +// InstallReleaseRequest: +// +// TODO +// +message InstallReleaseRequest { +} + +// +// InstallReleaseResponse: +// +// TODO +// +message InstallReleaseResponse { +} + +// +// UninstallReleaseRequest: +// +// TODO +// +message UninstallReleaseRequest { +} + +// +// UninstallReleaseResponse: +// +// TODO +// +message UninstallReleaseResponse { +} diff --git a/_proto/helm.proto b/_proto/helm.proto deleted file mode 100644 index 7abfe35e3..000000000 --- a/_proto/helm.proto +++ /dev/null @@ -1,48 +0,0 @@ -syntax = "proto3"; - -/* -// No server -helm init -helm create -helm fetch // Fetch chart from repo -helm search -helm package - -// Server - -// Releases -helm install CHART -helm list -helm uninstall RELEASE -helm status RELEASE -helm get RELEASE -helm update RELEASE -*/ - -// hapi: The Helm API -package hapi; - -service ReleaseService { - rpc Install (InstallRequest) returns (InstallResponseError) {} - rpc List (ListRequest) returns (ListResponseError) {} - rpc Uninstall (UninstallRequest) returns (UninstallResponseError) {} - rpc Status (StatusRequest) returns (StatusResponseError) {} - rpc Get (GetRequest) returns (GetResponseError) {} - // rpc Update (UpdateRequest) returns (UpdateResponseError) {} -} - -// Probe is used to check liveness and readiness. -service Probe { - // Run a readiness test. - rpc Ready (PingRequest) returns (PingResponse) {} -} - -// The readiness test request. -message PingRequest { - string name = 1; -} - -// The readiness test response. -message PingResponse { - string status = 1; -} diff --git a/_proto/install.proto b/_proto/install.proto deleted file mode 100644 index 1d6459671..000000000 --- a/_proto/install.proto +++ /dev/null @@ -1,20 +0,0 @@ -syntax = "proto3"; -package hapi; - -message InstallRequest{ - string name = 1 - Chart chart = 2 - Values values = 3 -} - -message InstallResponseError { - oneof response { - Error = 1 - InstallResponse = 2 - } -} - -message InstallResponse{ - string name = 1 - Status status = 2 -} diff --git a/_proto/list.proto b/_proto/list.proto deleted file mode 100644 index 6dc0b9f5d..000000000 --- a/_proto/list.proto +++ /dev/null @@ -1,20 +0,0 @@ -syntax = "proto3"; -package hapi; - -message ListRequest { - int64 limit = 1; - int64 offset = 2; -} - -message ListResponseError { - oneof response { - Error = 1 - ListResponse = 2 - } -} -message ListResponse { - repeated Release releases = 1; - int64 count = 2; - int64 offset = 3; - int64 total = 4; -} diff --git a/_proto/status.proto b/_proto/status.proto deleted file mode 100644 index 87ae4d5f9..000000000 --- a/_proto/status.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package hapi; - -message StatusRequest { - string name = 1 -} - -message StatusResponseError { - oneof response { - Error = 1 - StatusResponse = 2 - } -} -message StatusResponse { - Release release = 1; - Status status = 2 -} diff --git a/_proto/uninstall.proto b/_proto/uninstall.proto deleted file mode 100644 index 60a348f3d..000000000 --- a/_proto/uninstall.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package hapi; - -message UninstallRequest{ - string name = 1 -} - -message UninstallResponseError { - oneof response { - Error = 1 - UninstallResponse = 2 - } -} - -message UninstallResponse{ - Status status = 1 -} diff --git a/pkg/proto/hapi/chart/chart.pb.go b/pkg/proto/hapi/chart/chart.pb.go new file mode 100644 index 000000000..36570e173 --- /dev/null +++ b/pkg/proto/hapi/chart/chart.pb.go @@ -0,0 +1,94 @@ +// Code generated by protoc-gen-go. +// source: hapi/chart/chart.proto +// DO NOT EDIT! + +/* +Package chart is a generated protocol buffer package. + +It is generated from these files: + hapi/chart/chart.proto + hapi/chart/config.proto + hapi/chart/metadata.proto + hapi/chart/template.proto + +It has these top-level messages: + Chart + Config + Maintainer + Metadata + Templates + Template +*/ +package chart + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +const _ = proto.ProtoPackageIsVersion1 + +// +// Chart: +// A chart is a helm package that contains metadata, a default config, zero or more +// optionally parameterizable templates, and zero or more charts (dependencies). +// +type Chart struct { + // TODO + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata" json:"metadata,omitempty"` + // TODO + Templates *Templates `protobuf:"bytes,2,opt,name=templates" json:"templates,omitempty"` + // TODO + Dependencies []*Chart `protobuf:"bytes,3,rep,name=dependencies" json:"dependencies,omitempty"` +} + +func (m *Chart) Reset() { *m = Chart{} } +func (m *Chart) String() string { return proto.CompactTextString(m) } +func (*Chart) ProtoMessage() {} +func (*Chart) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *Chart) GetMetadata() *Metadata { + if m != nil { + return m.Metadata + } + return nil +} + +func (m *Chart) GetTemplates() *Templates { + if m != nil { + return m.Templates + } + return nil +} + +func (m *Chart) GetDependencies() []*Chart { + if m != nil { + return m.Dependencies + } + return nil +} + +func init() { + proto.RegisterType((*Chart)(nil), "hapi.chart.Chart") +} + +var fileDescriptor0 = []byte{ + // 169 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0xcb, 0x48, 0x2c, 0xc8, + 0xd4, 0x4f, 0xce, 0x48, 0x2c, 0x2a, 0x81, 0x90, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x5c, + 0x20, 0x71, 0x3d, 0xb0, 0x88, 0x94, 0x24, 0x92, 0x9a, 0xdc, 0xd4, 0x92, 0xc4, 0x94, 0xc4, 0x92, + 0x44, 0x88, 0x32, 0x14, 0xa9, 0x92, 0xd4, 0xdc, 0x82, 0x9c, 0xc4, 0x92, 0x54, 0x88, 0x94, 0xd2, + 0x52, 0x46, 0x2e, 0x56, 0x67, 0x90, 0x84, 0x90, 0x01, 0x17, 0x07, 0x4c, 0x9b, 0x04, 0xa3, 0x02, + 0xa3, 0x06, 0xb7, 0x91, 0x88, 0x1e, 0xc2, 0x78, 0x3d, 0x5f, 0xa8, 0x5c, 0x10, 0x5c, 0x95, 0x90, + 0x31, 0x17, 0x27, 0xcc, 0xb4, 0x62, 0x09, 0x26, 0xb0, 0x16, 0x51, 0x64, 0x2d, 0x21, 0x30, 0xc9, + 0x20, 0x84, 0x3a, 0x21, 0x53, 0x2e, 0x9e, 0x94, 0xd4, 0x82, 0xd4, 0xbc, 0x94, 0xd4, 0xbc, 0xe4, + 0x4c, 0xa0, 0x3e, 0x66, 0x05, 0x66, 0xa0, 0x3e, 0x41, 0x64, 0x7d, 0x60, 0xf7, 0x04, 0xa1, 0x28, + 0x73, 0x62, 0x8f, 0x62, 0x05, 0x4b, 0x26, 0xb1, 0x81, 0xdd, 0x6d, 0x0c, 0x08, 0x00, 0x00, 0xff, + 0xff, 0xd3, 0xb1, 0x38, 0xe5, 0x13, 0x01, 0x00, 0x00, +} diff --git a/pkg/proto/hapi/chart/config.pb.go b/pkg/proto/hapi/chart/config.pb.go new file mode 100644 index 000000000..191a7e304 --- /dev/null +++ b/pkg/proto/hapi/chart/config.pb.go @@ -0,0 +1,40 @@ +// Code generated by protoc-gen-go. +// source: hapi/chart/config.proto +// DO NOT EDIT! + +package chart + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// +// Config: +// +// A config supplies values to the parametrizable templates of a chart. +// +type Config struct { +} + +func (m *Config) Reset() { *m = Config{} } +func (m *Config) String() string { return proto.CompactTextString(m) } +func (*Config) ProtoMessage() {} +func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } + +func init() { + proto.RegisterType((*Config)(nil), "hapi.chart.Config") +} + +var fileDescriptor1 = []byte{ + // 74 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0xcf, 0x48, 0x2c, 0xc8, + 0xd4, 0x4f, 0xce, 0x48, 0x2c, 0x2a, 0xd1, 0x4f, 0xce, 0xcf, 0x4b, 0xcb, 0x4c, 0xd7, 0x2b, 0x28, + 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x02, 0x49, 0xe8, 0x81, 0x25, 0x94, 0x38, 0xb8, 0xd8, 0x9c, 0xc1, + 0x72, 0x4e, 0xec, 0x51, 0xac, 0x60, 0xa1, 0x24, 0x36, 0xb0, 0x2a, 0x63, 0x40, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x98, 0x3b, 0x34, 0xb8, 0x40, 0x00, 0x00, 0x00, +} diff --git a/pkg/proto/hapi/chart/metadata.pb.go b/pkg/proto/hapi/chart/metadata.pb.go new file mode 100644 index 000000000..56ee4e021 --- /dev/null +++ b/pkg/proto/hapi/chart/metadata.pb.go @@ -0,0 +1,91 @@ +// Code generated by protoc-gen-go. +// source: hapi/chart/metadata.proto +// DO NOT EDIT! + +package chart + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// +// Maintainer: +// +// A descriptor of the Chart maintainer(s). +// +type Maintainer struct { + // Name is a user name or organization name + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // Email is an optional email address to contact the named maintainer + Email string `protobuf:"bytes,2,opt,name=email" json:"email,omitempty"` +} + +func (m *Maintainer) Reset() { *m = Maintainer{} } +func (m *Maintainer) String() string { return proto.CompactTextString(m) } +func (*Maintainer) ProtoMessage() {} +func (*Maintainer) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } + +// +// Metadata: +// +// Metadata for a Chart file. This models the structure +// of a Chart.yaml file. +// +// Spec: https://github.com/kubernetes/helm/blob/master/docs/design/chart_format.md#the-chart-file +// +type Metadata struct { + // The name of the chart + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // The URL to a relecant project page, git repo, or contact person + Home string `protobuf:"bytes,2,opt,name=home" json:"home,omitempty"` + // Source is the URL to the source code of this chart + Source string `protobuf:"bytes,3,opt,name=source" json:"source,omitempty"` + // A SemVer 2 conformant version string of the chart + Version string `protobuf:"bytes,4,opt,name=version" json:"version,omitempty"` + // A one-sentence description of the chart + Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` + // A list of string keywords + Keywords []string `protobuf:"bytes,6,rep,name=keywords" json:"keywords,omitempty"` + // A list of name and URL/email address combinations for the maintainer(s) + Maintainers []*Maintainer `protobuf:"bytes,7,rep,name=maintainers" json:"maintainers,omitempty"` +} + +func (m *Metadata) Reset() { *m = Metadata{} } +func (m *Metadata) String() string { return proto.CompactTextString(m) } +func (*Metadata) ProtoMessage() {} +func (*Metadata) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} } + +func (m *Metadata) GetMaintainers() []*Maintainer { + if m != nil { + return m.Maintainers + } + return nil +} + +func init() { + proto.RegisterType((*Maintainer)(nil), "hapi.chart.Maintainer") + proto.RegisterType((*Metadata)(nil), "hapi.chart.Metadata") +} + +var fileDescriptor2 = []byte{ + // 224 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x6c, 0x90, 0xb1, 0x4e, 0xc3, 0x30, + 0x10, 0x86, 0x15, 0xda, 0x24, 0xe5, 0xb2, 0x9d, 0x50, 0x65, 0x98, 0xa2, 0x4e, 0x4c, 0xae, 0x04, + 0x12, 0x62, 0x66, 0xef, 0xd2, 0x91, 0xed, 0x48, 0x4e, 0x8a, 0x05, 0x8e, 0x23, 0xdb, 0x80, 0x78, + 0x57, 0x1e, 0x06, 0xf7, 0x1a, 0x92, 0x0c, 0x1d, 0x22, 0xdd, 0xff, 0x7d, 0x77, 0x91, 0x7e, 0xc3, + 0x6d, 0x47, 0x83, 0xd9, 0x37, 0x1d, 0xf9, 0xb8, 0xb7, 0x1c, 0xa9, 0xa5, 0x48, 0x7a, 0xf0, 0x2e, + 0x3a, 0x84, 0x93, 0xd2, 0xa2, 0x76, 0x4f, 0x00, 0x07, 0x32, 0x7d, 0x4c, 0x1f, 0x7b, 0x44, 0x58, + 0xf7, 0x64, 0x59, 0x65, 0x75, 0x76, 0x7f, 0x7d, 0x94, 0x19, 0x6f, 0x20, 0x67, 0x4b, 0xe6, 0x43, + 0x5d, 0x09, 0x3c, 0x87, 0xdd, 0x6f, 0x06, 0x9b, 0xc3, 0xf8, 0xdb, 0x8b, 0x67, 0x89, 0x75, 0x2e, + 0xb1, 0xf3, 0x95, 0xcc, 0xb8, 0x85, 0x22, 0xb8, 0x4f, 0xdf, 0xb0, 0x5a, 0x09, 0x1d, 0x13, 0x2a, + 0x28, 0xbf, 0xd8, 0x07, 0xe3, 0x7a, 0xb5, 0x16, 0xf1, 0x1f, 0xb1, 0x86, 0xaa, 0xe5, 0xd0, 0x78, + 0x33, 0xc4, 0x93, 0xcd, 0xc5, 0x2e, 0x11, 0xde, 0xc1, 0xe6, 0x9d, 0x7f, 0xbe, 0x9d, 0x6f, 0x83, + 0x2a, 0xea, 0x55, 0xd2, 0x53, 0xc6, 0x67, 0xa8, 0xec, 0x54, 0x2e, 0xa8, 0x32, 0xe9, 0xea, 0x61, + 0xab, 0xe7, 0xfa, 0x7a, 0xee, 0x7e, 0x5c, 0xae, 0xbe, 0x94, 0xaf, 0xb9, 0x2c, 0xbc, 0x15, 0xf2, + 0x64, 0x8f, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x23, 0x79, 0xfc, 0xf8, 0x4f, 0x01, 0x00, 0x00, +} diff --git a/pkg/proto/hapi/chart/template.pb.go b/pkg/proto/hapi/chart/template.pb.go new file mode 100644 index 000000000..f5b6b3704 --- /dev/null +++ b/pkg/proto/hapi/chart/template.pb.go @@ -0,0 +1,67 @@ +// Code generated by protoc-gen-go. +// source: hapi/chart/template.proto +// DO NOT EDIT! + +package chart + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// +// Template: +// +// TODO +// +type Templates struct { + // TODO + Templates []*Template `protobuf:"bytes,1,rep,name=templates" json:"templates,omitempty"` +} + +func (m *Templates) Reset() { *m = Templates{} } +func (m *Templates) String() string { return proto.CompactTextString(m) } +func (*Templates) ProtoMessage() {} +func (*Templates) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} } + +func (m *Templates) GetTemplates() []*Template { + if m != nil { + return m.Templates + } + return nil +} + +type Template struct { + // TODO + TemplateName string `protobuf:"bytes,1,opt,name=template_name,json=templateName" json:"template_name,omitempty"` + // TODO + TemplateData []byte `protobuf:"bytes,2,opt,name=template_data,json=templateData,proto3" json:"template_data,omitempty"` +} + +func (m *Template) Reset() { *m = Template{} } +func (m *Template) String() string { return proto.CompactTextString(m) } +func (*Template) ProtoMessage() {} +func (*Template) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{1} } + +func init() { + proto.RegisterType((*Templates)(nil), "hapi.chart.Templates") + proto.RegisterType((*Template)(nil), "hapi.chart.Template") +} + +var fileDescriptor3 = []byte{ + // 146 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0x48, 0x2c, 0xc8, + 0xd4, 0x4f, 0xce, 0x48, 0x2c, 0x2a, 0xd1, 0x2f, 0x49, 0xcd, 0x2d, 0xc8, 0x49, 0x2c, 0x49, 0xd5, + 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x02, 0x49, 0xe9, 0x81, 0xa5, 0x94, 0xec, 0xb9, 0x38, + 0x43, 0xa0, 0xb2, 0xc5, 0x42, 0x46, 0x5c, 0x9c, 0x30, 0xa5, 0xc5, 0x12, 0x8c, 0x0a, 0xcc, 0x1a, + 0xdc, 0x46, 0x22, 0x7a, 0x08, 0xc5, 0x7a, 0x30, 0x95, 0x41, 0x08, 0x65, 0x4a, 0x21, 0x5c, 0x1c, + 0x30, 0x61, 0x21, 0x65, 0x2e, 0x5e, 0x98, 0x44, 0x7c, 0x5e, 0x62, 0x6e, 0x2a, 0xd0, 0x0c, 0x46, + 0x0d, 0xce, 0x20, 0x1e, 0x98, 0xa0, 0x1f, 0x50, 0x0c, 0x45, 0x51, 0x4a, 0x62, 0x49, 0xa2, 0x04, + 0x13, 0x50, 0x11, 0x0f, 0x42, 0x91, 0x0b, 0x50, 0xcc, 0x89, 0x3d, 0x8a, 0x15, 0x6c, 0x65, 0x12, + 0x1b, 0xd8, 0xc9, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0xda, 0x77, 0x0e, 0xcf, 0x00, + 0x00, 0x00, +} diff --git a/pkg/proto/hapi/release/info.pb.go b/pkg/proto/hapi/release/info.pb.go new file mode 100644 index 000000000..72c3225c5 --- /dev/null +++ b/pkg/proto/hapi/release/info.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. +// source: hapi/release/info.proto +// DO NOT EDIT! + +/* +Package release is a generated protocol buffer package. + +It is generated from these files: + hapi/release/info.proto + hapi/release/release.proto + hapi/release/status.proto + +It has these top-level messages: + Info + Release + Status +*/ +package release + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import google_protobuf "github.com/golang/protobuf/ptypes/timestamp" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +const _ = proto.ProtoPackageIsVersion1 + +// +// Info: +// +// +type Info struct { + Status *Status `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` + FirstDeployed *google_protobuf.Timestamp `protobuf:"bytes,2,opt,name=first_deployed,json=firstDeployed" json:"first_deployed,omitempty"` + LastDeployed *google_protobuf.Timestamp `protobuf:"bytes,3,opt,name=last_deployed,json=lastDeployed" json:"last_deployed,omitempty"` +} + +func (m *Info) Reset() { *m = Info{} } +func (m *Info) String() string { return proto.CompactTextString(m) } +func (*Info) ProtoMessage() {} +func (*Info) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +func (m *Info) GetStatus() *Status { + if m != nil { + return m.Status + } + return nil +} + +func (m *Info) GetFirstDeployed() *google_protobuf.Timestamp { + if m != nil { + return m.FirstDeployed + } + return nil +} + +func (m *Info) GetLastDeployed() *google_protobuf.Timestamp { + if m != nil { + return m.LastDeployed + } + return nil +} + +func init() { + proto.RegisterType((*Info)(nil), "hapi.release.Info") +} + +var fileDescriptor0 = []byte{ + // 194 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0xcf, 0x48, 0x2c, 0xc8, + 0xd4, 0x2f, 0x4a, 0xcd, 0x49, 0x4d, 0x2c, 0x4e, 0xd5, 0xcf, 0xcc, 0x4b, 0xcb, 0xd7, 0x2b, 0x28, + 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x01, 0x49, 0xe8, 0x41, 0x25, 0xa4, 0xe4, 0xd3, 0xf3, 0xf3, 0xd3, + 0x73, 0x52, 0xf5, 0xc1, 0x72, 0x49, 0xa5, 0x69, 0xfa, 0x25, 0x99, 0xb9, 0xa9, 0xc5, 0x25, 0x89, + 0xb9, 0x05, 0x10, 0xe5, 0x52, 0x92, 0x28, 0xe6, 0x00, 0x65, 0x4a, 0x4a, 0x8b, 0x21, 0x52, 0x4a, + 0x3b, 0x18, 0xb9, 0x58, 0x3c, 0x81, 0x06, 0x0b, 0xe9, 0x70, 0xb1, 0x41, 0x24, 0x24, 0x18, 0x15, + 0x18, 0x35, 0xb8, 0x8d, 0x44, 0xf4, 0x90, 0xed, 0xd0, 0x0b, 0x06, 0xcb, 0x05, 0x41, 0xd5, 0x08, + 0x39, 0x72, 0xf1, 0xa5, 0x65, 0x16, 0x15, 0x97, 0xc4, 0xa7, 0xa4, 0x16, 0xe4, 0xe4, 0x57, 0xa6, + 0xa6, 0x48, 0x30, 0x81, 0x75, 0x49, 0xe9, 0x41, 0xdc, 0xa2, 0x07, 0x73, 0x8b, 0x5e, 0x08, 0xcc, + 0x2d, 0x41, 0xbc, 0x60, 0x1d, 0x2e, 0x50, 0x0d, 0x42, 0xf6, 0x5c, 0xbc, 0x39, 0x89, 0xc8, 0x26, + 0x30, 0x13, 0x34, 0x81, 0x07, 0xa4, 0x01, 0x66, 0x80, 0x13, 0x67, 0x14, 0x3b, 0xd4, 0x75, 0x49, + 0x6c, 0x60, 0xc5, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfb, 0xae, 0xa9, 0x99, 0x31, 0x01, + 0x00, 0x00, +} diff --git a/pkg/proto/hapi/release/release.pb.go b/pkg/proto/hapi/release/release.pb.go new file mode 100644 index 000000000..5f14340d9 --- /dev/null +++ b/pkg/proto/hapi/release/release.pb.go @@ -0,0 +1,78 @@ +// Code generated by protoc-gen-go. +// source: hapi/release/release.proto +// DO NOT EDIT! + +package release + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import hapi_chart "github.com/deis/tiller/pkg/proto/hapi/chart" +import hapi_chart3 "github.com/deis/tiller/pkg/proto/hapi/chart" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// +// Release: +// +// TODO +// +type Release struct { + // TODO + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // TODO + Info *Info `protobuf:"bytes,2,opt,name=info" json:"info,omitempty"` + // TODO + Chart *hapi_chart3.Chart `protobuf:"bytes,3,opt,name=chart" json:"chart,omitempty"` + // TODO + Config *hapi_chart.Config `protobuf:"bytes,4,opt,name=config" json:"config,omitempty"` +} + +func (m *Release) Reset() { *m = Release{} } +func (m *Release) String() string { return proto.CompactTextString(m) } +func (*Release) ProtoMessage() {} +func (*Release) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } + +func (m *Release) GetInfo() *Info { + if m != nil { + return m.Info + } + return nil +} + +func (m *Release) GetChart() *hapi_chart3.Chart { + if m != nil { + return m.Chart + } + return nil +} + +func (m *Release) GetConfig() *hapi_chart.Config { + if m != nil { + return m.Config + } + return nil +} + +func init() { + proto.RegisterType((*Release)(nil), "hapi.release.Release") +} + +var fileDescriptor1 = []byte{ + // 182 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0xca, 0x48, 0x2c, 0xc8, + 0xd4, 0x2f, 0x4a, 0xcd, 0x49, 0x4d, 0x2c, 0x4e, 0x85, 0xd1, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, + 0x42, 0x3c, 0x20, 0x39, 0x3d, 0xa8, 0x98, 0x94, 0x38, 0x8a, 0xca, 0xcc, 0xbc, 0xb4, 0x7c, 0x88, + 0x32, 0xa8, 0x44, 0x72, 0x46, 0x62, 0x51, 0x89, 0x7e, 0x72, 0x7e, 0x5e, 0x5a, 0x66, 0x3a, 0x54, + 0x42, 0x0c, 0x59, 0x02, 0x44, 0x42, 0xc4, 0x95, 0x66, 0x31, 0x72, 0xb1, 0x07, 0x41, 0xcc, 0x11, + 0x12, 0xe2, 0x62, 0xc9, 0x4b, 0xcc, 0x4d, 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, + 0x85, 0xd4, 0xb8, 0x58, 0x40, 0xc6, 0x4b, 0x30, 0x01, 0xc5, 0xb8, 0x8d, 0x84, 0xf4, 0x90, 0x9d, + 0xa1, 0xe7, 0x09, 0x94, 0x09, 0x02, 0xcb, 0x0b, 0xa9, 0x73, 0xb1, 0x82, 0x8d, 0x95, 0x60, 0x06, + 0x2b, 0x14, 0x84, 0x28, 0x84, 0xd8, 0xe4, 0x0c, 0x22, 0x83, 0x20, 0xf2, 0x42, 0x5a, 0x5c, 0x6c, + 0x10, 0x87, 0x49, 0xb0, 0x20, 0x1b, 0x09, 0x55, 0x09, 0x96, 0x09, 0x82, 0xaa, 0x70, 0xe2, 0x8c, + 0x62, 0x87, 0x5a, 0x95, 0xc4, 0x06, 0x76, 0xae, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0xb4, 0xa3, + 0x61, 0x9d, 0x24, 0x01, 0x00, 0x00, +} diff --git a/pkg/proto/hapi/release/status.pb.go b/pkg/proto/hapi/release/status.pb.go new file mode 100644 index 000000000..178402c8e --- /dev/null +++ b/pkg/proto/hapi/release/status.pb.go @@ -0,0 +1,86 @@ +// Code generated by protoc-gen-go. +// source: hapi/release/status.proto +// DO NOT EDIT! + +package release + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import google_protobuf1 "github.com/golang/protobuf/ptypes/any" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +type Status_Code int32 + +const ( + Status_UNKNOWN Status_Code = 0 + Status_DEPLOYED Status_Code = 1 + Status_DELETED Status_Code = 2 + Status_SUPERSEDED Status_Code = 3 +) + +var Status_Code_name = map[int32]string{ + 0: "UNKNOWN", + 1: "DEPLOYED", + 2: "DELETED", + 3: "SUPERSEDED", +} +var Status_Code_value = map[string]int32{ + "UNKNOWN": 0, + "DEPLOYED": 1, + "DELETED": 2, + "SUPERSEDED": 3, +} + +func (x Status_Code) String() string { + return proto.EnumName(Status_Code_name, int32(x)) +} +func (Status_Code) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{0, 0} } + +// +// Status: +// +// +type Status struct { + Code Status_Code `protobuf:"varint,1,opt,name=code,enum=hapi.release.Status_Code" json:"code,omitempty"` + Details *google_protobuf1.Any `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"` +} + +func (m *Status) Reset() { *m = Status{} } +func (m *Status) String() string { return proto.CompactTextString(m) } +func (*Status) ProtoMessage() {} +func (*Status) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} } + +func (m *Status) GetDetails() *google_protobuf1.Any { + if m != nil { + return m.Details + } + return nil +} + +func init() { + proto.RegisterType((*Status)(nil), "hapi.release.Status") + proto.RegisterEnum("hapi.release.Status_Code", Status_Code_name, Status_Code_value) +} + +var fileDescriptor2 = []byte{ + // 215 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0x48, 0x2c, 0xc8, + 0xd4, 0x2f, 0x4a, 0xcd, 0x49, 0x4d, 0x2c, 0x4e, 0xd5, 0x2f, 0x2e, 0x49, 0x2c, 0x29, 0x2d, 0xd6, + 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x01, 0x49, 0xe9, 0x41, 0xa5, 0xa4, 0x24, 0xd3, 0xf3, + 0xf3, 0xd3, 0x73, 0x52, 0xf5, 0xc1, 0x72, 0x49, 0xa5, 0x69, 0xfa, 0x89, 0x79, 0x95, 0x10, 0x85, + 0x4a, 0xcb, 0x19, 0xb9, 0xd8, 0x82, 0xc1, 0x3a, 0x85, 0x74, 0xb9, 0x58, 0x92, 0xf3, 0x53, 0x52, + 0x25, 0x18, 0x15, 0x18, 0x35, 0xf8, 0x8c, 0x24, 0xf5, 0x90, 0x8d, 0xd0, 0x83, 0xa8, 0xd1, 0x73, + 0x06, 0x2a, 0x08, 0x02, 0x2b, 0x13, 0xd2, 0xe3, 0x62, 0x4f, 0x49, 0x2d, 0x49, 0xcc, 0xcc, 0x29, + 0x96, 0x60, 0x02, 0xea, 0xe0, 0x36, 0x12, 0xd1, 0x83, 0x58, 0xa3, 0x07, 0xb3, 0x46, 0xcf, 0x31, + 0xaf, 0x32, 0x08, 0xa6, 0x48, 0xc9, 0x8e, 0x8b, 0x05, 0xa4, 0x5b, 0x88, 0x9b, 0x8b, 0x3d, 0xd4, + 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, 0x41, 0x88, 0x87, 0x8b, 0xc3, 0xc5, 0x35, 0xc0, 0xc7, + 0x3f, 0xd2, 0xd5, 0x45, 0x80, 0x11, 0x24, 0xe5, 0xe2, 0xea, 0xe3, 0x1a, 0x02, 0xe4, 0x30, 0x09, + 0xf1, 0x71, 0x71, 0x05, 0x87, 0x06, 0xb8, 0x06, 0x05, 0xbb, 0xba, 0x00, 0xf9, 0xcc, 0x4e, 0x9c, + 0x51, 0xec, 0x50, 0xc7, 0x24, 0xb1, 0x81, 0x6d, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x0d, + 0xcd, 0xe7, 0x6f, 0x01, 0x01, 0x00, 0x00, +} diff --git a/pkg/proto/hapi/services/probe.pb.go b/pkg/proto/hapi/services/probe.pb.go new file mode 100644 index 000000000..60b432820 --- /dev/null +++ b/pkg/proto/hapi/services/probe.pb.go @@ -0,0 +1,145 @@ +// Code generated by protoc-gen-go. +// source: hapi/services/probe.proto +// DO NOT EDIT! + +/* +Package services is a generated protocol buffer package. + +It is generated from these files: + hapi/services/probe.proto + hapi/services/tiller.proto + +It has these top-level messages: + ReadyRequest + ReadyResponse + ListReleasesRequest + ListReleasesResponse + GetReleaseStatusRequest + GetReleaseStatusResponse + GetReleaseContentRequest + GetReleaseContentResponse + UpdateReleaseRequest + UpdateReleaseResponse + InstallReleaseRequest + InstallReleaseResponse + UninstallReleaseRequest + UninstallReleaseResponse +*/ +package services + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +const _ = proto.ProtoPackageIsVersion1 + +type ReadyRequest struct { +} + +func (m *ReadyRequest) Reset() { *m = ReadyRequest{} } +func (m *ReadyRequest) String() string { return proto.CompactTextString(m) } +func (*ReadyRequest) ProtoMessage() {} +func (*ReadyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } + +type ReadyResponse struct { +} + +func (m *ReadyResponse) Reset() { *m = ReadyResponse{} } +func (m *ReadyResponse) String() string { return proto.CompactTextString(m) } +func (*ReadyResponse) ProtoMessage() {} +func (*ReadyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } + +func init() { + proto.RegisterType((*ReadyRequest)(nil), "hapi.services.probe.ReadyRequest") + proto.RegisterType((*ReadyResponse)(nil), "hapi.services.probe.ReadyResponse") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion1 + +// Client API for ProbeService service + +type ProbeServiceClient interface { + Ready(ctx context.Context, in *ReadyRequest, opts ...grpc.CallOption) (*ReadyResponse, error) +} + +type probeServiceClient struct { + cc *grpc.ClientConn +} + +func NewProbeServiceClient(cc *grpc.ClientConn) ProbeServiceClient { + return &probeServiceClient{cc} +} + +func (c *probeServiceClient) Ready(ctx context.Context, in *ReadyRequest, opts ...grpc.CallOption) (*ReadyResponse, error) { + out := new(ReadyResponse) + err := grpc.Invoke(ctx, "/hapi.services.probe.ProbeService/Ready", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for ProbeService service + +type ProbeServiceServer interface { + Ready(context.Context, *ReadyRequest) (*ReadyResponse, error) +} + +func RegisterProbeServiceServer(s *grpc.Server, srv ProbeServiceServer) { + s.RegisterService(&_ProbeService_serviceDesc, srv) +} + +func _ProbeService_Ready_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { + in := new(ReadyRequest) + if err := dec(in); err != nil { + return nil, err + } + out, err := srv.(ProbeServiceServer).Ready(ctx, in) + if err != nil { + return nil, err + } + return out, nil +} + +var _ProbeService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hapi.services.probe.ProbeService", + HandlerType: (*ProbeServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Ready", + Handler: _ProbeService_Ready_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, +} + +var fileDescriptor0 = []byte{ + // 131 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0x48, 0x2c, 0xc8, + 0xd4, 0x2f, 0x4e, 0x2d, 0x2a, 0xcb, 0x4c, 0x4e, 0x2d, 0xd6, 0x2f, 0x28, 0xca, 0x4f, 0x4a, 0xd5, + 0x03, 0x92, 0x25, 0xf9, 0x42, 0xc2, 0x20, 0x29, 0x3d, 0x98, 0x94, 0x1e, 0x58, 0x4a, 0x89, 0x8f, + 0x8b, 0x27, 0x28, 0x35, 0x31, 0xa5, 0x32, 0x28, 0xb5, 0xb0, 0x34, 0xb5, 0xb8, 0x44, 0x89, 0x9f, + 0x8b, 0x17, 0xca, 0x2f, 0x2e, 0xc8, 0xcf, 0x2b, 0x4e, 0x35, 0x4a, 0xe0, 0xe2, 0x09, 0x00, 0xa9, + 0x0c, 0x86, 0xe8, 0x13, 0x0a, 0xe0, 0x62, 0x05, 0x2b, 0x10, 0x52, 0xd4, 0xc3, 0x62, 0x9e, 0x1e, + 0xb2, 0x61, 0x52, 0x4a, 0xf8, 0x94, 0x40, 0xcc, 0x57, 0x62, 0x70, 0xe2, 0x8a, 0xe2, 0x80, 0xa9, + 0x48, 0x62, 0x03, 0x3b, 0xd5, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x65, 0x03, 0x07, 0x01, 0xc7, + 0x00, 0x00, 0x00, +} diff --git a/pkg/proto/hapi/services/tiller.pb.go b/pkg/proto/hapi/services/tiller.pb.go new file mode 100644 index 000000000..e13d3ea9d --- /dev/null +++ b/pkg/proto/hapi/services/tiller.pb.go @@ -0,0 +1,543 @@ +// Code generated by protoc-gen-go. +// source: hapi/services/tiller.proto +// DO NOT EDIT! + +package services + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import hapi_release2 "github.com/deis/tiller/pkg/proto/hapi/release" +import hapi_release "github.com/deis/tiller/pkg/proto/hapi/release" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// +// ListReleasesRequest: +// +// TODO +// +type ListReleasesRequest struct { + // The maximum number of releases to be returned + Limit int64 `protobuf:"varint,1,opt,name=limit" json:"limit,omitempty"` + // The zero-based offset at which the returned release list begins + Offset int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` +} + +func (m *ListReleasesRequest) Reset() { *m = ListReleasesRequest{} } +func (m *ListReleasesRequest) String() string { return proto.CompactTextString(m) } +func (*ListReleasesRequest) ProtoMessage() {} +func (*ListReleasesRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} } + +// +// ListReleasesResponse: +// +// TODO +// +type ListReleasesResponse struct { + // The expected total number of releases to be returned + Count int64 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"` + // The zero-based offset at which the list is positioned + Offset int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` + // The total number of queryable releases + Total int64 `protobuf:"varint,3,opt,name=total" json:"total,omitempty"` + // The resulting releases + Releases []*hapi_release2.Release `protobuf:"bytes,4,rep,name=releases" json:"releases,omitempty"` +} + +func (m *ListReleasesResponse) Reset() { *m = ListReleasesResponse{} } +func (m *ListReleasesResponse) String() string { return proto.CompactTextString(m) } +func (*ListReleasesResponse) ProtoMessage() {} +func (*ListReleasesResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} } + +func (m *ListReleasesResponse) GetReleases() []*hapi_release2.Release { + if m != nil { + return m.Releases + } + return nil +} + +// +// GetReleaseStatusRequest: +// +// TODO +// +type GetReleaseStatusRequest struct { + // The name of the release + ReleaseName string `protobuf:"bytes,1,opt,name=release_name,json=releaseName" json:"release_name,omitempty"` +} + +func (m *GetReleaseStatusRequest) Reset() { *m = GetReleaseStatusRequest{} } +func (m *GetReleaseStatusRequest) String() string { return proto.CompactTextString(m) } +func (*GetReleaseStatusRequest) ProtoMessage() {} +func (*GetReleaseStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } + +// +// GetReleaseStatusResponse: +// +// TODO +// +type GetReleaseStatusResponse struct { + // The name of the release + ReleaseName string `protobuf:"bytes,1,opt,name=release_name,json=releaseName" json:"release_name,omitempty"` + // The release status + ReleaseStatus *hapi_release.Status `protobuf:"bytes,2,opt,name=release_status,json=releaseStatus" json:"release_status,omitempty"` +} + +func (m *GetReleaseStatusResponse) Reset() { *m = GetReleaseStatusResponse{} } +func (m *GetReleaseStatusResponse) String() string { return proto.CompactTextString(m) } +func (*GetReleaseStatusResponse) ProtoMessage() {} +func (*GetReleaseStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} } + +func (m *GetReleaseStatusResponse) GetReleaseStatus() *hapi_release.Status { + if m != nil { + return m.ReleaseStatus + } + return nil +} + +// +// GetReleaseContentRequest: +// +// TODO +// +type GetReleaseContentRequest struct { + // The name of the release + ReleaseName string `protobuf:"bytes,1,opt,name=release_name,json=releaseName" json:"release_name,omitempty"` +} + +func (m *GetReleaseContentRequest) Reset() { *m = GetReleaseContentRequest{} } +func (m *GetReleaseContentRequest) String() string { return proto.CompactTextString(m) } +func (*GetReleaseContentRequest) ProtoMessage() {} +func (*GetReleaseContentRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} } + +// +// GetReleaseContentResponse: +// +// TODO +// +type GetReleaseContentResponse struct { + // The release content + Release *hapi_release2.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"` +} + +func (m *GetReleaseContentResponse) Reset() { *m = GetReleaseContentResponse{} } +func (m *GetReleaseContentResponse) String() string { return proto.CompactTextString(m) } +func (*GetReleaseContentResponse) ProtoMessage() {} +func (*GetReleaseContentResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} } + +func (m *GetReleaseContentResponse) GetRelease() *hapi_release2.Release { + if m != nil { + return m.Release + } + return nil +} + +// +// UpdateReleaseRequest: +// +// TODO +// +type UpdateReleaseRequest struct { +} + +func (m *UpdateReleaseRequest) Reset() { *m = UpdateReleaseRequest{} } +func (m *UpdateReleaseRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateReleaseRequest) ProtoMessage() {} +func (*UpdateReleaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} } + +// +// UpdateReleaseResponse: +// +// TODO +// +type UpdateReleaseResponse struct { +} + +func (m *UpdateReleaseResponse) Reset() { *m = UpdateReleaseResponse{} } +func (m *UpdateReleaseResponse) String() string { return proto.CompactTextString(m) } +func (*UpdateReleaseResponse) ProtoMessage() {} +func (*UpdateReleaseResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} } + +// +// InstallReleaseRequest: +// +// TODO +// +type InstallReleaseRequest struct { +} + +func (m *InstallReleaseRequest) Reset() { *m = InstallReleaseRequest{} } +func (m *InstallReleaseRequest) String() string { return proto.CompactTextString(m) } +func (*InstallReleaseRequest) ProtoMessage() {} +func (*InstallReleaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} } + +// +// InstallReleaseResponse: +// +// TODO +// +type InstallReleaseResponse struct { +} + +func (m *InstallReleaseResponse) Reset() { *m = InstallReleaseResponse{} } +func (m *InstallReleaseResponse) String() string { return proto.CompactTextString(m) } +func (*InstallReleaseResponse) ProtoMessage() {} +func (*InstallReleaseResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} } + +// +// UninstallReleaseRequest: +// +// TODO +// +type UninstallReleaseRequest struct { +} + +func (m *UninstallReleaseRequest) Reset() { *m = UninstallReleaseRequest{} } +func (m *UninstallReleaseRequest) String() string { return proto.CompactTextString(m) } +func (*UninstallReleaseRequest) ProtoMessage() {} +func (*UninstallReleaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} } + +// +// UninstallReleaseResponse: +// +// TODO +// +type UninstallReleaseResponse struct { +} + +func (m *UninstallReleaseResponse) Reset() { *m = UninstallReleaseResponse{} } +func (m *UninstallReleaseResponse) String() string { return proto.CompactTextString(m) } +func (*UninstallReleaseResponse) ProtoMessage() {} +func (*UninstallReleaseResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} } + +func init() { + proto.RegisterType((*ListReleasesRequest)(nil), "hapi.services.tiller.ListReleasesRequest") + proto.RegisterType((*ListReleasesResponse)(nil), "hapi.services.tiller.ListReleasesResponse") + proto.RegisterType((*GetReleaseStatusRequest)(nil), "hapi.services.tiller.GetReleaseStatusRequest") + proto.RegisterType((*GetReleaseStatusResponse)(nil), "hapi.services.tiller.GetReleaseStatusResponse") + proto.RegisterType((*GetReleaseContentRequest)(nil), "hapi.services.tiller.GetReleaseContentRequest") + proto.RegisterType((*GetReleaseContentResponse)(nil), "hapi.services.tiller.GetReleaseContentResponse") + proto.RegisterType((*UpdateReleaseRequest)(nil), "hapi.services.tiller.UpdateReleaseRequest") + proto.RegisterType((*UpdateReleaseResponse)(nil), "hapi.services.tiller.UpdateReleaseResponse") + proto.RegisterType((*InstallReleaseRequest)(nil), "hapi.services.tiller.InstallReleaseRequest") + proto.RegisterType((*InstallReleaseResponse)(nil), "hapi.services.tiller.InstallReleaseResponse") + proto.RegisterType((*UninstallReleaseRequest)(nil), "hapi.services.tiller.UninstallReleaseRequest") + proto.RegisterType((*UninstallReleaseResponse)(nil), "hapi.services.tiller.UninstallReleaseResponse") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion1 + +// Client API for ReleaseService service + +type ReleaseServiceClient interface { + // + // Retrieve release history. TODO: Allow filtering the set of releases by + // release status. By default, ListAllReleases returns the releases who + // current status is "Active". + // + ListReleases(ctx context.Context, in *ListReleasesRequest, opts ...grpc.CallOption) (ReleaseService_ListReleasesClient, error) + // + // Retrieve status information for the specified release. + // + GetReleaseStatus(ctx context.Context, in *GetReleaseStatusRequest, opts ...grpc.CallOption) (*GetReleaseStatusResponse, error) + // + // Retrieve the release content (chart + value) for the specifed release. + // + GetReleaseContent(ctx context.Context, in *GetReleaseContentRequest, opts ...grpc.CallOption) (*GetReleaseContentResponse, error) + // + // Update release content. + // + UpdateRelease(ctx context.Context, in *UpdateReleaseRequest, opts ...grpc.CallOption) (*UpdateReleaseResponse, error) + // + // Request release install. + // + InstallRelease(ctx context.Context, in *InstallReleaseRequest, opts ...grpc.CallOption) (*InstallReleaseResponse, error) + // + // Request release deletion. + // + UninstallRelease(ctx context.Context, in *UninstallReleaseRequest, opts ...grpc.CallOption) (*UninstallReleaseResponse, error) +} + +type releaseServiceClient struct { + cc *grpc.ClientConn +} + +func NewReleaseServiceClient(cc *grpc.ClientConn) ReleaseServiceClient { + return &releaseServiceClient{cc} +} + +func (c *releaseServiceClient) ListReleases(ctx context.Context, in *ListReleasesRequest, opts ...grpc.CallOption) (ReleaseService_ListReleasesClient, error) { + stream, err := grpc.NewClientStream(ctx, &_ReleaseService_serviceDesc.Streams[0], c.cc, "/hapi.services.tiller.ReleaseService/ListReleases", opts...) + if err != nil { + return nil, err + } + x := &releaseServiceListReleasesClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ReleaseService_ListReleasesClient interface { + Recv() (*ListReleasesResponse, error) + grpc.ClientStream +} + +type releaseServiceListReleasesClient struct { + grpc.ClientStream +} + +func (x *releaseServiceListReleasesClient) Recv() (*ListReleasesResponse, error) { + m := new(ListReleasesResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *releaseServiceClient) GetReleaseStatus(ctx context.Context, in *GetReleaseStatusRequest, opts ...grpc.CallOption) (*GetReleaseStatusResponse, error) { + out := new(GetReleaseStatusResponse) + err := grpc.Invoke(ctx, "/hapi.services.tiller.ReleaseService/GetReleaseStatus", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *releaseServiceClient) GetReleaseContent(ctx context.Context, in *GetReleaseContentRequest, opts ...grpc.CallOption) (*GetReleaseContentResponse, error) { + out := new(GetReleaseContentResponse) + err := grpc.Invoke(ctx, "/hapi.services.tiller.ReleaseService/GetReleaseContent", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *releaseServiceClient) UpdateRelease(ctx context.Context, in *UpdateReleaseRequest, opts ...grpc.CallOption) (*UpdateReleaseResponse, error) { + out := new(UpdateReleaseResponse) + err := grpc.Invoke(ctx, "/hapi.services.tiller.ReleaseService/UpdateRelease", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *releaseServiceClient) InstallRelease(ctx context.Context, in *InstallReleaseRequest, opts ...grpc.CallOption) (*InstallReleaseResponse, error) { + out := new(InstallReleaseResponse) + err := grpc.Invoke(ctx, "/hapi.services.tiller.ReleaseService/InstallRelease", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *releaseServiceClient) UninstallRelease(ctx context.Context, in *UninstallReleaseRequest, opts ...grpc.CallOption) (*UninstallReleaseResponse, error) { + out := new(UninstallReleaseResponse) + err := grpc.Invoke(ctx, "/hapi.services.tiller.ReleaseService/UninstallRelease", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for ReleaseService service + +type ReleaseServiceServer interface { + // + // Retrieve release history. TODO: Allow filtering the set of releases by + // release status. By default, ListAllReleases returns the releases who + // current status is "Active". + // + ListReleases(*ListReleasesRequest, ReleaseService_ListReleasesServer) error + // + // Retrieve status information for the specified release. + // + GetReleaseStatus(context.Context, *GetReleaseStatusRequest) (*GetReleaseStatusResponse, error) + // + // Retrieve the release content (chart + value) for the specifed release. + // + GetReleaseContent(context.Context, *GetReleaseContentRequest) (*GetReleaseContentResponse, error) + // + // Update release content. + // + UpdateRelease(context.Context, *UpdateReleaseRequest) (*UpdateReleaseResponse, error) + // + // Request release install. + // + InstallRelease(context.Context, *InstallReleaseRequest) (*InstallReleaseResponse, error) + // + // Request release deletion. + // + UninstallRelease(context.Context, *UninstallReleaseRequest) (*UninstallReleaseResponse, error) +} + +func RegisterReleaseServiceServer(s *grpc.Server, srv ReleaseServiceServer) { + s.RegisterService(&_ReleaseService_serviceDesc, srv) +} + +func _ReleaseService_ListReleases_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListReleasesRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ReleaseServiceServer).ListReleases(m, &releaseServiceListReleasesServer{stream}) +} + +type ReleaseService_ListReleasesServer interface { + Send(*ListReleasesResponse) error + grpc.ServerStream +} + +type releaseServiceListReleasesServer struct { + grpc.ServerStream +} + +func (x *releaseServiceListReleasesServer) Send(m *ListReleasesResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _ReleaseService_GetReleaseStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { + in := new(GetReleaseStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + out, err := srv.(ReleaseServiceServer).GetReleaseStatus(ctx, in) + if err != nil { + return nil, err + } + return out, nil +} + +func _ReleaseService_GetReleaseContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { + in := new(GetReleaseContentRequest) + if err := dec(in); err != nil { + return nil, err + } + out, err := srv.(ReleaseServiceServer).GetReleaseContent(ctx, in) + if err != nil { + return nil, err + } + return out, nil +} + +func _ReleaseService_UpdateRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { + in := new(UpdateReleaseRequest) + if err := dec(in); err != nil { + return nil, err + } + out, err := srv.(ReleaseServiceServer).UpdateRelease(ctx, in) + if err != nil { + return nil, err + } + return out, nil +} + +func _ReleaseService_InstallRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { + in := new(InstallReleaseRequest) + if err := dec(in); err != nil { + return nil, err + } + out, err := srv.(ReleaseServiceServer).InstallRelease(ctx, in) + if err != nil { + return nil, err + } + return out, nil +} + +func _ReleaseService_UninstallRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error) (interface{}, error) { + in := new(UninstallReleaseRequest) + if err := dec(in); err != nil { + return nil, err + } + out, err := srv.(ReleaseServiceServer).UninstallRelease(ctx, in) + if err != nil { + return nil, err + } + return out, nil +} + +var _ReleaseService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "hapi.services.tiller.ReleaseService", + HandlerType: (*ReleaseServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetReleaseStatus", + Handler: _ReleaseService_GetReleaseStatus_Handler, + }, + { + MethodName: "GetReleaseContent", + Handler: _ReleaseService_GetReleaseContent_Handler, + }, + { + MethodName: "UpdateRelease", + Handler: _ReleaseService_UpdateRelease_Handler, + }, + { + MethodName: "InstallRelease", + Handler: _ReleaseService_InstallRelease_Handler, + }, + { + MethodName: "UninstallRelease", + Handler: _ReleaseService_UninstallRelease_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "ListReleases", + Handler: _ReleaseService_ListReleases_Handler, + ServerStreams: true, + }, + }, +} + +var fileDescriptor1 = []byte{ + // 469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x54, 0xcd, 0xd2, 0xd2, 0x30, + 0x14, 0xfd, 0x2a, 0x7e, 0x88, 0x97, 0x9f, 0xd1, 0x58, 0xa0, 0x64, 0x85, 0x59, 0xe1, 0x5f, 0xab, + 0xb8, 0x54, 0x37, 0xb2, 0x70, 0x9c, 0x61, 0x5c, 0xd4, 0x61, 0xe3, 0xc6, 0xa9, 0x18, 0xc6, 0x38, + 0xa5, 0xad, 0x4d, 0x60, 0xe1, 0x3b, 0xf8, 0x3e, 0x3e, 0x9e, 0x34, 0x3f, 0x1d, 0x5a, 0x9a, 0xa1, + 0xae, 0x98, 0xe4, 0x9c, 0x73, 0xef, 0xb9, 0xb9, 0xa7, 0x00, 0xfe, 0x11, 0x65, 0x2c, 0xe0, 0x34, + 0x3f, 0xb2, 0x2d, 0xe5, 0x81, 0x60, 0x71, 0x4c, 0x73, 0x3f, 0xcb, 0x53, 0x91, 0x22, 0xb7, 0xc0, + 0x7c, 0x83, 0xf9, 0x0a, 0xc3, 0x4a, 0x91, 0xd3, 0x98, 0x46, 0x9c, 0x9a, 0x5f, 0xa5, 0xc0, 0xb3, + 0x0a, 0xc6, 0x45, 0x24, 0x0e, 0x5c, 0x41, 0x64, 0x05, 0x8f, 0xd6, 0x8c, 0x8b, 0x50, 0x61, 0x3c, + 0xa4, 0xbf, 0x0e, 0x94, 0x0b, 0xe4, 0xc2, 0x6d, 0xcc, 0xf6, 0x4c, 0x78, 0xce, 0xdc, 0x59, 0x74, + 0x42, 0x75, 0x40, 0x13, 0xe8, 0xa6, 0xbb, 0x1d, 0xa7, 0xc2, 0xbb, 0x23, 0xaf, 0xf5, 0x89, 0xfc, + 0x71, 0xc0, 0xad, 0x56, 0xe1, 0x59, 0x9a, 0x70, 0x5a, 0x94, 0xd9, 0xa6, 0x87, 0xa4, 0x2c, 0x23, + 0x0f, 0xb6, 0x32, 0x05, 0x5b, 0xa4, 0x22, 0x8a, 0xbd, 0x8e, 0x62, 0xcb, 0x03, 0x7a, 0x05, 0x3d, + 0xed, 0x9c, 0x7b, 0x77, 0xe7, 0x9d, 0x45, 0x7f, 0x39, 0xf6, 0xe5, 0x0b, 0x98, 0x19, 0x75, 0xd7, + 0xb0, 0xa4, 0x91, 0xb7, 0x30, 0xfd, 0x40, 0x8d, 0x9b, 0xcf, 0x72, 0x5c, 0x33, 0xd8, 0x63, 0x18, + 0x68, 0xda, 0xd7, 0x24, 0xda, 0x53, 0x69, 0xec, 0x7e, 0xd8, 0xd7, 0x77, 0x9f, 0x4e, 0x57, 0xe4, + 0x37, 0x78, 0x97, 0x6a, 0x3d, 0xd0, 0x75, 0x39, 0x7a, 0x03, 0x23, 0x43, 0x51, 0x2f, 0x2d, 0xa7, + 0xec, 0x2f, 0xdd, 0xaa, 0x6b, 0x5d, 0x78, 0x98, 0x9f, 0xf7, 0x21, 0xef, 0xce, 0x7b, 0xaf, 0xd2, + 0x44, 0xd0, 0x44, 0xfc, 0x87, 0xf5, 0x35, 0xcc, 0x1a, 0xe4, 0xda, 0x7b, 0x00, 0xf7, 0x34, 0x57, + 0x4a, 0xad, 0xef, 0x68, 0x58, 0x64, 0x02, 0xee, 0x26, 0xfb, 0x1e, 0x09, 0x6a, 0x10, 0x65, 0x84, + 0x4c, 0x61, 0x5c, 0xbb, 0x57, 0x1d, 0x0a, 0xe0, 0x63, 0x72, 0x1a, 0x3a, 0x8e, 0x6b, 0x0a, 0x0f, + 0x26, 0x75, 0x40, 0x4b, 0x66, 0x30, 0xdd, 0x24, 0xac, 0x51, 0x84, 0xc1, 0xbb, 0x84, 0x94, 0x6c, + 0xf9, 0xf7, 0x16, 0x46, 0x66, 0x43, 0xea, 0x43, 0x40, 0x0c, 0x06, 0xe7, 0x19, 0x44, 0x4f, 0xfc, + 0xa6, 0xef, 0xc4, 0x6f, 0x48, 0x3b, 0x7e, 0xda, 0x86, 0xaa, 0x0d, 0xdf, 0xbc, 0x74, 0x10, 0x87, + 0x07, 0xf5, 0x84, 0xa0, 0x17, 0xcd, 0x35, 0x2c, 0x39, 0xc4, 0x7e, 0x5b, 0xba, 0x69, 0x8b, 0x8e, + 0xf0, 0xf0, 0x62, 0xb7, 0xe8, 0x6a, 0x99, 0x6a, 0x86, 0x70, 0xd0, 0x9a, 0x5f, 0xf6, 0xfd, 0x09, + 0xc3, 0xca, 0xb6, 0x91, 0xe5, 0xb5, 0x9a, 0xa2, 0x82, 0x9f, 0xb5, 0xe2, 0x96, 0xbd, 0xf6, 0x30, + 0xaa, 0xe6, 0x04, 0x59, 0x0a, 0x34, 0xc6, 0x0c, 0x3f, 0x6f, 0x47, 0x2e, 0xdb, 0x9d, 0xf6, 0x58, + 0x4f, 0x98, 0x6d, 0x8f, 0x96, 0x90, 0xda, 0xf6, 0x68, 0x0b, 0x2e, 0xb9, 0x79, 0x0f, 0x5f, 0x7a, + 0x86, 0xfd, 0xad, 0x2b, 0xff, 0x84, 0x5f, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x35, 0x75, 0xc2, + 0x92, 0xef, 0x05, 0x00, 0x00, +}