diff --git a/internal/proto/local/plugin/host_plugin_service.proto b/internal/proto/local/plugin/host_plugin_service.proto new file mode 100644 index 0000000000..ffcc794d47 --- /dev/null +++ b/internal/proto/local/plugin/host_plugin_service.proto @@ -0,0 +1,174 @@ +syntax = "proto3"; + +package plugin; + +option go_package = "github.com/hashicorp/boundary/plugin/proto;proto"; + +import "google/protobuf/struct.proto"; + +import "controller/api/resources/hostcatalogs/v1/host_catalog.proto"; +import "controller/api/resources/hostsets/v1/host_set.proto"; +import "controller/api/resources/hosts/v1/host.proto"; + +// HostPluginService describes the service for host plugins. +service HostPluginService { + // OnCreateCatalog is a hook that runs when a host catalog is + // created. + rpc OnCreateCatalog(OnCreateCatalogRequest) returns (OnCreateCatalogResponse); + + // OnUpdateCatalog is a hook that runs when a host catalog is + // updated. + rpc OnUpdateCatalog(OnUpdateCatalogRequest) returns (OnUpdateCatalogResponse); + + // OnDeleteCatalog is a hook that runs when a host catalog is + // deleted. + rpc OnDeleteCatalog(OnDeleteCatalogRequest) returns (OnDeleteCatalogResponse); + + // OnCreateSet is a hook that runs when a host set is created. + rpc OnCreateSet(OnCreateSetRequest) returns (OnCreateSetResponse); + + // OnUpdateSet is a hook that runs when a host set is updated. + rpc OnUpdateSet(OnUpdateSetRequest) returns (OnUpdateSetResponse); + + // OnDeleteSet is a hook that runs when a host set is deleted. + rpc OnDeleteSet(OnDeleteSetRequest) returns (OnDeleteSetResponse); + + // ListHosts looks up all the hosts in the provided host sets. + rpc ListHosts(ListHostsRequest) returns (ListHostsResponse); +} + +message OnCreateCatalogRequest { + // The host catalog to create. The request may contain optional + // secret data to help authenticate the request against a cloud + // API. + controller.api.resources.hostcatalogs.v1.HostCatalog catalog = 10; +} + +message OnCreateCatalogResponse { + // Secret data to persist encrypted within Boundary. This should be + // used to store authentication data and other necessary + // configuration to be used in later hooks and calls. Returning an + // error from the call will cause this data to not be persisted. + HostCatalogPersisted persisted = 10; +} + +message OnUpdateCatalogRequest { + // The existing state of the catalog. + controller.api.resources.hostcatalogs.v1.HostCatalog current_catalog = 10; + + // The requested new state of the catalog. This field may contain + // optional secret data that may have been updated from old + // authentication data contained within the persisted state. + controller.api.resources.hostcatalogs.v1.HostCatalog new_catalog = 20; + + // The existing persisted secret data. + HostCatalogPersisted persisted = 30; +} + +message OnUpdateCatalogResponse { + // The updated secret data to persist encrypted within Boundary. + // It's important that this be returned if it existed previously, + // as the returned data overwrites the previously existing copy. If + // an error is returned, the update of the persisted data is + // aborted. + HostCatalogPersisted persisted = 10; +} + +message OnDeleteCatalogRequest { + // The existing state of the catalog to delete. + controller.api.resources.hostcatalogs.v1.HostCatalog catalog = 10; + + // The existing persisted secret data. + HostCatalogPersisted persisted = 20; +} + +message OnDeleteCatalogResponse {} + +message OnCreateSetRequest { + // The host catalog that the set belongs to. + controller.api.resources.hostcatalogs.v1.HostCatalog catalog = 10; + + // The host set to create. + controller.api.resources.hostsets.v1.HostSet set = 20; + + // The persisted data for the host catalog that the set belongs to. + HostCatalogPersisted persisted = 30; +} + +message OnCreateSetResponse {} + +message OnUpdateSetRequest { + // The host catalog that the set belongs to. + controller.api.resources.hostcatalogs.v1.HostCatalog catalog = 10; + + // The existing state of the host set. + controller.api.resources.hostsets.v1.HostSet current_set = 20; + + // The requested new state of the host set. + controller.api.resources.hostsets.v1.HostSet new_set = 30; + + // The persisted data for the host catalog that the set belongs to. + HostCatalogPersisted persisted = 40; +} + +message OnUpdateSetResponse {} + +message OnDeleteSetRequest { + // The host catalog that the set belongs to. + controller.api.resources.hostcatalogs.v1.HostCatalog catalog = 10; + + // The host set to delete. + controller.api.resources.hostsets.v1.HostSet current_set = 20; + + // The persisted data for the host catalog that the set belongs to. + HostCatalogPersisted persisted = 30; +} + +message OnDeleteSetResponse {} + +message ListHostsRequest { + // The host catalog that the supplied host sets belong to. + controller.api.resources.hostcatalogs.v1.HostCatalog catalog = 10; + + // The host sets to look up hosts for. + repeated controller.api.resources.hostsets.v1.HostSet sets = 20; + + // The persisted data for the host catalog that the supplied host + // sets belong to. + HostCatalogPersisted persisted = 30; +} + +message ListHostsResponse { + // The hosts to return. + repeated ListHostsResponseHost hosts = 10; +} + +message ListHostsResponseHost { + // Required. A stable identifier for this host. This field is used + // to generate a stable ID for the host within Boundary and is + // included in audit logs. It should be set to something unique and + // useful, ie: a compute instance ID. + string external_id = 10; + + // Required. The primary address for the host. + string address = 20; + + // Optional. Provider-specific metadata that is applicable to this + // host. Example: host descriptions, tags, alternate network + // addresses, etc. + google.protobuf.Struct attributes = 100; +} + +// HostCatalogPersisted represents state persisted between host +// catalog calls. Its intended purpose is to store authentication data +// required by the plugin to make calls to its respective cloud API. +// +// The data stored in this message is encrypted at-rest by Boundary +// and never returned to the end user. +// +// TODO: Add a size limit to this data before we export the plugin +// SDK. +message HostCatalogPersisted { + // The persisted data. + google.protobuf.Struct data = 100; +} diff --git a/plugin/proto/host_plugin_service.pb.go b/plugin/proto/host_plugin_service.pb.go new file mode 100644 index 0000000000..db6fa8fd23 --- /dev/null +++ b/plugin/proto/host_plugin_service.pb.go @@ -0,0 +1,1395 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.15.8 +// source: plugin/host_plugin_service.proto + +package proto + +import ( + hostcatalogs "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostcatalogs" + _ "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hosts" + hostsets "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostsets" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type OnCreateCatalogRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The host catalog to create. The request may contain optional + // secret data to help authenticate the request against a cloud + // API. + Catalog *hostcatalogs.HostCatalog `protobuf:"bytes,10,opt,name=catalog,proto3" json:"catalog,omitempty"` +} + +func (x *OnCreateCatalogRequest) Reset() { + *x = OnCreateCatalogRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnCreateCatalogRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnCreateCatalogRequest) ProtoMessage() {} + +func (x *OnCreateCatalogRequest) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnCreateCatalogRequest.ProtoReflect.Descriptor instead. +func (*OnCreateCatalogRequest) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{0} +} + +func (x *OnCreateCatalogRequest) GetCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.Catalog + } + return nil +} + +type OnCreateCatalogResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Secret data to persist encrypted within Boundary. This should be + // used to store authentication data and other necessary + // configuration to be used in later hooks and calls. Returning an + // error from the call will cause this data to not be persisted. + Persisted *HostCatalogPersisted `protobuf:"bytes,10,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *OnCreateCatalogResponse) Reset() { + *x = OnCreateCatalogResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnCreateCatalogResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnCreateCatalogResponse) ProtoMessage() {} + +func (x *OnCreateCatalogResponse) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnCreateCatalogResponse.ProtoReflect.Descriptor instead. +func (*OnCreateCatalogResponse) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{1} +} + +func (x *OnCreateCatalogResponse) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type OnUpdateCatalogRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The existing state of the catalog. + CurrentCatalog *hostcatalogs.HostCatalog `protobuf:"bytes,10,opt,name=current_catalog,json=currentCatalog,proto3" json:"current_catalog,omitempty"` + // The requested new state of the catalog. This field may contain + // optional secret data that may have been updated from old + // authentication data contained within the persisted state. + NewCatalog *hostcatalogs.HostCatalog `protobuf:"bytes,20,opt,name=new_catalog,json=newCatalog,proto3" json:"new_catalog,omitempty"` + // The existing persisted secret data. + Persisted *HostCatalogPersisted `protobuf:"bytes,30,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *OnUpdateCatalogRequest) Reset() { + *x = OnUpdateCatalogRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnUpdateCatalogRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnUpdateCatalogRequest) ProtoMessage() {} + +func (x *OnUpdateCatalogRequest) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnUpdateCatalogRequest.ProtoReflect.Descriptor instead. +func (*OnUpdateCatalogRequest) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{2} +} + +func (x *OnUpdateCatalogRequest) GetCurrentCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.CurrentCatalog + } + return nil +} + +func (x *OnUpdateCatalogRequest) GetNewCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.NewCatalog + } + return nil +} + +func (x *OnUpdateCatalogRequest) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type OnUpdateCatalogResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The updated secret data to persist encrypted within Boundary. + // It's important that this be returned if it existed previously, + // as the returned data overwrites the previously existing copy. If + // an error is returned, the update of the persisted data is + // aborted. + Persisted *HostCatalogPersisted `protobuf:"bytes,10,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *OnUpdateCatalogResponse) Reset() { + *x = OnUpdateCatalogResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnUpdateCatalogResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnUpdateCatalogResponse) ProtoMessage() {} + +func (x *OnUpdateCatalogResponse) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnUpdateCatalogResponse.ProtoReflect.Descriptor instead. +func (*OnUpdateCatalogResponse) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{3} +} + +func (x *OnUpdateCatalogResponse) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type OnDeleteCatalogRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The existing state of the catalog to delete. + Catalog *hostcatalogs.HostCatalog `protobuf:"bytes,10,opt,name=catalog,proto3" json:"catalog,omitempty"` + // The existing persisted secret data. + Persisted *HostCatalogPersisted `protobuf:"bytes,20,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *OnDeleteCatalogRequest) Reset() { + *x = OnDeleteCatalogRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnDeleteCatalogRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnDeleteCatalogRequest) ProtoMessage() {} + +func (x *OnDeleteCatalogRequest) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnDeleteCatalogRequest.ProtoReflect.Descriptor instead. +func (*OnDeleteCatalogRequest) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{4} +} + +func (x *OnDeleteCatalogRequest) GetCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.Catalog + } + return nil +} + +func (x *OnDeleteCatalogRequest) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type OnDeleteCatalogResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnDeleteCatalogResponse) Reset() { + *x = OnDeleteCatalogResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnDeleteCatalogResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnDeleteCatalogResponse) ProtoMessage() {} + +func (x *OnDeleteCatalogResponse) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnDeleteCatalogResponse.ProtoReflect.Descriptor instead. +func (*OnDeleteCatalogResponse) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{5} +} + +type OnCreateSetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The host catalog that the set belongs to. + Catalog *hostcatalogs.HostCatalog `protobuf:"bytes,10,opt,name=catalog,proto3" json:"catalog,omitempty"` + // The host set to create. + Set *hostsets.HostSet `protobuf:"bytes,20,opt,name=set,proto3" json:"set,omitempty"` + // The persisted data for the host catalog that the set belongs to. + Persisted *HostCatalogPersisted `protobuf:"bytes,30,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *OnCreateSetRequest) Reset() { + *x = OnCreateSetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnCreateSetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnCreateSetRequest) ProtoMessage() {} + +func (x *OnCreateSetRequest) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnCreateSetRequest.ProtoReflect.Descriptor instead. +func (*OnCreateSetRequest) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{6} +} + +func (x *OnCreateSetRequest) GetCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.Catalog + } + return nil +} + +func (x *OnCreateSetRequest) GetSet() *hostsets.HostSet { + if x != nil { + return x.Set + } + return nil +} + +func (x *OnCreateSetRequest) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type OnCreateSetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnCreateSetResponse) Reset() { + *x = OnCreateSetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnCreateSetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnCreateSetResponse) ProtoMessage() {} + +func (x *OnCreateSetResponse) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnCreateSetResponse.ProtoReflect.Descriptor instead. +func (*OnCreateSetResponse) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{7} +} + +type OnUpdateSetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The host catalog that the set belongs to. + Catalog *hostcatalogs.HostCatalog `protobuf:"bytes,10,opt,name=catalog,proto3" json:"catalog,omitempty"` + // The existing state of the host set. + CurrentSet *hostsets.HostSet `protobuf:"bytes,20,opt,name=current_set,json=currentSet,proto3" json:"current_set,omitempty"` + // The requested new state of the host set. + NewSet *hostsets.HostSet `protobuf:"bytes,30,opt,name=new_set,json=newSet,proto3" json:"new_set,omitempty"` + // The persisted data for the host catalog that the set belongs to. + Persisted *HostCatalogPersisted `protobuf:"bytes,40,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *OnUpdateSetRequest) Reset() { + *x = OnUpdateSetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnUpdateSetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnUpdateSetRequest) ProtoMessage() {} + +func (x *OnUpdateSetRequest) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnUpdateSetRequest.ProtoReflect.Descriptor instead. +func (*OnUpdateSetRequest) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{8} +} + +func (x *OnUpdateSetRequest) GetCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.Catalog + } + return nil +} + +func (x *OnUpdateSetRequest) GetCurrentSet() *hostsets.HostSet { + if x != nil { + return x.CurrentSet + } + return nil +} + +func (x *OnUpdateSetRequest) GetNewSet() *hostsets.HostSet { + if x != nil { + return x.NewSet + } + return nil +} + +func (x *OnUpdateSetRequest) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type OnUpdateSetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnUpdateSetResponse) Reset() { + *x = OnUpdateSetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnUpdateSetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnUpdateSetResponse) ProtoMessage() {} + +func (x *OnUpdateSetResponse) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnUpdateSetResponse.ProtoReflect.Descriptor instead. +func (*OnUpdateSetResponse) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{9} +} + +type OnDeleteSetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The host catalog that the set belongs to. + Catalog *hostcatalogs.HostCatalog `protobuf:"bytes,10,opt,name=catalog,proto3" json:"catalog,omitempty"` + // The host set to delete. + CurrentSet *hostsets.HostSet `protobuf:"bytes,20,opt,name=current_set,json=currentSet,proto3" json:"current_set,omitempty"` + // The persisted data for the host catalog that the set belongs to. + Persisted *HostCatalogPersisted `protobuf:"bytes,30,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *OnDeleteSetRequest) Reset() { + *x = OnDeleteSetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnDeleteSetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnDeleteSetRequest) ProtoMessage() {} + +func (x *OnDeleteSetRequest) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnDeleteSetRequest.ProtoReflect.Descriptor instead. +func (*OnDeleteSetRequest) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{10} +} + +func (x *OnDeleteSetRequest) GetCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.Catalog + } + return nil +} + +func (x *OnDeleteSetRequest) GetCurrentSet() *hostsets.HostSet { + if x != nil { + return x.CurrentSet + } + return nil +} + +func (x *OnDeleteSetRequest) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type OnDeleteSetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnDeleteSetResponse) Reset() { + *x = OnDeleteSetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnDeleteSetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnDeleteSetResponse) ProtoMessage() {} + +func (x *OnDeleteSetResponse) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnDeleteSetResponse.ProtoReflect.Descriptor instead. +func (*OnDeleteSetResponse) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{11} +} + +type ListHostsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The host catalog that the supplied host sets belong to. + Catalog *hostcatalogs.HostCatalog `protobuf:"bytes,10,opt,name=catalog,proto3" json:"catalog,omitempty"` + // The host sets to look up hosts for. + Sets []*hostsets.HostSet `protobuf:"bytes,20,rep,name=sets,proto3" json:"sets,omitempty"` + // The persisted data for the host catalog that the supplied host + // sets belong to. + Persisted *HostCatalogPersisted `protobuf:"bytes,30,opt,name=persisted,proto3" json:"persisted,omitempty"` +} + +func (x *ListHostsRequest) Reset() { + *x = ListHostsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListHostsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHostsRequest) ProtoMessage() {} + +func (x *ListHostsRequest) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListHostsRequest.ProtoReflect.Descriptor instead. +func (*ListHostsRequest) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{12} +} + +func (x *ListHostsRequest) GetCatalog() *hostcatalogs.HostCatalog { + if x != nil { + return x.Catalog + } + return nil +} + +func (x *ListHostsRequest) GetSets() []*hostsets.HostSet { + if x != nil { + return x.Sets + } + return nil +} + +func (x *ListHostsRequest) GetPersisted() *HostCatalogPersisted { + if x != nil { + return x.Persisted + } + return nil +} + +type ListHostsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The hosts to return. + Hosts []*ListHostsResponseHost `protobuf:"bytes,10,rep,name=hosts,proto3" json:"hosts,omitempty"` +} + +func (x *ListHostsResponse) Reset() { + *x = ListHostsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListHostsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHostsResponse) ProtoMessage() {} + +func (x *ListHostsResponse) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListHostsResponse.ProtoReflect.Descriptor instead. +func (*ListHostsResponse) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{13} +} + +func (x *ListHostsResponse) GetHosts() []*ListHostsResponseHost { + if x != nil { + return x.Hosts + } + return nil +} + +type ListHostsResponseHost struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A stable identifier for this host. This field is used + // to generate a stable ID for the host within Boundary and is + // included in audit logs. It should be set to something unique and + // useful, ie: a compute instance ID. + ExternalId string `protobuf:"bytes,10,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"` + // Required. The primary address for the host. + Address string `protobuf:"bytes,20,opt,name=address,proto3" json:"address,omitempty"` + // Optional. Provider-specific metadata that is applicable to this + // host. Example: host descriptions, tags, alternate network + // addresses, etc. + Attributes *structpb.Struct `protobuf:"bytes,100,opt,name=attributes,proto3" json:"attributes,omitempty"` +} + +func (x *ListHostsResponseHost) Reset() { + *x = ListHostsResponseHost{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListHostsResponseHost) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHostsResponseHost) ProtoMessage() {} + +func (x *ListHostsResponseHost) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListHostsResponseHost.ProtoReflect.Descriptor instead. +func (*ListHostsResponseHost) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{14} +} + +func (x *ListHostsResponseHost) GetExternalId() string { + if x != nil { + return x.ExternalId + } + return "" +} + +func (x *ListHostsResponseHost) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *ListHostsResponseHost) GetAttributes() *structpb.Struct { + if x != nil { + return x.Attributes + } + return nil +} + +// HostCatalogPersisted represents state persisted between host +// catalog calls. Its intended purpose is to store authentication data +// required by the plugin to make calls to its respective cloud API. +// +// The data stored in this message is encrypted at-rest by Boundary +// and never returned to the end user. +// +// TODO: Add a size limit to this data before we export the plugin +// SDK. +type HostCatalogPersisted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The persisted data. + Data *structpb.Struct `protobuf:"bytes,100,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *HostCatalogPersisted) Reset() { + *x = HostCatalogPersisted{} + if protoimpl.UnsafeEnabled { + mi := &file_plugin_host_plugin_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostCatalogPersisted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostCatalogPersisted) ProtoMessage() {} + +func (x *HostCatalogPersisted) ProtoReflect() protoreflect.Message { + mi := &file_plugin_host_plugin_service_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostCatalogPersisted.ProtoReflect.Descriptor instead. +func (*HostCatalogPersisted) Descriptor() ([]byte, []int) { + return file_plugin_host_plugin_service_proto_rawDescGZIP(), []int{15} +} + +func (x *HostCatalogPersisted) GetData() *structpb.Struct { + if x != nil { + return x.Data + } + return nil +} + +var File_plugin_host_plugin_service_proto protoreflect.FileDescriptor + +var file_plugin_host_plugin_service_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x6c, + 0x75, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x06, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2f, 0x68, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2f, + 0x76, 0x31, 0x2f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, + 0x68, 0x6f, 0x73, 0x74, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x6f, 0x73, 0x74, + 0x5f, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x2f, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x6f, + 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x69, 0x0a, 0x16, 0x4f, 0x6e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, + 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, + 0x6c, 0x6f, 0x67, 0x22, 0x55, 0x0a, 0x17, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, + 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x52, + 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x22, 0x8c, 0x02, 0x0a, 0x16, 0x4f, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x0f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x56, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3a, 0x0a, + 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x22, 0x55, 0x0a, 0x17, 0x4f, 0x6e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, + 0x22, 0xa5, 0x01, 0x0a, 0x16, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x63, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, + 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, + 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3a, 0x0a, 0x09, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4f, 0x6e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x12, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, 0x6c, + 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, + 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x3f, 0x0a, 0x03, 0x73, + 0x65, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x74, 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x09, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x70, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x6e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xb9, 0x02, 0x0a, 0x12, 0x4f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, + 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x4e, 0x0a, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x65, 0x74, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x74, 0x52, 0x0a, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x73, + 0x65, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x74, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x53, 0x65, 0x74, 0x12, + 0x3a, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, + 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x4f, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x12, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x4e, 0x0a, 0x0b, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x73, + 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x74, 0x52, 0x0a, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, + 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x70, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe2, 0x01, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, + 0x6f, 0x73, 0x74, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, + 0x6c, 0x6f, 0x67, 0x12, 0x41, 0x0a, 0x04, 0x73, 0x65, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x68, 0x6f, 0x73, + 0x74, 0x73, 0x65, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x74, + 0x52, 0x04, 0x73, 0x65, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x6c, 0x75, 0x67, + 0x69, 0x6e, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, + 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x52, 0x09, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x22, 0x48, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x22, 0x8b, 0x01, 0x0a, + 0x15, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x14, 0x48, 0x6f, + 0x73, 0x74, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, + 0xa9, 0x04, 0x0a, 0x11, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x1e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x2e, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x2e, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x4f, 0x6e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x1e, 0x2e, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, + 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, + 0x0f, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, + 0x12, 0x1e, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x12, 0x1a, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x4f, 0x6e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x2e, 0x4f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x74, + 0x12, 0x1a, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, + 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x4c, 0x69, 0x73, + 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x19, 0x2e, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6f, + 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x32, 0x5a, 0x30, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x73, 0x68, 0x69, 0x63, + 0x6f, 0x72, 0x70, 0x2f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x2f, 0x70, 0x6c, 0x75, + 0x67, 0x69, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_plugin_host_plugin_service_proto_rawDescOnce sync.Once + file_plugin_host_plugin_service_proto_rawDescData = file_plugin_host_plugin_service_proto_rawDesc +) + +func file_plugin_host_plugin_service_proto_rawDescGZIP() []byte { + file_plugin_host_plugin_service_proto_rawDescOnce.Do(func() { + file_plugin_host_plugin_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_plugin_host_plugin_service_proto_rawDescData) + }) + return file_plugin_host_plugin_service_proto_rawDescData +} + +var file_plugin_host_plugin_service_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_plugin_host_plugin_service_proto_goTypes = []interface{}{ + (*OnCreateCatalogRequest)(nil), // 0: plugin.OnCreateCatalogRequest + (*OnCreateCatalogResponse)(nil), // 1: plugin.OnCreateCatalogResponse + (*OnUpdateCatalogRequest)(nil), // 2: plugin.OnUpdateCatalogRequest + (*OnUpdateCatalogResponse)(nil), // 3: plugin.OnUpdateCatalogResponse + (*OnDeleteCatalogRequest)(nil), // 4: plugin.OnDeleteCatalogRequest + (*OnDeleteCatalogResponse)(nil), // 5: plugin.OnDeleteCatalogResponse + (*OnCreateSetRequest)(nil), // 6: plugin.OnCreateSetRequest + (*OnCreateSetResponse)(nil), // 7: plugin.OnCreateSetResponse + (*OnUpdateSetRequest)(nil), // 8: plugin.OnUpdateSetRequest + (*OnUpdateSetResponse)(nil), // 9: plugin.OnUpdateSetResponse + (*OnDeleteSetRequest)(nil), // 10: plugin.OnDeleteSetRequest + (*OnDeleteSetResponse)(nil), // 11: plugin.OnDeleteSetResponse + (*ListHostsRequest)(nil), // 12: plugin.ListHostsRequest + (*ListHostsResponse)(nil), // 13: plugin.ListHostsResponse + (*ListHostsResponseHost)(nil), // 14: plugin.ListHostsResponseHost + (*HostCatalogPersisted)(nil), // 15: plugin.HostCatalogPersisted + (*hostcatalogs.HostCatalog)(nil), // 16: controller.api.resources.hostcatalogs.v1.HostCatalog + (*hostsets.HostSet)(nil), // 17: controller.api.resources.hostsets.v1.HostSet + (*structpb.Struct)(nil), // 18: google.protobuf.Struct +} +var file_plugin_host_plugin_service_proto_depIdxs = []int32{ + 16, // 0: plugin.OnCreateCatalogRequest.catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 15, // 1: plugin.OnCreateCatalogResponse.persisted:type_name -> plugin.HostCatalogPersisted + 16, // 2: plugin.OnUpdateCatalogRequest.current_catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 16, // 3: plugin.OnUpdateCatalogRequest.new_catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 15, // 4: plugin.OnUpdateCatalogRequest.persisted:type_name -> plugin.HostCatalogPersisted + 15, // 5: plugin.OnUpdateCatalogResponse.persisted:type_name -> plugin.HostCatalogPersisted + 16, // 6: plugin.OnDeleteCatalogRequest.catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 15, // 7: plugin.OnDeleteCatalogRequest.persisted:type_name -> plugin.HostCatalogPersisted + 16, // 8: plugin.OnCreateSetRequest.catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 17, // 9: plugin.OnCreateSetRequest.set:type_name -> controller.api.resources.hostsets.v1.HostSet + 15, // 10: plugin.OnCreateSetRequest.persisted:type_name -> plugin.HostCatalogPersisted + 16, // 11: plugin.OnUpdateSetRequest.catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 17, // 12: plugin.OnUpdateSetRequest.current_set:type_name -> controller.api.resources.hostsets.v1.HostSet + 17, // 13: plugin.OnUpdateSetRequest.new_set:type_name -> controller.api.resources.hostsets.v1.HostSet + 15, // 14: plugin.OnUpdateSetRequest.persisted:type_name -> plugin.HostCatalogPersisted + 16, // 15: plugin.OnDeleteSetRequest.catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 17, // 16: plugin.OnDeleteSetRequest.current_set:type_name -> controller.api.resources.hostsets.v1.HostSet + 15, // 17: plugin.OnDeleteSetRequest.persisted:type_name -> plugin.HostCatalogPersisted + 16, // 18: plugin.ListHostsRequest.catalog:type_name -> controller.api.resources.hostcatalogs.v1.HostCatalog + 17, // 19: plugin.ListHostsRequest.sets:type_name -> controller.api.resources.hostsets.v1.HostSet + 15, // 20: plugin.ListHostsRequest.persisted:type_name -> plugin.HostCatalogPersisted + 14, // 21: plugin.ListHostsResponse.hosts:type_name -> plugin.ListHostsResponseHost + 18, // 22: plugin.ListHostsResponseHost.attributes:type_name -> google.protobuf.Struct + 18, // 23: plugin.HostCatalogPersisted.data:type_name -> google.protobuf.Struct + 0, // 24: plugin.HostPluginService.OnCreateCatalog:input_type -> plugin.OnCreateCatalogRequest + 2, // 25: plugin.HostPluginService.OnUpdateCatalog:input_type -> plugin.OnUpdateCatalogRequest + 4, // 26: plugin.HostPluginService.OnDeleteCatalog:input_type -> plugin.OnDeleteCatalogRequest + 6, // 27: plugin.HostPluginService.OnCreateSet:input_type -> plugin.OnCreateSetRequest + 8, // 28: plugin.HostPluginService.OnUpdateSet:input_type -> plugin.OnUpdateSetRequest + 10, // 29: plugin.HostPluginService.OnDeleteSet:input_type -> plugin.OnDeleteSetRequest + 12, // 30: plugin.HostPluginService.ListHosts:input_type -> plugin.ListHostsRequest + 1, // 31: plugin.HostPluginService.OnCreateCatalog:output_type -> plugin.OnCreateCatalogResponse + 3, // 32: plugin.HostPluginService.OnUpdateCatalog:output_type -> plugin.OnUpdateCatalogResponse + 5, // 33: plugin.HostPluginService.OnDeleteCatalog:output_type -> plugin.OnDeleteCatalogResponse + 7, // 34: plugin.HostPluginService.OnCreateSet:output_type -> plugin.OnCreateSetResponse + 9, // 35: plugin.HostPluginService.OnUpdateSet:output_type -> plugin.OnUpdateSetResponse + 11, // 36: plugin.HostPluginService.OnDeleteSet:output_type -> plugin.OnDeleteSetResponse + 13, // 37: plugin.HostPluginService.ListHosts:output_type -> plugin.ListHostsResponse + 31, // [31:38] is the sub-list for method output_type + 24, // [24:31] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name +} + +func init() { file_plugin_host_plugin_service_proto_init() } +func file_plugin_host_plugin_service_proto_init() { + if File_plugin_host_plugin_service_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_plugin_host_plugin_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnCreateCatalogRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnCreateCatalogResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnUpdateCatalogRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnUpdateCatalogResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnDeleteCatalogRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnDeleteCatalogResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnCreateSetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnCreateSetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnUpdateSetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnUpdateSetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnDeleteSetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnDeleteSetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListHostsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListHostsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListHostsResponseHost); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_plugin_host_plugin_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostCatalogPersisted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_plugin_host_plugin_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 16, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_plugin_host_plugin_service_proto_goTypes, + DependencyIndexes: file_plugin_host_plugin_service_proto_depIdxs, + MessageInfos: file_plugin_host_plugin_service_proto_msgTypes, + }.Build() + File_plugin_host_plugin_service_proto = out.File + file_plugin_host_plugin_service_proto_rawDesc = nil + file_plugin_host_plugin_service_proto_goTypes = nil + file_plugin_host_plugin_service_proto_depIdxs = nil +} diff --git a/plugin/proto/host_plugin_service_grpc.pb.go b/plugin/proto/host_plugin_service_grpc.pb.go new file mode 100644 index 0000000000..e6fe33224d --- /dev/null +++ b/plugin/proto/host_plugin_service_grpc.pb.go @@ -0,0 +1,337 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package proto + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// HostPluginServiceClient is the client API for HostPluginService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type HostPluginServiceClient interface { + // OnCreateCatalog is a hook that runs when a host catalog is + // created. + OnCreateCatalog(ctx context.Context, in *OnCreateCatalogRequest, opts ...grpc.CallOption) (*OnCreateCatalogResponse, error) + // OnUpdateCatalog is a hook that runs when a host catalog is + // updated. + OnUpdateCatalog(ctx context.Context, in *OnUpdateCatalogRequest, opts ...grpc.CallOption) (*OnUpdateCatalogResponse, error) + // OnDeleteCatalog is a hook that runs when a host catalog is + // deleted. + OnDeleteCatalog(ctx context.Context, in *OnDeleteCatalogRequest, opts ...grpc.CallOption) (*OnDeleteCatalogResponse, error) + // OnCreateSet is a hook that runs when a host set is created. + OnCreateSet(ctx context.Context, in *OnCreateSetRequest, opts ...grpc.CallOption) (*OnCreateSetResponse, error) + // OnUpdateSet is a hook that runs when a host set is updated. + OnUpdateSet(ctx context.Context, in *OnUpdateSetRequest, opts ...grpc.CallOption) (*OnUpdateSetResponse, error) + // OnDeleteSet is a hook that runs when a host set is deleted. + OnDeleteSet(ctx context.Context, in *OnDeleteSetRequest, opts ...grpc.CallOption) (*OnDeleteSetResponse, error) + // ListHosts looks up all the hosts in the provided host sets. + ListHosts(ctx context.Context, in *ListHostsRequest, opts ...grpc.CallOption) (*ListHostsResponse, error) +} + +type hostPluginServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewHostPluginServiceClient(cc grpc.ClientConnInterface) HostPluginServiceClient { + return &hostPluginServiceClient{cc} +} + +func (c *hostPluginServiceClient) OnCreateCatalog(ctx context.Context, in *OnCreateCatalogRequest, opts ...grpc.CallOption) (*OnCreateCatalogResponse, error) { + out := new(OnCreateCatalogResponse) + err := c.cc.Invoke(ctx, "/plugin.HostPluginService/OnCreateCatalog", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostPluginServiceClient) OnUpdateCatalog(ctx context.Context, in *OnUpdateCatalogRequest, opts ...grpc.CallOption) (*OnUpdateCatalogResponse, error) { + out := new(OnUpdateCatalogResponse) + err := c.cc.Invoke(ctx, "/plugin.HostPluginService/OnUpdateCatalog", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostPluginServiceClient) OnDeleteCatalog(ctx context.Context, in *OnDeleteCatalogRequest, opts ...grpc.CallOption) (*OnDeleteCatalogResponse, error) { + out := new(OnDeleteCatalogResponse) + err := c.cc.Invoke(ctx, "/plugin.HostPluginService/OnDeleteCatalog", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostPluginServiceClient) OnCreateSet(ctx context.Context, in *OnCreateSetRequest, opts ...grpc.CallOption) (*OnCreateSetResponse, error) { + out := new(OnCreateSetResponse) + err := c.cc.Invoke(ctx, "/plugin.HostPluginService/OnCreateSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostPluginServiceClient) OnUpdateSet(ctx context.Context, in *OnUpdateSetRequest, opts ...grpc.CallOption) (*OnUpdateSetResponse, error) { + out := new(OnUpdateSetResponse) + err := c.cc.Invoke(ctx, "/plugin.HostPluginService/OnUpdateSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostPluginServiceClient) OnDeleteSet(ctx context.Context, in *OnDeleteSetRequest, opts ...grpc.CallOption) (*OnDeleteSetResponse, error) { + out := new(OnDeleteSetResponse) + err := c.cc.Invoke(ctx, "/plugin.HostPluginService/OnDeleteSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostPluginServiceClient) ListHosts(ctx context.Context, in *ListHostsRequest, opts ...grpc.CallOption) (*ListHostsResponse, error) { + out := new(ListHostsResponse) + err := c.cc.Invoke(ctx, "/plugin.HostPluginService/ListHosts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HostPluginServiceServer is the server API for HostPluginService service. +// All implementations must embed UnimplementedHostPluginServiceServer +// for forward compatibility +type HostPluginServiceServer interface { + // OnCreateCatalog is a hook that runs when a host catalog is + // created. + OnCreateCatalog(context.Context, *OnCreateCatalogRequest) (*OnCreateCatalogResponse, error) + // OnUpdateCatalog is a hook that runs when a host catalog is + // updated. + OnUpdateCatalog(context.Context, *OnUpdateCatalogRequest) (*OnUpdateCatalogResponse, error) + // OnDeleteCatalog is a hook that runs when a host catalog is + // deleted. + OnDeleteCatalog(context.Context, *OnDeleteCatalogRequest) (*OnDeleteCatalogResponse, error) + // OnCreateSet is a hook that runs when a host set is created. + OnCreateSet(context.Context, *OnCreateSetRequest) (*OnCreateSetResponse, error) + // OnUpdateSet is a hook that runs when a host set is updated. + OnUpdateSet(context.Context, *OnUpdateSetRequest) (*OnUpdateSetResponse, error) + // OnDeleteSet is a hook that runs when a host set is deleted. + OnDeleteSet(context.Context, *OnDeleteSetRequest) (*OnDeleteSetResponse, error) + // ListHosts looks up all the hosts in the provided host sets. + ListHosts(context.Context, *ListHostsRequest) (*ListHostsResponse, error) + mustEmbedUnimplementedHostPluginServiceServer() +} + +// UnimplementedHostPluginServiceServer must be embedded to have forward compatible implementations. +type UnimplementedHostPluginServiceServer struct { +} + +func (UnimplementedHostPluginServiceServer) OnCreateCatalog(context.Context, *OnCreateCatalogRequest) (*OnCreateCatalogResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OnCreateCatalog not implemented") +} +func (UnimplementedHostPluginServiceServer) OnUpdateCatalog(context.Context, *OnUpdateCatalogRequest) (*OnUpdateCatalogResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OnUpdateCatalog not implemented") +} +func (UnimplementedHostPluginServiceServer) OnDeleteCatalog(context.Context, *OnDeleteCatalogRequest) (*OnDeleteCatalogResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OnDeleteCatalog not implemented") +} +func (UnimplementedHostPluginServiceServer) OnCreateSet(context.Context, *OnCreateSetRequest) (*OnCreateSetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OnCreateSet not implemented") +} +func (UnimplementedHostPluginServiceServer) OnUpdateSet(context.Context, *OnUpdateSetRequest) (*OnUpdateSetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OnUpdateSet not implemented") +} +func (UnimplementedHostPluginServiceServer) OnDeleteSet(context.Context, *OnDeleteSetRequest) (*OnDeleteSetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OnDeleteSet not implemented") +} +func (UnimplementedHostPluginServiceServer) ListHosts(context.Context, *ListHostsRequest) (*ListHostsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListHosts not implemented") +} +func (UnimplementedHostPluginServiceServer) mustEmbedUnimplementedHostPluginServiceServer() {} + +// UnsafeHostPluginServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to HostPluginServiceServer will +// result in compilation errors. +type UnsafeHostPluginServiceServer interface { + mustEmbedUnimplementedHostPluginServiceServer() +} + +func RegisterHostPluginServiceServer(s grpc.ServiceRegistrar, srv HostPluginServiceServer) { + s.RegisterService(&HostPluginService_ServiceDesc, srv) +} + +func _HostPluginService_OnCreateCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnCreateCatalogRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostPluginServiceServer).OnCreateCatalog(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/plugin.HostPluginService/OnCreateCatalog", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostPluginServiceServer).OnCreateCatalog(ctx, req.(*OnCreateCatalogRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostPluginService_OnUpdateCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnUpdateCatalogRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostPluginServiceServer).OnUpdateCatalog(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/plugin.HostPluginService/OnUpdateCatalog", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostPluginServiceServer).OnUpdateCatalog(ctx, req.(*OnUpdateCatalogRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostPluginService_OnDeleteCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnDeleteCatalogRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostPluginServiceServer).OnDeleteCatalog(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/plugin.HostPluginService/OnDeleteCatalog", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostPluginServiceServer).OnDeleteCatalog(ctx, req.(*OnDeleteCatalogRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostPluginService_OnCreateSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnCreateSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostPluginServiceServer).OnCreateSet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/plugin.HostPluginService/OnCreateSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostPluginServiceServer).OnCreateSet(ctx, req.(*OnCreateSetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostPluginService_OnUpdateSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnUpdateSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostPluginServiceServer).OnUpdateSet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/plugin.HostPluginService/OnUpdateSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostPluginServiceServer).OnUpdateSet(ctx, req.(*OnUpdateSetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostPluginService_OnDeleteSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnDeleteSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostPluginServiceServer).OnDeleteSet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/plugin.HostPluginService/OnDeleteSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostPluginServiceServer).OnDeleteSet(ctx, req.(*OnDeleteSetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostPluginService_ListHosts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListHostsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostPluginServiceServer).ListHosts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/plugin.HostPluginService/ListHosts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostPluginServiceServer).ListHosts(ctx, req.(*ListHostsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// HostPluginService_ServiceDesc is the grpc.ServiceDesc for HostPluginService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var HostPluginService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "plugin.HostPluginService", + HandlerType: (*HostPluginServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "OnCreateCatalog", + Handler: _HostPluginService_OnCreateCatalog_Handler, + }, + { + MethodName: "OnUpdateCatalog", + Handler: _HostPluginService_OnUpdateCatalog_Handler, + }, + { + MethodName: "OnDeleteCatalog", + Handler: _HostPluginService_OnDeleteCatalog_Handler, + }, + { + MethodName: "OnCreateSet", + Handler: _HostPluginService_OnCreateSet_Handler, + }, + { + MethodName: "OnUpdateSet", + Handler: _HostPluginService_OnUpdateSet_Handler, + }, + { + MethodName: "OnDeleteSet", + Handler: _HostPluginService_OnDeleteSet_Handler, + }, + { + MethodName: "ListHosts", + Handler: _HostPluginService_ListHosts_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "plugin/host_plugin_service.proto", +}