diff --git a/internal/proto/replication.pb.go b/internal/proto/replication.pb.go new file mode 100644 index 000000000..c0ca77f06 --- /dev/null +++ b/internal/proto/replication.pb.go @@ -0,0 +1,1091 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.14.0 +// source: replication.proto + +package proto + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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) +) + +// EnableVolumeReplicationRequest holds the required information to enable +// replication on a volume. +type EnableVolumeReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + ReplicationId string `protobuf:"bytes,2,opt,name=replication_id,json=replicationId,proto3" json:"replication_id,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by the driver to complete the request. + SecretName string `protobuf:"bytes,4,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"` + SecretNamespace string `protobuf:"bytes,5,opt,name=secret_namespace,json=secretNamespace,proto3" json:"secret_namespace,omitempty"` +} + +func (x *EnableVolumeReplicationRequest) Reset() { + *x = EnableVolumeReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnableVolumeReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnableVolumeReplicationRequest) ProtoMessage() {} + +func (x *EnableVolumeReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 EnableVolumeReplicationRequest.ProtoReflect.Descriptor instead. +func (*EnableVolumeReplicationRequest) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{0} +} + +func (x *EnableVolumeReplicationRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *EnableVolumeReplicationRequest) GetReplicationId() string { + if x != nil { + return x.ReplicationId + } + return "" +} + +func (x *EnableVolumeReplicationRequest) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *EnableVolumeReplicationRequest) GetSecretName() string { + if x != nil { + return x.SecretName + } + return "" +} + +func (x *EnableVolumeReplicationRequest) GetSecretNamespace() string { + if x != nil { + return x.SecretNamespace + } + return "" +} + +// EnableVolumeReplicationResponse holds the information to send when +// replication is successfully enabled on a volume. +type EnableVolumeReplicationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EnableVolumeReplicationResponse) Reset() { + *x = EnableVolumeReplicationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnableVolumeReplicationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnableVolumeReplicationResponse) ProtoMessage() {} + +func (x *EnableVolumeReplicationResponse) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 EnableVolumeReplicationResponse.ProtoReflect.Descriptor instead. +func (*EnableVolumeReplicationResponse) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{1} +} + +// DisableVolumeReplicationRequest holds the required information to disable +// replication on a volume. +type DisableVolumeReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + ReplicationId string `protobuf:"bytes,2,opt,name=replication_id,json=replicationId,proto3" json:"replication_id,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by the driver to complete the request. + SecretName string `protobuf:"bytes,4,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"` + SecretNamespace string `protobuf:"bytes,5,opt,name=secret_namespace,json=secretNamespace,proto3" json:"secret_namespace,omitempty"` +} + +func (x *DisableVolumeReplicationRequest) Reset() { + *x = DisableVolumeReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableVolumeReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableVolumeReplicationRequest) ProtoMessage() {} + +func (x *DisableVolumeReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 DisableVolumeReplicationRequest.ProtoReflect.Descriptor instead. +func (*DisableVolumeReplicationRequest) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{2} +} + +func (x *DisableVolumeReplicationRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *DisableVolumeReplicationRequest) GetReplicationId() string { + if x != nil { + return x.ReplicationId + } + return "" +} + +func (x *DisableVolumeReplicationRequest) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *DisableVolumeReplicationRequest) GetSecretName() string { + if x != nil { + return x.SecretName + } + return "" +} + +func (x *DisableVolumeReplicationRequest) GetSecretNamespace() string { + if x != nil { + return x.SecretNamespace + } + return "" +} + +// DisableVolumeReplicationResponse holds the information to send when +// replication is successfully disabled on a volume. +type DisableVolumeReplicationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisableVolumeReplicationResponse) Reset() { + *x = DisableVolumeReplicationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisableVolumeReplicationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisableVolumeReplicationResponse) ProtoMessage() {} + +func (x *DisableVolumeReplicationResponse) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 DisableVolumeReplicationResponse.ProtoReflect.Descriptor instead. +func (*DisableVolumeReplicationResponse) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{3} +} + +// PromoteVolumeRequest holds the required information to promote volume as a +// primary on local cluster. +type PromoteVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + ReplicationId string `protobuf:"bytes,2,opt,name=replication_id,json=replicationId,proto3" json:"replication_id,omitempty"` + // This field is optional. + // Default value is false, force option to Promote the volume. + Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by the driver to complete the request. + SecretName string `protobuf:"bytes,5,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"` + SecretNamespace string `protobuf:"bytes,6,opt,name=secret_namespace,json=secretNamespace,proto3" json:"secret_namespace,omitempty"` +} + +func (x *PromoteVolumeRequest) Reset() { + *x = PromoteVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PromoteVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PromoteVolumeRequest) ProtoMessage() {} + +func (x *PromoteVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 PromoteVolumeRequest.ProtoReflect.Descriptor instead. +func (*PromoteVolumeRequest) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{4} +} + +func (x *PromoteVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *PromoteVolumeRequest) GetReplicationId() string { + if x != nil { + return x.ReplicationId + } + return "" +} + +func (x *PromoteVolumeRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +func (x *PromoteVolumeRequest) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *PromoteVolumeRequest) GetSecretName() string { + if x != nil { + return x.SecretName + } + return "" +} + +func (x *PromoteVolumeRequest) GetSecretNamespace() string { + if x != nil { + return x.SecretNamespace + } + return "" +} + +// PromoteVolumeResponse holds the information to send when +// volume is successfully promoted. +type PromoteVolumeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PromoteVolumeResponse) Reset() { + *x = PromoteVolumeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PromoteVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PromoteVolumeResponse) ProtoMessage() {} + +func (x *PromoteVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 PromoteVolumeResponse.ProtoReflect.Descriptor instead. +func (*PromoteVolumeResponse) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{5} +} + +// DemoteVolumeRequest holds the required information to demote volume on local +// cluster. +type DemoteVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + ReplicationId string `protobuf:"bytes,2,opt,name=replication_id,json=replicationId,proto3" json:"replication_id,omitempty"` + // This field is optional. + // Default value is false, force option to Demote the volume. + Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by the driver to complete the request. + SecretName string `protobuf:"bytes,5,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"` + SecretNamespace string `protobuf:"bytes,6,opt,name=secret_namespace,json=secretNamespace,proto3" json:"secret_namespace,omitempty"` +} + +func (x *DemoteVolumeRequest) Reset() { + *x = DemoteVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DemoteVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DemoteVolumeRequest) ProtoMessage() {} + +func (x *DemoteVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 DemoteVolumeRequest.ProtoReflect.Descriptor instead. +func (*DemoteVolumeRequest) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{6} +} + +func (x *DemoteVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *DemoteVolumeRequest) GetReplicationId() string { + if x != nil { + return x.ReplicationId + } + return "" +} + +func (x *DemoteVolumeRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +func (x *DemoteVolumeRequest) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *DemoteVolumeRequest) GetSecretName() string { + if x != nil { + return x.SecretName + } + return "" +} + +func (x *DemoteVolumeRequest) GetSecretNamespace() string { + if x != nil { + return x.SecretNamespace + } + return "" +} + +// DemoteVolumeResponse holds the information to send when +// volume is successfully demoted. +type DemoteVolumeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DemoteVolumeResponse) Reset() { + *x = DemoteVolumeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DemoteVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DemoteVolumeResponse) ProtoMessage() {} + +func (x *DemoteVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 DemoteVolumeResponse.ProtoReflect.Descriptor instead. +func (*DemoteVolumeResponse) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{7} +} + +// ResyncVolumeRequest holds the required information to resync volume. +type ResyncVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + ReplicationId string `protobuf:"bytes,2,opt,name=replication_id,json=replicationId,proto3" json:"replication_id,omitempty"` + // This field is optional. + // Default value is false, force option to Resync the volume. + Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by the driver to complete the request. + SecretName string `protobuf:"bytes,5,opt,name=secret_name,json=secretName,proto3" json:"secret_name,omitempty"` + SecretNamespace string `protobuf:"bytes,6,opt,name=secret_namespace,json=secretNamespace,proto3" json:"secret_namespace,omitempty"` +} + +func (x *ResyncVolumeRequest) Reset() { + *x = ResyncVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResyncVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResyncVolumeRequest) ProtoMessage() {} + +func (x *ResyncVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 ResyncVolumeRequest.ProtoReflect.Descriptor instead. +func (*ResyncVolumeRequest) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{8} +} + +func (x *ResyncVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *ResyncVolumeRequest) GetReplicationId() string { + if x != nil { + return x.ReplicationId + } + return "" +} + +func (x *ResyncVolumeRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +func (x *ResyncVolumeRequest) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *ResyncVolumeRequest) GetSecretName() string { + if x != nil { + return x.SecretName + } + return "" +} + +func (x *ResyncVolumeRequest) GetSecretNamespace() string { + if x != nil { + return x.SecretNamespace + } + return "" +} + +// ResyncVolumeResponse holds the information to send when +// volume is successfully resynced. +type ResyncVolumeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Indicates that the volume is ready to use. + // The default value is false. + // This field is REQUIRED. + Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` +} + +func (x *ResyncVolumeResponse) Reset() { + *x = ResyncVolumeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_replication_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResyncVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResyncVolumeResponse) ProtoMessage() {} + +func (x *ResyncVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_replication_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 ResyncVolumeResponse.ProtoReflect.Descriptor instead. +func (*ResyncVolumeResponse) Descriptor() ([]byte, []int) { + return file_replication_proto_rawDescGZIP(), []int{9} +} + +func (x *ResyncVolumeResponse) GetReady() bool { + if x != nil { + return x.Ready + } + return false +} + +var File_replication_proto protoreflect.FileDescriptor + +var file_replication_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x02, 0x0a, 0x1e, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x55, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x21, 0x0a, 0x1f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x1f, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x56, + 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x22, 0x0a, 0x20, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x17, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc6, 0x02, 0x0a, 0x13, 0x44, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc6, 0x02, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, + 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x32, 0xcc, 0x03, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x6a, 0x0a, 0x17, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6d, 0x0a, + 0x18, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0d, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x44, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, + 0x73, 0x79, 0x6e, 0x63, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x42, 0x3c, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x73, 0x69, 0x2d, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2d, 0x61, 0x64, 0x64, 0x6f, 0x6e, 0x73, 0x2f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_replication_proto_rawDescOnce sync.Once + file_replication_proto_rawDescData = file_replication_proto_rawDesc +) + +func file_replication_proto_rawDescGZIP() []byte { + file_replication_proto_rawDescOnce.Do(func() { + file_replication_proto_rawDescData = protoimpl.X.CompressGZIP(file_replication_proto_rawDescData) + }) + return file_replication_proto_rawDescData +} + +var file_replication_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_replication_proto_goTypes = []interface{}{ + (*EnableVolumeReplicationRequest)(nil), // 0: proto.EnableVolumeReplicationRequest + (*EnableVolumeReplicationResponse)(nil), // 1: proto.EnableVolumeReplicationResponse + (*DisableVolumeReplicationRequest)(nil), // 2: proto.DisableVolumeReplicationRequest + (*DisableVolumeReplicationResponse)(nil), // 3: proto.DisableVolumeReplicationResponse + (*PromoteVolumeRequest)(nil), // 4: proto.PromoteVolumeRequest + (*PromoteVolumeResponse)(nil), // 5: proto.PromoteVolumeResponse + (*DemoteVolumeRequest)(nil), // 6: proto.DemoteVolumeRequest + (*DemoteVolumeResponse)(nil), // 7: proto.DemoteVolumeResponse + (*ResyncVolumeRequest)(nil), // 8: proto.ResyncVolumeRequest + (*ResyncVolumeResponse)(nil), // 9: proto.ResyncVolumeResponse + nil, // 10: proto.EnableVolumeReplicationRequest.ParametersEntry + nil, // 11: proto.DisableVolumeReplicationRequest.ParametersEntry + nil, // 12: proto.PromoteVolumeRequest.ParametersEntry + nil, // 13: proto.DemoteVolumeRequest.ParametersEntry + nil, // 14: proto.ResyncVolumeRequest.ParametersEntry +} +var file_replication_proto_depIdxs = []int32{ + 10, // 0: proto.EnableVolumeReplicationRequest.parameters:type_name -> proto.EnableVolumeReplicationRequest.ParametersEntry + 11, // 1: proto.DisableVolumeReplicationRequest.parameters:type_name -> proto.DisableVolumeReplicationRequest.ParametersEntry + 12, // 2: proto.PromoteVolumeRequest.parameters:type_name -> proto.PromoteVolumeRequest.ParametersEntry + 13, // 3: proto.DemoteVolumeRequest.parameters:type_name -> proto.DemoteVolumeRequest.ParametersEntry + 14, // 4: proto.ResyncVolumeRequest.parameters:type_name -> proto.ResyncVolumeRequest.ParametersEntry + 0, // 5: proto.Replication.EnableVolumeReplication:input_type -> proto.EnableVolumeReplicationRequest + 2, // 6: proto.Replication.DisableVolumeReplication:input_type -> proto.DisableVolumeReplicationRequest + 4, // 7: proto.Replication.PromoteVolume:input_type -> proto.PromoteVolumeRequest + 6, // 8: proto.Replication.DemoteVolume:input_type -> proto.DemoteVolumeRequest + 8, // 9: proto.Replication.ResyncVolume:input_type -> proto.ResyncVolumeRequest + 1, // 10: proto.Replication.EnableVolumeReplication:output_type -> proto.EnableVolumeReplicationResponse + 3, // 11: proto.Replication.DisableVolumeReplication:output_type -> proto.DisableVolumeReplicationResponse + 5, // 12: proto.Replication.PromoteVolume:output_type -> proto.PromoteVolumeResponse + 7, // 13: proto.Replication.DemoteVolume:output_type -> proto.DemoteVolumeResponse + 9, // 14: proto.Replication.ResyncVolume:output_type -> proto.ResyncVolumeResponse + 10, // [10:15] is the sub-list for method output_type + 5, // [5:10] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_replication_proto_init() } +func file_replication_proto_init() { + if File_replication_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_replication_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnableVolumeReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnableVolumeReplicationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableVolumeReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisableVolumeReplicationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PromoteVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PromoteVolumeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DemoteVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DemoteVolumeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResyncVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_replication_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResyncVolumeResponse); 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_replication_proto_rawDesc, + NumEnums: 0, + NumMessages: 15, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_replication_proto_goTypes, + DependencyIndexes: file_replication_proto_depIdxs, + MessageInfos: file_replication_proto_msgTypes, + }.Build() + File_replication_proto = out.File + file_replication_proto_rawDesc = nil + file_replication_proto_goTypes = nil + file_replication_proto_depIdxs = nil +} diff --git a/internal/proto/replication.proto b/internal/proto/replication.proto new file mode 100644 index 000000000..0a767efea --- /dev/null +++ b/internal/proto/replication.proto @@ -0,0 +1,176 @@ +syntax = "proto3"; +package proto; + +option go_package = "github.com/csi-addons/kubernetes-csi-addons/internal/proto"; + +// Replication holds the RPC menthod for allowing the communication between +// the CSIAddons controller and the sidecar for replication operation. +service Replication { + // EnableVolumeReplication RPC call to enable the volume replication. + rpc EnableVolumeReplication (EnableVolumeReplicationRequest) + returns (EnableVolumeReplicationResponse) {} + // DisableVolumeReplication RPC call to disable the volume replication. + rpc DisableVolumeReplication (DisableVolumeReplicationRequest) + returns (DisableVolumeReplicationResponse) {} + // PromoteVolume RPC call to promote the volume. + rpc PromoteVolume (PromoteVolumeRequest) + returns (PromoteVolumeResponse) {} + // DemoteVolume RPC call to demote the volume. + rpc DemoteVolume (DemoteVolumeRequest) + returns (DemoteVolumeResponse) {} + // ResyncVolume RPC call to resync the volume. + rpc ResyncVolume (ResyncVolumeRequest) + returns (ResyncVolumeResponse) {} +} +// EnableVolumeReplicationRequest holds the required information to enable +// replication on a volume. +message EnableVolumeReplicationRequest { + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + string volume_id = 1; + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + string replication_id = 2; + // Plugin specific parameters passed in as opaque key-value pairs. + map parameters = 3; + // Secrets required by the driver to complete the request. + string secret_name = 4; + string secret_namespace = 5; +} + +// EnableVolumeReplicationResponse holds the information to send when +// replication is successfully enabled on a volume. +message EnableVolumeReplicationResponse { +} +// DisableVolumeReplicationRequest holds the required information to disable +// replication on a volume. +message DisableVolumeReplicationRequest { + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + string volume_id = 1; + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + string replication_id = 2; + // Plugin specific parameters passed in as opaque key-value pairs. + map parameters = 3; + // Secrets required by the driver to complete the request. + string secret_name = 4; + string secret_namespace = 5; +} + +// DisableVolumeReplicationResponse holds the information to send when +// replication is successfully disabled on a volume. +message DisableVolumeReplicationResponse { +} +// PromoteVolumeRequest holds the required information to promote volume as a +// primary on local cluster. +message PromoteVolumeRequest { + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + string volume_id = 1; + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + string replication_id = 2; + // This field is optional. + // Default value is false, force option to Promote the volume. + bool force = 3; + // Plugin specific parameters passed in as opaque key-value pairs. + map parameters = 4; + // Secrets required by the driver to complete the request. + string secret_name = 5; + string secret_namespace = 6; +} + +// PromoteVolumeResponse holds the information to send when +// volume is successfully promoted. +message PromoteVolumeResponse{ +} +// DemoteVolumeRequest holds the required information to demote volume on local +// cluster. +message DemoteVolumeRequest { + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + string volume_id = 1; + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + string replication_id = 2; + // This field is optional. + // Default value is false, force option to Demote the volume. + bool force = 3; + // Plugin specific parameters passed in as opaque key-value pairs. + map parameters = 4; + // Secrets required by the driver to complete the request. + string secret_name = 5; + string secret_namespace = 6; +} + +// DemoteVolumeResponse holds the information to send when +// volume is successfully demoted. +message DemoteVolumeResponse{ +} +// ResyncVolumeRequest holds the required information to resync volume. +message ResyncVolumeRequest { + // The identifier for this volume, generated by the plugin during + // CreateVolume CSI RPC call. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + string volume_id = 1; + // The identifier for the replication. + // This field is OPTIONAL. + // This field MUST contain enough information, together with volume_id, + // to uniquely identify this specific replication + // vs all other replications supported by this plugin. + string replication_id = 2; + // This field is optional. + // Default value is false, force option to Resync the volume. + bool force = 3; + // Plugin specific parameters passed in as opaque key-value pairs. + map parameters = 4; + // Secrets required by the driver to complete the request. + string secret_name = 5; + string secret_namespace = 6; +} + +// ResyncVolumeResponse holds the information to send when +// volume is successfully resynced. +message ResyncVolumeResponse{ + // Indicates that the volume is ready to use. + // The default value is false. + // This field is REQUIRED. + bool ready = 1; +} \ No newline at end of file diff --git a/internal/proto/replication_grpc.pb.go b/internal/proto/replication_grpc.pb.go new file mode 100644 index 000000000..9677fbb3d --- /dev/null +++ b/internal/proto/replication_grpc.pb.go @@ -0,0 +1,255 @@ +// 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 + +// ReplicationClient is the client API for Replication 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 ReplicationClient interface { + // EnableVolumeReplication RPC call to enable the volume replication. + EnableVolumeReplication(ctx context.Context, in *EnableVolumeReplicationRequest, opts ...grpc.CallOption) (*EnableVolumeReplicationResponse, error) + // DisableVolumeReplication RPC call to disable the volume replication. + DisableVolumeReplication(ctx context.Context, in *DisableVolumeReplicationRequest, opts ...grpc.CallOption) (*DisableVolumeReplicationResponse, error) + // PromoteVolume RPC call to promote the volume. + PromoteVolume(ctx context.Context, in *PromoteVolumeRequest, opts ...grpc.CallOption) (*PromoteVolumeResponse, error) + // DemoteVolume RPC call to demote the volume. + DemoteVolume(ctx context.Context, in *DemoteVolumeRequest, opts ...grpc.CallOption) (*DemoteVolumeResponse, error) + // ResyncVolume RPC call to resync the volume. + ResyncVolume(ctx context.Context, in *ResyncVolumeRequest, opts ...grpc.CallOption) (*ResyncVolumeResponse, error) +} + +type replicationClient struct { + cc grpc.ClientConnInterface +} + +func NewReplicationClient(cc grpc.ClientConnInterface) ReplicationClient { + return &replicationClient{cc} +} + +func (c *replicationClient) EnableVolumeReplication(ctx context.Context, in *EnableVolumeReplicationRequest, opts ...grpc.CallOption) (*EnableVolumeReplicationResponse, error) { + out := new(EnableVolumeReplicationResponse) + err := c.cc.Invoke(ctx, "/proto.Replication/EnableVolumeReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) DisableVolumeReplication(ctx context.Context, in *DisableVolumeReplicationRequest, opts ...grpc.CallOption) (*DisableVolumeReplicationResponse, error) { + out := new(DisableVolumeReplicationResponse) + err := c.cc.Invoke(ctx, "/proto.Replication/DisableVolumeReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) PromoteVolume(ctx context.Context, in *PromoteVolumeRequest, opts ...grpc.CallOption) (*PromoteVolumeResponse, error) { + out := new(PromoteVolumeResponse) + err := c.cc.Invoke(ctx, "/proto.Replication/PromoteVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) DemoteVolume(ctx context.Context, in *DemoteVolumeRequest, opts ...grpc.CallOption) (*DemoteVolumeResponse, error) { + out := new(DemoteVolumeResponse) + err := c.cc.Invoke(ctx, "/proto.Replication/DemoteVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) ResyncVolume(ctx context.Context, in *ResyncVolumeRequest, opts ...grpc.CallOption) (*ResyncVolumeResponse, error) { + out := new(ResyncVolumeResponse) + err := c.cc.Invoke(ctx, "/proto.Replication/ResyncVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ReplicationServer is the server API for Replication service. +// All implementations must embed UnimplementedReplicationServer +// for forward compatibility +type ReplicationServer interface { + // EnableVolumeReplication RPC call to enable the volume replication. + EnableVolumeReplication(context.Context, *EnableVolumeReplicationRequest) (*EnableVolumeReplicationResponse, error) + // DisableVolumeReplication RPC call to disable the volume replication. + DisableVolumeReplication(context.Context, *DisableVolumeReplicationRequest) (*DisableVolumeReplicationResponse, error) + // PromoteVolume RPC call to promote the volume. + PromoteVolume(context.Context, *PromoteVolumeRequest) (*PromoteVolumeResponse, error) + // DemoteVolume RPC call to demote the volume. + DemoteVolume(context.Context, *DemoteVolumeRequest) (*DemoteVolumeResponse, error) + // ResyncVolume RPC call to resync the volume. + ResyncVolume(context.Context, *ResyncVolumeRequest) (*ResyncVolumeResponse, error) + mustEmbedUnimplementedReplicationServer() +} + +// UnimplementedReplicationServer must be embedded to have forward compatible implementations. +type UnimplementedReplicationServer struct { +} + +func (UnimplementedReplicationServer) EnableVolumeReplication(context.Context, *EnableVolumeReplicationRequest) (*EnableVolumeReplicationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EnableVolumeReplication not implemented") +} +func (UnimplementedReplicationServer) DisableVolumeReplication(context.Context, *DisableVolumeReplicationRequest) (*DisableVolumeReplicationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisableVolumeReplication not implemented") +} +func (UnimplementedReplicationServer) PromoteVolume(context.Context, *PromoteVolumeRequest) (*PromoteVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PromoteVolume not implemented") +} +func (UnimplementedReplicationServer) DemoteVolume(context.Context, *DemoteVolumeRequest) (*DemoteVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DemoteVolume not implemented") +} +func (UnimplementedReplicationServer) ResyncVolume(context.Context, *ResyncVolumeRequest) (*ResyncVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResyncVolume not implemented") +} +func (UnimplementedReplicationServer) mustEmbedUnimplementedReplicationServer() {} + +// UnsafeReplicationServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ReplicationServer will +// result in compilation errors. +type UnsafeReplicationServer interface { + mustEmbedUnimplementedReplicationServer() +} + +func RegisterReplicationServer(s grpc.ServiceRegistrar, srv ReplicationServer) { + s.RegisterService(&Replication_ServiceDesc, srv) +} + +func _Replication_EnableVolumeReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EnableVolumeReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).EnableVolumeReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/proto.Replication/EnableVolumeReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).EnableVolumeReplication(ctx, req.(*EnableVolumeReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_DisableVolumeReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisableVolumeReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).DisableVolumeReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/proto.Replication/DisableVolumeReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).DisableVolumeReplication(ctx, req.(*DisableVolumeReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_PromoteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PromoteVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).PromoteVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/proto.Replication/PromoteVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).PromoteVolume(ctx, req.(*PromoteVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_DemoteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DemoteVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).DemoteVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/proto.Replication/DemoteVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).DemoteVolume(ctx, req.(*DemoteVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_ResyncVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResyncVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).ResyncVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/proto.Replication/ResyncVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).ResyncVolume(ctx, req.(*ResyncVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Replication_ServiceDesc is the grpc.ServiceDesc for Replication service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Replication_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "proto.Replication", + HandlerType: (*ReplicationServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "EnableVolumeReplication", + Handler: _Replication_EnableVolumeReplication_Handler, + }, + { + MethodName: "DisableVolumeReplication", + Handler: _Replication_DisableVolumeReplication_Handler, + }, + { + MethodName: "PromoteVolume", + Handler: _Replication_PromoteVolume_Handler, + }, + { + MethodName: "DemoteVolume", + Handler: _Replication_DemoteVolume_Handler, + }, + { + MethodName: "ResyncVolume", + Handler: _Replication_ResyncVolume_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "replication.proto", +}