diff --git a/.release-please-manifest-submodules.json b/.release-please-manifest-submodules.json index 33b5064c1a3..2f3bb3183d2 100644 --- a/.release-please-manifest-submodules.json +++ b/.release-please-manifest-submodules.json @@ -74,6 +74,7 @@ "metastore": "1.12.0", "migrationcenter": "0.1.0", "monitoring": "1.15.1", + "netapp": "0.0.0", "networkconnectivity": "1.12.1", "networkmanagement": "1.8.0", "networksecurity": "0.9.1", diff --git a/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go b/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go index d55d23c8e00..133581f4184 100755 --- a/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go +++ b/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go @@ -149,6 +149,9 @@ type PredictResponse struct { // name][google.cloud.aiplatform.v1.Model.display_name] of the Model which is // deployed as the DeployedModel that this prediction hits. ModelDisplayName string `protobuf:"bytes,4,opt,name=model_display_name,json=modelDisplayName,proto3" json:"model_display_name,omitempty"` + // Output only. Request-level metadata returned by the model. The metadata + // type will be dependent upon the model implementation. + Metadata *structpb.Value `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` } func (x *PredictResponse) Reset() { @@ -218,6 +221,13 @@ func (x *PredictResponse) GetModelDisplayName() string { return "" } +func (x *PredictResponse) GetMetadata() *structpb.Value { + if x != nil { + return x.Metadata + } + return nil +} + // Request message for // [PredictionService.RawPredict][google.cloud.aiplatform.v1.PredictionService.RawPredict]. type RawPredictRequest struct { @@ -293,6 +303,139 @@ func (x *RawPredictRequest) GetHttpBody() *httpbody.HttpBody { return nil } +// Request message for +// [PredictionService.StreamingPredict][google.cloud.aiplatform.v1.PredictionService.StreamingPredict]. +// +// The first message must contain +// [endpoint][google.cloud.aiplatform.v1.StreamingPredictRequest.endpoint] field +// and optionally [input][]. The subsequent messages must contain [input][]. +type StreamingPredictRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the Endpoint requested to serve the prediction. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // The prediction input. + Inputs []*Tensor `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty"` + // The parameters that govern the prediction. + Parameters *Tensor `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (x *StreamingPredictRequest) Reset() { + *x = StreamingPredictRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingPredictRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingPredictRequest) ProtoMessage() {} + +func (x *StreamingPredictRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_prediction_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 StreamingPredictRequest.ProtoReflect.Descriptor instead. +func (*StreamingPredictRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{3} +} + +func (x *StreamingPredictRequest) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *StreamingPredictRequest) GetInputs() []*Tensor { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *StreamingPredictRequest) GetParameters() *Tensor { + if x != nil { + return x.Parameters + } + return nil +} + +// Response message for +// [PredictionService.StreamingPredict][google.cloud.aiplatform.v1.PredictionService.StreamingPredict]. +type StreamingPredictResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The prediction output. + Outputs []*Tensor `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` + // The parameters that govern the prediction. + Parameters *Tensor `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (x *StreamingPredictResponse) Reset() { + *x = StreamingPredictResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingPredictResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingPredictResponse) ProtoMessage() {} + +func (x *StreamingPredictResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_prediction_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 StreamingPredictResponse.ProtoReflect.Descriptor instead. +func (*StreamingPredictResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{4} +} + +func (x *StreamingPredictResponse) GetOutputs() []*Tensor { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *StreamingPredictResponse) GetParameters() *Tensor { + if x != nil { + return x.Parameters + } + return nil +} + // Request message for // [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain]. type ExplainRequest struct { @@ -338,7 +481,7 @@ type ExplainRequest struct { func (x *ExplainRequest) Reset() { *x = ExplainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -351,7 +494,7 @@ func (x *ExplainRequest) String() string { func (*ExplainRequest) ProtoMessage() {} func (x *ExplainRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -364,7 +507,7 @@ func (x *ExplainRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExplainRequest.ProtoReflect.Descriptor instead. func (*ExplainRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{3} + return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{5} } func (x *ExplainRequest) GetEndpoint() string { @@ -427,7 +570,7 @@ type ExplainResponse struct { func (x *ExplainResponse) Reset() { *x = ExplainResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -440,7 +583,7 @@ func (x *ExplainResponse) String() string { func (*ExplainResponse) ProtoMessage() {} func (x *ExplainResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -453,7 +596,7 @@ func (x *ExplainResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ExplainResponse.ProtoReflect.Descriptor instead. func (*ExplainResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{4} + return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{6} } func (x *ExplainResponse) GetExplanations() []*Explanation { @@ -496,151 +639,201 @@ var file_google_cloud_aiplatform_v1_prediction_service_proto_rawDesc = []byte{ 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, - 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x22, 0xcb, 0x01, 0x0a, 0x0e, - 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x98, 0x02, 0x0a, 0x0f, 0x50, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, - 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x12, 0x2d, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, - 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x08, 0x68, 0x74, 0x74, - 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xe8, 0x02, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x6f, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x17, 0x65, 0x78, 0x70, - 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, - 0x72, 0x69, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, - 0x22, 0xc4, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x22, 0xcb, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, + 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, + 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x03, 0xfa, + 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x2d, 0x0a, 0x10, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x08, 0x68, 0x74, + 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xe1, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x06, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x18, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x07, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xe8, 0x02, 0x0a, 0x0e, 0x45, 0x78, + 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6f, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x6c, 0x61, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x38, 0x0a, - 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xd7, 0x06, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x94, 0x02, - 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, + 0x17, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x49, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, + 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, + 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x8f, 0x09, 0x0a, 0x11, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x94, 0x02, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x2a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xaf, 0x01, 0xda, 0x41, 0x1d, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x88, 0x01, 0x3a, 0x01, 0x2a, 0x5a, - 0x48, 0x3a, 0x01, 0x2a, 0x22, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, - 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x74, 0x12, 0xfe, 0x01, 0x0a, 0x0a, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, - 0x69, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xaa, 0x01, 0xda, 0x41, 0x12, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8e, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x4b, 0x3a, 0x01, 0x2a, 0x22, - 0x46, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, - 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x77, - 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x77, 0x50, 0x72, - 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0xda, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, - 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, 0x01, 0xda, 0x41, 0x1d, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x88, 0x01, + 0x3a, 0x01, 0x2a, 0x5a, 0x48, 0x3a, 0x01, 0x2a, 0x22, 0x43, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x39, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0xfe, 0x01, 0x0a, 0x0a, 0x52, 0x61, 0x77, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xaa, 0x01, 0xda, + 0x41, 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x5f, + 0x62, 0x6f, 0x64, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x8e, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x4b, + 0x3a, 0x01, 0x2a, 0x22, 0x46, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x72, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x3c, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, + 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0xb5, 0x02, 0x0a, 0x16, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, + 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xad, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa6, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x57, 0x3a, 0x01, + 0x2a, 0x22, 0x52, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, + 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x48, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x30, + 0x01, 0x12, 0xda, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0xda, 0x41, 0x2f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x2c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2c, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x01, 0x2a, 0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6c, 0x61, - 0x69, 0x6e, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, - 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x42, 0xd4, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x16, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, - 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, - 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x76, 0xda, 0x41, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, + 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, + 0x3a, 0x01, 0x2a, 0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x1a, 0x4d, + 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xd4, 0x01, + 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x42, 0x16, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -655,39 +848,49 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP() []by return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescData } -var file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_google_cloud_aiplatform_v1_prediction_service_proto_goTypes = []interface{}{ - (*PredictRequest)(nil), // 0: google.cloud.aiplatform.v1.PredictRequest - (*PredictResponse)(nil), // 1: google.cloud.aiplatform.v1.PredictResponse - (*RawPredictRequest)(nil), // 2: google.cloud.aiplatform.v1.RawPredictRequest - (*ExplainRequest)(nil), // 3: google.cloud.aiplatform.v1.ExplainRequest - (*ExplainResponse)(nil), // 4: google.cloud.aiplatform.v1.ExplainResponse - (*structpb.Value)(nil), // 5: google.protobuf.Value - (*httpbody.HttpBody)(nil), // 6: google.api.HttpBody - (*ExplanationSpecOverride)(nil), // 7: google.cloud.aiplatform.v1.ExplanationSpecOverride - (*Explanation)(nil), // 8: google.cloud.aiplatform.v1.Explanation + (*PredictRequest)(nil), // 0: google.cloud.aiplatform.v1.PredictRequest + (*PredictResponse)(nil), // 1: google.cloud.aiplatform.v1.PredictResponse + (*RawPredictRequest)(nil), // 2: google.cloud.aiplatform.v1.RawPredictRequest + (*StreamingPredictRequest)(nil), // 3: google.cloud.aiplatform.v1.StreamingPredictRequest + (*StreamingPredictResponse)(nil), // 4: google.cloud.aiplatform.v1.StreamingPredictResponse + (*ExplainRequest)(nil), // 5: google.cloud.aiplatform.v1.ExplainRequest + (*ExplainResponse)(nil), // 6: google.cloud.aiplatform.v1.ExplainResponse + (*structpb.Value)(nil), // 7: google.protobuf.Value + (*httpbody.HttpBody)(nil), // 8: google.api.HttpBody + (*Tensor)(nil), // 9: google.cloud.aiplatform.v1.Tensor + (*ExplanationSpecOverride)(nil), // 10: google.cloud.aiplatform.v1.ExplanationSpecOverride + (*Explanation)(nil), // 11: google.cloud.aiplatform.v1.Explanation } var file_google_cloud_aiplatform_v1_prediction_service_proto_depIdxs = []int32{ - 5, // 0: google.cloud.aiplatform.v1.PredictRequest.instances:type_name -> google.protobuf.Value - 5, // 1: google.cloud.aiplatform.v1.PredictRequest.parameters:type_name -> google.protobuf.Value - 5, // 2: google.cloud.aiplatform.v1.PredictResponse.predictions:type_name -> google.protobuf.Value - 6, // 3: google.cloud.aiplatform.v1.RawPredictRequest.http_body:type_name -> google.api.HttpBody - 5, // 4: google.cloud.aiplatform.v1.ExplainRequest.instances:type_name -> google.protobuf.Value - 5, // 5: google.cloud.aiplatform.v1.ExplainRequest.parameters:type_name -> google.protobuf.Value - 7, // 6: google.cloud.aiplatform.v1.ExplainRequest.explanation_spec_override:type_name -> google.cloud.aiplatform.v1.ExplanationSpecOverride - 8, // 7: google.cloud.aiplatform.v1.ExplainResponse.explanations:type_name -> google.cloud.aiplatform.v1.Explanation - 5, // 8: google.cloud.aiplatform.v1.ExplainResponse.predictions:type_name -> google.protobuf.Value - 0, // 9: google.cloud.aiplatform.v1.PredictionService.Predict:input_type -> google.cloud.aiplatform.v1.PredictRequest - 2, // 10: google.cloud.aiplatform.v1.PredictionService.RawPredict:input_type -> google.cloud.aiplatform.v1.RawPredictRequest - 3, // 11: google.cloud.aiplatform.v1.PredictionService.Explain:input_type -> google.cloud.aiplatform.v1.ExplainRequest - 1, // 12: google.cloud.aiplatform.v1.PredictionService.Predict:output_type -> google.cloud.aiplatform.v1.PredictResponse - 6, // 13: google.cloud.aiplatform.v1.PredictionService.RawPredict:output_type -> google.api.HttpBody - 4, // 14: google.cloud.aiplatform.v1.PredictionService.Explain:output_type -> google.cloud.aiplatform.v1.ExplainResponse - 12, // [12:15] is the sub-list for method output_type - 9, // [9:12] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 7, // 0: google.cloud.aiplatform.v1.PredictRequest.instances:type_name -> google.protobuf.Value + 7, // 1: google.cloud.aiplatform.v1.PredictRequest.parameters:type_name -> google.protobuf.Value + 7, // 2: google.cloud.aiplatform.v1.PredictResponse.predictions:type_name -> google.protobuf.Value + 7, // 3: google.cloud.aiplatform.v1.PredictResponse.metadata:type_name -> google.protobuf.Value + 8, // 4: google.cloud.aiplatform.v1.RawPredictRequest.http_body:type_name -> google.api.HttpBody + 9, // 5: google.cloud.aiplatform.v1.StreamingPredictRequest.inputs:type_name -> google.cloud.aiplatform.v1.Tensor + 9, // 6: google.cloud.aiplatform.v1.StreamingPredictRequest.parameters:type_name -> google.cloud.aiplatform.v1.Tensor + 9, // 7: google.cloud.aiplatform.v1.StreamingPredictResponse.outputs:type_name -> google.cloud.aiplatform.v1.Tensor + 9, // 8: google.cloud.aiplatform.v1.StreamingPredictResponse.parameters:type_name -> google.cloud.aiplatform.v1.Tensor + 7, // 9: google.cloud.aiplatform.v1.ExplainRequest.instances:type_name -> google.protobuf.Value + 7, // 10: google.cloud.aiplatform.v1.ExplainRequest.parameters:type_name -> google.protobuf.Value + 10, // 11: google.cloud.aiplatform.v1.ExplainRequest.explanation_spec_override:type_name -> google.cloud.aiplatform.v1.ExplanationSpecOverride + 11, // 12: google.cloud.aiplatform.v1.ExplainResponse.explanations:type_name -> google.cloud.aiplatform.v1.Explanation + 7, // 13: google.cloud.aiplatform.v1.ExplainResponse.predictions:type_name -> google.protobuf.Value + 0, // 14: google.cloud.aiplatform.v1.PredictionService.Predict:input_type -> google.cloud.aiplatform.v1.PredictRequest + 2, // 15: google.cloud.aiplatform.v1.PredictionService.RawPredict:input_type -> google.cloud.aiplatform.v1.RawPredictRequest + 3, // 16: google.cloud.aiplatform.v1.PredictionService.ServerStreamingPredict:input_type -> google.cloud.aiplatform.v1.StreamingPredictRequest + 5, // 17: google.cloud.aiplatform.v1.PredictionService.Explain:input_type -> google.cloud.aiplatform.v1.ExplainRequest + 1, // 18: google.cloud.aiplatform.v1.PredictionService.Predict:output_type -> google.cloud.aiplatform.v1.PredictResponse + 8, // 19: google.cloud.aiplatform.v1.PredictionService.RawPredict:output_type -> google.api.HttpBody + 4, // 20: google.cloud.aiplatform.v1.PredictionService.ServerStreamingPredict:output_type -> google.cloud.aiplatform.v1.StreamingPredictResponse + 6, // 21: google.cloud.aiplatform.v1.PredictionService.Explain:output_type -> google.cloud.aiplatform.v1.ExplainResponse + 18, // [18:22] is the sub-list for method output_type + 14, // [14:18] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1_prediction_service_proto_init() } @@ -696,6 +899,7 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_init() { return } file_google_cloud_aiplatform_v1_explanation_proto_init() + file_google_cloud_aiplatform_v1_types_proto_init() if !protoimpl.UnsafeEnabled { file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PredictRequest); i { @@ -734,7 +938,7 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_init() { } } file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExplainRequest); i { + switch v := v.(*StreamingPredictRequest); i { case 0: return &v.state case 1: @@ -746,6 +950,30 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_init() { } } file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingPredictResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExplainRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExplainResponse); i { case 0: return &v.state @@ -764,7 +992,7 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1_prediction_service_proto_rawDesc, NumEnums: 0, - NumMessages: 5, + NumMessages: 7, NumExtensions: 0, NumServices: 1, }, @@ -804,6 +1032,9 @@ type PredictionServiceClient interface { // [DeployedModel][google.cloud.aiplatform.v1.DeployedModel] that served this // prediction. RawPredict(ctx context.Context, in *RawPredictRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) + // Perform a server-side streaming online prediction request for Vertex + // LLM streaming. + ServerStreamingPredict(ctx context.Context, in *StreamingPredictRequest, opts ...grpc.CallOption) (PredictionService_ServerStreamingPredictClient, error) // Perform an online explanation. // // If @@ -844,6 +1075,38 @@ func (c *predictionServiceClient) RawPredict(ctx context.Context, in *RawPredict return out, nil } +func (c *predictionServiceClient) ServerStreamingPredict(ctx context.Context, in *StreamingPredictRequest, opts ...grpc.CallOption) (PredictionService_ServerStreamingPredictClient, error) { + stream, err := c.cc.NewStream(ctx, &_PredictionService_serviceDesc.Streams[0], "/google.cloud.aiplatform.v1.PredictionService/ServerStreamingPredict", opts...) + if err != nil { + return nil, err + } + x := &predictionServiceServerStreamingPredictClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type PredictionService_ServerStreamingPredictClient interface { + Recv() (*StreamingPredictResponse, error) + grpc.ClientStream +} + +type predictionServiceServerStreamingPredictClient struct { + grpc.ClientStream +} + +func (x *predictionServiceServerStreamingPredictClient) Recv() (*StreamingPredictResponse, error) { + m := new(StreamingPredictResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *predictionServiceClient) Explain(ctx context.Context, in *ExplainRequest, opts ...grpc.CallOption) (*ExplainResponse, error) { out := new(ExplainResponse) err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.PredictionService/Explain", in, out, opts...) @@ -869,6 +1132,9 @@ type PredictionServiceServer interface { // [DeployedModel][google.cloud.aiplatform.v1.DeployedModel] that served this // prediction. RawPredict(context.Context, *RawPredictRequest) (*httpbody.HttpBody, error) + // Perform a server-side streaming online prediction request for Vertex + // LLM streaming. + ServerStreamingPredict(*StreamingPredictRequest, PredictionService_ServerStreamingPredictServer) error // Perform an online explanation. // // If @@ -893,6 +1159,9 @@ func (*UnimplementedPredictionServiceServer) Predict(context.Context, *PredictRe func (*UnimplementedPredictionServiceServer) RawPredict(context.Context, *RawPredictRequest) (*httpbody.HttpBody, error) { return nil, status.Errorf(codes.Unimplemented, "method RawPredict not implemented") } +func (*UnimplementedPredictionServiceServer) ServerStreamingPredict(*StreamingPredictRequest, PredictionService_ServerStreamingPredictServer) error { + return status.Errorf(codes.Unimplemented, "method ServerStreamingPredict not implemented") +} func (*UnimplementedPredictionServiceServer) Explain(context.Context, *ExplainRequest) (*ExplainResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Explain not implemented") } @@ -937,6 +1206,27 @@ func _PredictionService_RawPredict_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _PredictionService_ServerStreamingPredict_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamingPredictRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(PredictionServiceServer).ServerStreamingPredict(m, &predictionServiceServerStreamingPredictServer{stream}) +} + +type PredictionService_ServerStreamingPredictServer interface { + Send(*StreamingPredictResponse) error + grpc.ServerStream +} + +type predictionServiceServerStreamingPredictServer struct { + grpc.ServerStream +} + +func (x *predictionServiceServerStreamingPredictServer) Send(m *StreamingPredictResponse) error { + return x.ServerStream.SendMsg(m) +} + func _PredictionService_Explain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ExplainRequest) if err := dec(in); err != nil { @@ -972,6 +1262,12 @@ var _PredictionService_serviceDesc = grpc.ServiceDesc{ Handler: _PredictionService_Explain_Handler, }, }, - Streams: []grpc.StreamDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "ServerStreamingPredict", + Handler: _PredictionService_ServerStreamingPredict_Handler, + ServerStreams: true, + }, + }, Metadata: "google/cloud/aiplatform/v1/prediction_service.proto", } diff --git a/aiplatform/apiv1/aiplatformpb/types.pb.go b/aiplatform/apiv1/aiplatformpb/types.pb.go index 4a7cf5d9dd1..a1bdb7c00c1 100755 --- a/aiplatform/apiv1/aiplatformpb/types.pb.go +++ b/aiplatform/apiv1/aiplatformpb/types.pb.go @@ -35,6 +35,90 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Data type of the tensor. +type Tensor_DataType int32 + +const ( + // Not a legal value for DataType. Used to indicate a DataType field has not + // been set. + Tensor_DATA_TYPE_UNSPECIFIED Tensor_DataType = 0 + // Data types that all computation devices are expected to be + // capable to support. + Tensor_BOOL Tensor_DataType = 1 + Tensor_STRING Tensor_DataType = 2 + Tensor_FLOAT Tensor_DataType = 3 + Tensor_DOUBLE Tensor_DataType = 4 + Tensor_INT8 Tensor_DataType = 5 + Tensor_INT16 Tensor_DataType = 6 + Tensor_INT32 Tensor_DataType = 7 + Tensor_INT64 Tensor_DataType = 8 + Tensor_UINT8 Tensor_DataType = 9 + Tensor_UINT16 Tensor_DataType = 10 + Tensor_UINT32 Tensor_DataType = 11 + Tensor_UINT64 Tensor_DataType = 12 +) + +// Enum value maps for Tensor_DataType. +var ( + Tensor_DataType_name = map[int32]string{ + 0: "DATA_TYPE_UNSPECIFIED", + 1: "BOOL", + 2: "STRING", + 3: "FLOAT", + 4: "DOUBLE", + 5: "INT8", + 6: "INT16", + 7: "INT32", + 8: "INT64", + 9: "UINT8", + 10: "UINT16", + 11: "UINT32", + 12: "UINT64", + } + Tensor_DataType_value = map[string]int32{ + "DATA_TYPE_UNSPECIFIED": 0, + "BOOL": 1, + "STRING": 2, + "FLOAT": 3, + "DOUBLE": 4, + "INT8": 5, + "INT16": 6, + "INT32": 7, + "INT64": 8, + "UINT8": 9, + "UINT16": 10, + "UINT32": 11, + "UINT64": 12, + } +) + +func (x Tensor_DataType) Enum() *Tensor_DataType { + p := new(Tensor_DataType) + *p = x + return p +} + +func (x Tensor_DataType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Tensor_DataType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1_types_proto_enumTypes[0].Descriptor() +} + +func (Tensor_DataType) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1_types_proto_enumTypes[0] +} + +func (x Tensor_DataType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Tensor_DataType.Descriptor instead. +func (Tensor_DataType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_types_proto_rawDescGZIP(), []int{4, 0} +} + // A list of boolean values. type BoolArray struct { state protoimpl.MessageState @@ -231,6 +315,181 @@ func (x *StringArray) GetValues() []string { return nil } +// A tensor value type. +type Tensor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The data type of tensor. + Dtype Tensor_DataType `protobuf:"varint,1,opt,name=dtype,proto3,enum=google.cloud.aiplatform.v1.Tensor_DataType" json:"dtype,omitempty"` + // Shape of the tensor. + Shape []int64 `protobuf:"varint,2,rep,packed,name=shape,proto3" json:"shape,omitempty"` + // Type specific representations that make it easy to create tensor protos in + // all languages. Only the representation corresponding to "dtype" can + // be set. The values hold the flattened representation of the tensor in + // row major order. + // + // [BOOL][google.aiplatform.master.Tensor.DataType.BOOL] + BoolVal []bool `protobuf:"varint,3,rep,packed,name=bool_val,json=boolVal,proto3" json:"bool_val,omitempty"` + // [STRING][google.aiplatform.master.Tensor.DataType.STRING] + StringVal []string `protobuf:"bytes,14,rep,name=string_val,json=stringVal,proto3" json:"string_val,omitempty"` + // [STRING][google.aiplatform.master.Tensor.DataType.STRING] + BytesVal [][]byte `protobuf:"bytes,15,rep,name=bytes_val,json=bytesVal,proto3" json:"bytes_val,omitempty"` + // [FLOAT][google.aiplatform.master.Tensor.DataType.FLOAT] + FloatVal []float32 `protobuf:"fixed32,5,rep,packed,name=float_val,json=floatVal,proto3" json:"float_val,omitempty"` + // [DOUBLE][google.aiplatform.master.Tensor.DataType.DOUBLE] + DoubleVal []float64 `protobuf:"fixed64,6,rep,packed,name=double_val,json=doubleVal,proto3" json:"double_val,omitempty"` + // [INT_8][google.aiplatform.master.Tensor.DataType.INT8] + // [INT_16][google.aiplatform.master.Tensor.DataType.INT16] + // [INT_32][google.aiplatform.master.Tensor.DataType.INT32] + IntVal []int32 `protobuf:"varint,7,rep,packed,name=int_val,json=intVal,proto3" json:"int_val,omitempty"` + // [INT64][google.aiplatform.master.Tensor.DataType.INT64] + Int64Val []int64 `protobuf:"varint,8,rep,packed,name=int64_val,json=int64Val,proto3" json:"int64_val,omitempty"` + // [UINT8][google.aiplatform.master.Tensor.DataType.UINT8] + // [UINT16][google.aiplatform.master.Tensor.DataType.UINT16] + // [UINT32][google.aiplatform.master.Tensor.DataType.UINT32] + UintVal []uint32 `protobuf:"varint,9,rep,packed,name=uint_val,json=uintVal,proto3" json:"uint_val,omitempty"` + // [UINT64][google.aiplatform.master.Tensor.DataType.UINT64] + Uint64Val []uint64 `protobuf:"varint,10,rep,packed,name=uint64_val,json=uint64Val,proto3" json:"uint64_val,omitempty"` + // A list of tensor values. + ListVal []*Tensor `protobuf:"bytes,11,rep,name=list_val,json=listVal,proto3" json:"list_val,omitempty"` + // A map of string to tensor. + StructVal map[string]*Tensor `protobuf:"bytes,12,rep,name=struct_val,json=structVal,proto3" json:"struct_val,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Serialized raw tensor content. + TensorVal []byte `protobuf:"bytes,13,opt,name=tensor_val,json=tensorVal,proto3" json:"tensor_val,omitempty"` +} + +func (x *Tensor) Reset() { + *x = Tensor{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_types_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Tensor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Tensor) ProtoMessage() {} + +func (x *Tensor) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_types_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 Tensor.ProtoReflect.Descriptor instead. +func (*Tensor) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_types_proto_rawDescGZIP(), []int{4} +} + +func (x *Tensor) GetDtype() Tensor_DataType { + if x != nil { + return x.Dtype + } + return Tensor_DATA_TYPE_UNSPECIFIED +} + +func (x *Tensor) GetShape() []int64 { + if x != nil { + return x.Shape + } + return nil +} + +func (x *Tensor) GetBoolVal() []bool { + if x != nil { + return x.BoolVal + } + return nil +} + +func (x *Tensor) GetStringVal() []string { + if x != nil { + return x.StringVal + } + return nil +} + +func (x *Tensor) GetBytesVal() [][]byte { + if x != nil { + return x.BytesVal + } + return nil +} + +func (x *Tensor) GetFloatVal() []float32 { + if x != nil { + return x.FloatVal + } + return nil +} + +func (x *Tensor) GetDoubleVal() []float64 { + if x != nil { + return x.DoubleVal + } + return nil +} + +func (x *Tensor) GetIntVal() []int32 { + if x != nil { + return x.IntVal + } + return nil +} + +func (x *Tensor) GetInt64Val() []int64 { + if x != nil { + return x.Int64Val + } + return nil +} + +func (x *Tensor) GetUintVal() []uint32 { + if x != nil { + return x.UintVal + } + return nil +} + +func (x *Tensor) GetUint64Val() []uint64 { + if x != nil { + return x.Uint64Val + } + return nil +} + +func (x *Tensor) GetListVal() []*Tensor { + if x != nil { + return x.ListVal + } + return nil +} + +func (x *Tensor) GetStructVal() map[string]*Tensor { + if x != nil { + return x.StructVal + } + return nil +} + +func (x *Tensor) GetTensorVal() []byte { + if x != nil { + return x.TensorVal + } + return nil +} + var File_google_cloud_aiplatform_v1_types_proto protoreflect.FileDescriptor var file_google_cloud_aiplatform_v1_types_proto_rawDesc = []byte{ @@ -247,20 +506,71 @@ var file_google_cloud_aiplatform_v1_types_proto_rawDesc = []byte{ 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x25, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0xc8, 0x01, - 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, - 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, - 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xa5, 0x06, + 0x0a, 0x06, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x64, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x68, 0x61, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x08, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x52, 0x08, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, + 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x56, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, + 0x09, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, + 0x52, 0x08, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x69, + 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x69, + 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x12, 0x3d, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x07, 0x6c, 0x69, 0x73, 0x74, + 0x56, 0x61, 0x6c, 0x12, 0x50, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x56, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x5f, + 0x76, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x6e, 0x73, 0x6f, + 0x72, 0x56, 0x61, 0x6c, 0x1a, 0x60, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, + 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x03, 0x12, + 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x49, + 0x4e, 0x54, 0x38, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x06, + 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x49, + 0x4e, 0x54, 0x36, 0x34, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x49, 0x4e, 0x54, 0x38, 0x10, + 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x0a, 0x12, 0x0a, 0x0a, + 0x06, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x49, 0x4e, + 0x54, 0x36, 0x34, 0x10, 0x0c, 0x42, 0xc8, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, + 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -275,19 +585,27 @@ func file_google_cloud_aiplatform_v1_types_proto_rawDescGZIP() []byte { return file_google_cloud_aiplatform_v1_types_proto_rawDescData } -var file_google_cloud_aiplatform_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_cloud_aiplatform_v1_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_aiplatform_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_google_cloud_aiplatform_v1_types_proto_goTypes = []interface{}{ - (*BoolArray)(nil), // 0: google.cloud.aiplatform.v1.BoolArray - (*DoubleArray)(nil), // 1: google.cloud.aiplatform.v1.DoubleArray - (*Int64Array)(nil), // 2: google.cloud.aiplatform.v1.Int64Array - (*StringArray)(nil), // 3: google.cloud.aiplatform.v1.StringArray + (Tensor_DataType)(0), // 0: google.cloud.aiplatform.v1.Tensor.DataType + (*BoolArray)(nil), // 1: google.cloud.aiplatform.v1.BoolArray + (*DoubleArray)(nil), // 2: google.cloud.aiplatform.v1.DoubleArray + (*Int64Array)(nil), // 3: google.cloud.aiplatform.v1.Int64Array + (*StringArray)(nil), // 4: google.cloud.aiplatform.v1.StringArray + (*Tensor)(nil), // 5: google.cloud.aiplatform.v1.Tensor + nil, // 6: google.cloud.aiplatform.v1.Tensor.StructValEntry } var file_google_cloud_aiplatform_v1_types_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 0, // 0: google.cloud.aiplatform.v1.Tensor.dtype:type_name -> google.cloud.aiplatform.v1.Tensor.DataType + 5, // 1: google.cloud.aiplatform.v1.Tensor.list_val:type_name -> google.cloud.aiplatform.v1.Tensor + 6, // 2: google.cloud.aiplatform.v1.Tensor.struct_val:type_name -> google.cloud.aiplatform.v1.Tensor.StructValEntry + 5, // 3: google.cloud.aiplatform.v1.Tensor.StructValEntry.value:type_name -> google.cloud.aiplatform.v1.Tensor + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1_types_proto_init() } @@ -344,19 +662,32 @@ func file_google_cloud_aiplatform_v1_types_proto_init() { return nil } } + file_google_cloud_aiplatform_v1_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Tensor); 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_google_cloud_aiplatform_v1_types_proto_rawDesc, - NumEnums: 0, - NumMessages: 4, + NumEnums: 1, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_cloud_aiplatform_v1_types_proto_goTypes, DependencyIndexes: file_google_cloud_aiplatform_v1_types_proto_depIdxs, + EnumInfos: file_google_cloud_aiplatform_v1_types_proto_enumTypes, MessageInfos: file_google_cloud_aiplatform_v1_types_proto_msgTypes, }.Build() File_google_cloud_aiplatform_v1_types_proto = out.File diff --git a/aiplatform/apiv1/gapic_metadata.json b/aiplatform/apiv1/gapic_metadata.json index 7164b8a1285..f0b66726dd9 100644 --- a/aiplatform/apiv1/gapic_metadata.json +++ b/aiplatform/apiv1/gapic_metadata.json @@ -1627,6 +1627,11 @@ "RawPredict" ] }, + "ServerStreamingPredict": { + "methods": [ + "ServerStreamingPredict" + ] + }, "SetIamPolicy": { "methods": [ "SetIamPolicy" diff --git a/aiplatform/apiv1/prediction_client.go b/aiplatform/apiv1/prediction_client.go index ad06aa1aa9a..2dec6204195 100755 --- a/aiplatform/apiv1/prediction_client.go +++ b/aiplatform/apiv1/prediction_client.go @@ -41,19 +41,20 @@ var newPredictionClientHook clientHook // PredictionCallOptions contains the retry settings for each method of PredictionClient. type PredictionCallOptions struct { - Predict []gax.CallOption - RawPredict []gax.CallOption - Explain []gax.CallOption - GetLocation []gax.CallOption - ListLocations []gax.CallOption - GetIamPolicy []gax.CallOption - SetIamPolicy []gax.CallOption - TestIamPermissions []gax.CallOption - CancelOperation []gax.CallOption - DeleteOperation []gax.CallOption - GetOperation []gax.CallOption - ListOperations []gax.CallOption - WaitOperation []gax.CallOption + Predict []gax.CallOption + RawPredict []gax.CallOption + ServerStreamingPredict []gax.CallOption + Explain []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption } func defaultPredictionGRPCClientOptions() []option.ClientOption { @@ -70,19 +71,20 @@ func defaultPredictionGRPCClientOptions() []option.ClientOption { func defaultPredictionCallOptions() *PredictionCallOptions { return &PredictionCallOptions{ - Predict: []gax.CallOption{}, - RawPredict: []gax.CallOption{}, - Explain: []gax.CallOption{}, - GetLocation: []gax.CallOption{}, - ListLocations: []gax.CallOption{}, - GetIamPolicy: []gax.CallOption{}, - SetIamPolicy: []gax.CallOption{}, - TestIamPermissions: []gax.CallOption{}, - CancelOperation: []gax.CallOption{}, - DeleteOperation: []gax.CallOption{}, - GetOperation: []gax.CallOption{}, - ListOperations: []gax.CallOption{}, - WaitOperation: []gax.CallOption{}, + Predict: []gax.CallOption{}, + RawPredict: []gax.CallOption{}, + ServerStreamingPredict: []gax.CallOption{}, + Explain: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, } } @@ -93,6 +95,7 @@ type internalPredictionClient interface { Connection() *grpc.ClientConn Predict(context.Context, *aiplatformpb.PredictRequest, ...gax.CallOption) (*aiplatformpb.PredictResponse, error) RawPredict(context.Context, *aiplatformpb.RawPredictRequest, ...gax.CallOption) (*httpbodypb.HttpBody, error) + ServerStreamingPredict(context.Context, *aiplatformpb.StreamingPredictRequest, ...gax.CallOption) (aiplatformpb.PredictionService_ServerStreamingPredictClient, error) Explain(context.Context, *aiplatformpb.ExplainRequest, ...gax.CallOption) (*aiplatformpb.ExplainResponse, error) GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator @@ -161,6 +164,12 @@ func (c *PredictionClient) RawPredict(ctx context.Context, req *aiplatformpb.Raw return c.internalClient.RawPredict(ctx, req, opts...) } +// ServerStreamingPredict perform a server-side streaming online prediction request for Vertex +// LLM streaming. +func (c *PredictionClient) ServerStreamingPredict(ctx context.Context, req *aiplatformpb.StreamingPredictRequest, opts ...gax.CallOption) (aiplatformpb.PredictionService_ServerStreamingPredictClient, error) { + return c.internalClient.ServerStreamingPredict(ctx, req, opts...) +} + // Explain perform an online explanation. // // If @@ -352,6 +361,23 @@ func (c *predictionGRPCClient) RawPredict(ctx context.Context, req *aiplatformpb return resp, nil } +func (c *predictionGRPCClient) ServerStreamingPredict(ctx context.Context, req *aiplatformpb.StreamingPredictRequest, opts ...gax.CallOption) (aiplatformpb.PredictionService_ServerStreamingPredictClient, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ServerStreamingPredict[0:len((*c.CallOptions).ServerStreamingPredict):len((*c.CallOptions).ServerStreamingPredict)], opts...) + var resp aiplatformpb.PredictionService_ServerStreamingPredictClient + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.predictionClient.ServerStreamingPredict(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + func (c *predictionGRPCClient) Explain(ctx context.Context, req *aiplatformpb.ExplainRequest, opts ...gax.CallOption) (*aiplatformpb.ExplainResponse, error) { md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))) diff --git a/aiplatform/apiv1beta1/aiplatformpb/persistent_resource.pb.go b/aiplatform/apiv1beta1/aiplatformpb/persistent_resource.pb.go index 19fcf8c4b9a..29e8d6e1dbc 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/persistent_resource.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/persistent_resource.pb.go @@ -111,7 +111,7 @@ type PersistentResource struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Output only. Resource name of a PersistentResource. + // Immutable. Resource name of a PersistentResource. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Optional. The display name of the PersistentResource. // The name can be up to 128 characters long and can consist of any UTF-8 @@ -163,6 +163,8 @@ type PersistentResource struct { // Optional. Persistent Resource runtime spec. // Used for e.g. Ray cluster configuration. ResourceRuntimeSpec *ResourceRuntimeSpec `protobuf:"bytes,13,opt,name=resource_runtime_spec,json=resourceRuntimeSpec,proto3" json:"resource_runtime_spec,omitempty"` + // Output only. Runtime information of the Persistent Resource. + ResourceRuntime *ResourceRuntime `protobuf:"bytes,14,opt,name=resource_runtime,json=resourceRuntime,proto3" json:"resource_runtime,omitempty"` // Optional. A list of names for the reserved ip ranges under the VPC network // that can be used for this persistent resource. // @@ -290,6 +292,13 @@ func (x *PersistentResource) GetResourceRuntimeSpec() *ResourceRuntimeSpec { return nil } +func (x *PersistentResource) GetResourceRuntime() *ResourceRuntime { + if x != nil { + return x.ResourceRuntime + } + return nil +} + func (x *PersistentResource) GetReservedIpRanges() []string { if x != nil { return x.ReservedIpRanges @@ -419,6 +428,9 @@ type ResourceRuntimeSpec struct { // Optional. Configure the use of workload identity on the PersistentResource ServiceAccountSpec *ServiceAccountSpec `protobuf:"bytes,2,opt,name=service_account_spec,json=serviceAccountSpec,proto3" json:"service_account_spec,omitempty"` + // Ray cluster configuration. + // Required when creating a dedicated RayCluster on the PersistentResource. + RaySpec *RaySpec `protobuf:"bytes,1,opt,name=ray_spec,json=raySpec,proto3" json:"ray_spec,omitempty"` } func (x *ResourceRuntimeSpec) Reset() { @@ -460,6 +472,124 @@ func (x *ResourceRuntimeSpec) GetServiceAccountSpec() *ServiceAccountSpec { return nil } +func (x *ResourceRuntimeSpec) GetRaySpec() *RaySpec { + if x != nil { + return x.RaySpec + } + return nil +} + +// Configuration information for the Ray cluster. +// For experimental launch, Ray cluster creation and Persistent +// cluster creation are 1:1 mapping: We will provision all the nodes within the +// Persistent cluster as Ray nodes. +type RaySpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Default image for user to choose a preferred ML framework(e.g. + // tensorflow or Pytorch) by choosing from Vertex prebuild + // images(https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). + // Either this or the resource_pool_images is required. Use this field if + // you need all the resource pools to have the same Ray image, Otherwise, use + // the {@code resource_pool_images} field. + ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"` +} + +func (x *RaySpec) Reset() { + *x = RaySpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RaySpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RaySpec) ProtoMessage() {} + +func (x *RaySpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_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 RaySpec.ProtoReflect.Descriptor instead. +func (*RaySpec) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDescGZIP(), []int{3} +} + +func (x *RaySpec) GetImageUri() string { + if x != nil { + return x.ImageUri + } + return "" +} + +// Persistent Cluster runtime information as output +type ResourceRuntime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. URIs for user to connect to the Cluster. + // Example: + // { + // "RAY_HEAD_NODE_INTERNAL_IP": "head-node-IP:10001" + // "RAY_DASHBOARD_URI": "ray-dashboard-address:8888" + // } + AccessUris map[string]string `protobuf:"bytes,1,rep,name=access_uris,json=accessUris,proto3" json:"access_uris,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ResourceRuntime) Reset() { + *x = ResourceRuntime{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResourceRuntime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceRuntime) ProtoMessage() {} + +func (x *ResourceRuntime) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_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 ResourceRuntime.ProtoReflect.Descriptor instead. +func (*ResourceRuntime) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDescGZIP(), []int{4} +} + +func (x *ResourceRuntime) GetAccessUris() map[string]string { + if x != nil { + return x.AccessUris + } + return nil +} + // Configuration for the use of custom service account to run the workloads. type ServiceAccountSpec struct { state protoimpl.MessageState @@ -489,7 +619,7 @@ type ServiceAccountSpec struct { func (x *ServiceAccountSpec) Reset() { *x = ServiceAccountSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -502,7 +632,7 @@ func (x *ServiceAccountSpec) String() string { func (*ServiceAccountSpec) ProtoMessage() {} func (x *ServiceAccountSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -515,7 +645,7 @@ func (x *ServiceAccountSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceAccountSpec.ProtoReflect.Descriptor instead. func (*ServiceAccountSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDescGZIP(), []int{3} + return file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDescGZIP(), []int{5} } func (x *ServiceAccountSpec) GetEnableCustomServiceAccount() bool { @@ -549,7 +679,7 @@ type ResourcePool_AutoscalingSpec struct { func (x *ResourcePool_AutoscalingSpec) Reset() { *x = ResourcePool_AutoscalingSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -562,7 +692,7 @@ func (x *ResourcePool_AutoscalingSpec) String() string { func (*ResourcePool_AutoscalingSpec) ProtoMessage() {} func (x *ResourcePool_AutoscalingSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -615,9 +745,9 @@ var file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDesc = []b 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xb5, 0x09, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x6f, 0x22, 0x97, 0x0a, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x0e, 0x72, 0x65, @@ -669,102 +799,127 @@ var file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDesc = []b 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x12, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x1a, - 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x56, 0x0a, 0x05, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, - 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, - 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x05, 0x3a, 0x85, 0x01, 0xea, 0x41, 0x81, 0x01, 0x0a, 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x7d, 0x22, 0x8d, 0x05, 0x0a, 0x0c, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x13, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x60, 0x0a, 0x10, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2d, 0x0a, 0x0d, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x69, - 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, - 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x33, 0x0a, 0x12, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x42, 0x05, 0xe0, 0x41, 0x03, 0x18, 0x01, 0x52, 0x10, 0x69, 0x64, 0x6c, 0x65, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x75, 0x73, - 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x75, 0x73, 0x65, - 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6d, 0x0a, - 0x10, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, - 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x61, 0x75, 0x74, - 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x1a, 0xa9, 0x01, 0x0a, - 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x34, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x31, + 0x0a, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x56, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x53, + 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x10, 0x05, 0x3a, 0x85, 0x01, 0xea, 0x41, 0x81, 0x01, 0x0a, 0x2c, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x7d, 0x22, 0x8d, 0x05, 0x0a, + 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x13, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2d, 0x0a, 0x0d, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x69, + 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x64, + 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x33, 0x0a, 0x12, 0x69, 0x64, 0x6c, 0x65, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x42, 0x05, 0xe0, 0x41, 0x03, 0x18, 0x01, 0x52, 0x10, 0x69, 0x64, 0x6c, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x12, + 0x75, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x75, + 0x73, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x6d, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, + 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x61, + 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x1a, 0xa9, + 0x01, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x34, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcb, 0x01, 0x0a, + 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x48, 0x0a, 0x08, 0x72, 0x61, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x79, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x07, 0x72, 0x61, 0x79, 0x53, 0x70, 0x65, 0x63, 0x22, 0x2b, 0x0a, 0x07, 0x52, 0x61, + 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, + 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x22, 0xb8, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x22, 0x8a, - 0x01, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x46, 0x0a, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, - 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xee, 0x01, 0x0a, 0x23, - 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x42, 0x17, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, - 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, + 0x72, 0x69, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, + 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, 0x8a, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x46, 0x0a, 0x1d, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0xee, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x17, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -780,40 +935,46 @@ func file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDescGZIP( } var file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_goTypes = []interface{}{ (PersistentResource_State)(0), // 0: google.cloud.aiplatform.v1beta1.PersistentResource.State (*PersistentResource)(nil), // 1: google.cloud.aiplatform.v1beta1.PersistentResource (*ResourcePool)(nil), // 2: google.cloud.aiplatform.v1beta1.ResourcePool (*ResourceRuntimeSpec)(nil), // 3: google.cloud.aiplatform.v1beta1.ResourceRuntimeSpec - (*ServiceAccountSpec)(nil), // 4: google.cloud.aiplatform.v1beta1.ServiceAccountSpec - nil, // 5: google.cloud.aiplatform.v1beta1.PersistentResource.LabelsEntry - (*ResourcePool_AutoscalingSpec)(nil), // 6: google.cloud.aiplatform.v1beta1.ResourcePool.AutoscalingSpec - (*status.Status)(nil), // 7: google.rpc.Status - (*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp - (*EncryptionSpec)(nil), // 9: google.cloud.aiplatform.v1beta1.EncryptionSpec - (*MachineSpec)(nil), // 10: google.cloud.aiplatform.v1beta1.MachineSpec - (*DiskSpec)(nil), // 11: google.cloud.aiplatform.v1beta1.DiskSpec + (*RaySpec)(nil), // 4: google.cloud.aiplatform.v1beta1.RaySpec + (*ResourceRuntime)(nil), // 5: google.cloud.aiplatform.v1beta1.ResourceRuntime + (*ServiceAccountSpec)(nil), // 6: google.cloud.aiplatform.v1beta1.ServiceAccountSpec + nil, // 7: google.cloud.aiplatform.v1beta1.PersistentResource.LabelsEntry + (*ResourcePool_AutoscalingSpec)(nil), // 8: google.cloud.aiplatform.v1beta1.ResourcePool.AutoscalingSpec + nil, // 9: google.cloud.aiplatform.v1beta1.ResourceRuntime.AccessUrisEntry + (*status.Status)(nil), // 10: google.rpc.Status + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (*EncryptionSpec)(nil), // 12: google.cloud.aiplatform.v1beta1.EncryptionSpec + (*MachineSpec)(nil), // 13: google.cloud.aiplatform.v1beta1.MachineSpec + (*DiskSpec)(nil), // 14: google.cloud.aiplatform.v1beta1.DiskSpec } var file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_depIdxs = []int32{ 2, // 0: google.cloud.aiplatform.v1beta1.PersistentResource.resource_pools:type_name -> google.cloud.aiplatform.v1beta1.ResourcePool 0, // 1: google.cloud.aiplatform.v1beta1.PersistentResource.state:type_name -> google.cloud.aiplatform.v1beta1.PersistentResource.State - 7, // 2: google.cloud.aiplatform.v1beta1.PersistentResource.error:type_name -> google.rpc.Status - 8, // 3: google.cloud.aiplatform.v1beta1.PersistentResource.create_time:type_name -> google.protobuf.Timestamp - 8, // 4: google.cloud.aiplatform.v1beta1.PersistentResource.start_time:type_name -> google.protobuf.Timestamp - 8, // 5: google.cloud.aiplatform.v1beta1.PersistentResource.update_time:type_name -> google.protobuf.Timestamp - 5, // 6: google.cloud.aiplatform.v1beta1.PersistentResource.labels:type_name -> google.cloud.aiplatform.v1beta1.PersistentResource.LabelsEntry - 9, // 7: google.cloud.aiplatform.v1beta1.PersistentResource.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec + 10, // 2: google.cloud.aiplatform.v1beta1.PersistentResource.error:type_name -> google.rpc.Status + 11, // 3: google.cloud.aiplatform.v1beta1.PersistentResource.create_time:type_name -> google.protobuf.Timestamp + 11, // 4: google.cloud.aiplatform.v1beta1.PersistentResource.start_time:type_name -> google.protobuf.Timestamp + 11, // 5: google.cloud.aiplatform.v1beta1.PersistentResource.update_time:type_name -> google.protobuf.Timestamp + 7, // 6: google.cloud.aiplatform.v1beta1.PersistentResource.labels:type_name -> google.cloud.aiplatform.v1beta1.PersistentResource.LabelsEntry + 12, // 7: google.cloud.aiplatform.v1beta1.PersistentResource.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec 3, // 8: google.cloud.aiplatform.v1beta1.PersistentResource.resource_runtime_spec:type_name -> google.cloud.aiplatform.v1beta1.ResourceRuntimeSpec - 10, // 9: google.cloud.aiplatform.v1beta1.ResourcePool.machine_spec:type_name -> google.cloud.aiplatform.v1beta1.MachineSpec - 11, // 10: google.cloud.aiplatform.v1beta1.ResourcePool.disk_spec:type_name -> google.cloud.aiplatform.v1beta1.DiskSpec - 6, // 11: google.cloud.aiplatform.v1beta1.ResourcePool.autoscaling_spec:type_name -> google.cloud.aiplatform.v1beta1.ResourcePool.AutoscalingSpec - 4, // 12: google.cloud.aiplatform.v1beta1.ResourceRuntimeSpec.service_account_spec:type_name -> google.cloud.aiplatform.v1beta1.ServiceAccountSpec - 13, // [13:13] is the sub-list for method output_type - 13, // [13:13] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 5, // 9: google.cloud.aiplatform.v1beta1.PersistentResource.resource_runtime:type_name -> google.cloud.aiplatform.v1beta1.ResourceRuntime + 13, // 10: google.cloud.aiplatform.v1beta1.ResourcePool.machine_spec:type_name -> google.cloud.aiplatform.v1beta1.MachineSpec + 14, // 11: google.cloud.aiplatform.v1beta1.ResourcePool.disk_spec:type_name -> google.cloud.aiplatform.v1beta1.DiskSpec + 8, // 12: google.cloud.aiplatform.v1beta1.ResourcePool.autoscaling_spec:type_name -> google.cloud.aiplatform.v1beta1.ResourcePool.AutoscalingSpec + 6, // 13: google.cloud.aiplatform.v1beta1.ResourceRuntimeSpec.service_account_spec:type_name -> google.cloud.aiplatform.v1beta1.ServiceAccountSpec + 4, // 14: google.cloud.aiplatform.v1beta1.ResourceRuntimeSpec.ray_spec:type_name -> google.cloud.aiplatform.v1beta1.RaySpec + 9, // 15: google.cloud.aiplatform.v1beta1.ResourceRuntime.access_uris:type_name -> google.cloud.aiplatform.v1beta1.ResourceRuntime.AccessUrisEntry + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_init() } @@ -861,7 +1022,19 @@ func file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_init() { } } file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServiceAccountSpec); i { + switch v := v.(*RaySpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceRuntime); i { case 0: return &v.state case 1: @@ -873,6 +1046,18 @@ func file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_init() { } } file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceAccountSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResourcePool_AutoscalingSpec); i { case 0: return &v.state @@ -886,14 +1071,14 @@ func file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_init() { } } file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[1].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_msgTypes[7].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_persistent_resource_proto_rawDesc, NumEnums: 1, - NumMessages: 6, + NumMessages: 9, NumExtensions: 0, NumServices: 0, }, diff --git a/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go b/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go index ad1e34fdfb7..c62423e7228 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go @@ -151,6 +151,9 @@ type PredictResponse struct { // name][google.cloud.aiplatform.v1beta1.Model.display_name] of the Model // which is deployed as the DeployedModel that this prediction hits. ModelDisplayName string `protobuf:"bytes,4,opt,name=model_display_name,json=modelDisplayName,proto3" json:"model_display_name,omitempty"` + // Output only. Request-level metadata returned by the model. The metadata + // type will be dependent upon the model implementation. + Metadata *structpb.Value `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` } func (x *PredictResponse) Reset() { @@ -220,6 +223,13 @@ func (x *PredictResponse) GetModelDisplayName() string { return "" } +func (x *PredictResponse) GetMetadata() *structpb.Value { + if x != nil { + return x.Metadata + } + return nil +} + // Request message for // [PredictionService.RawPredict][google.cloud.aiplatform.v1beta1.PredictionService.RawPredict]. type RawPredictRequest struct { @@ -295,6 +305,140 @@ func (x *RawPredictRequest) GetHttpBody() *httpbody.HttpBody { return nil } +// Request message for +// [PredictionService.StreamingPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamingPredict]. +// +// The first message must contain +// [endpoint][google.cloud.aiplatform.v1beta1.StreamingPredictRequest.endpoint] +// field and optionally [input][]. The subsequent messages must contain +// [input][]. +type StreamingPredictRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the Endpoint requested to serve the prediction. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // The prediction input. + Inputs []*Tensor `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty"` + // The parameters that govern the prediction. + Parameters *Tensor `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (x *StreamingPredictRequest) Reset() { + *x = StreamingPredictRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingPredictRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingPredictRequest) ProtoMessage() {} + +func (x *StreamingPredictRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_prediction_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 StreamingPredictRequest.ProtoReflect.Descriptor instead. +func (*StreamingPredictRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{3} +} + +func (x *StreamingPredictRequest) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *StreamingPredictRequest) GetInputs() []*Tensor { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *StreamingPredictRequest) GetParameters() *Tensor { + if x != nil { + return x.Parameters + } + return nil +} + +// Response message for +// [PredictionService.StreamingPredict][google.cloud.aiplatform.v1beta1.PredictionService.StreamingPredict]. +type StreamingPredictResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The prediction output. + Outputs []*Tensor `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` + // The parameters that govern the prediction. + Parameters *Tensor `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"` +} + +func (x *StreamingPredictResponse) Reset() { + *x = StreamingPredictResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamingPredictResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamingPredictResponse) ProtoMessage() {} + +func (x *StreamingPredictResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_prediction_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 StreamingPredictResponse.ProtoReflect.Descriptor instead. +func (*StreamingPredictResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{4} +} + +func (x *StreamingPredictResponse) GetOutputs() []*Tensor { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *StreamingPredictResponse) GetParameters() *Tensor { + if x != nil { + return x.Parameters + } + return nil +} + // Request message for // [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain]. type ExplainRequest struct { @@ -341,7 +485,7 @@ type ExplainRequest struct { func (x *ExplainRequest) Reset() { *x = ExplainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -354,7 +498,7 @@ func (x *ExplainRequest) String() string { func (*ExplainRequest) ProtoMessage() {} func (x *ExplainRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -367,7 +511,7 @@ func (x *ExplainRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExplainRequest.ProtoReflect.Descriptor instead. func (*ExplainRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{3} + return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{5} } func (x *ExplainRequest) GetEndpoint() string { @@ -430,7 +574,7 @@ type ExplainResponse struct { func (x *ExplainResponse) Reset() { *x = ExplainResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -443,7 +587,7 @@ func (x *ExplainResponse) String() string { func (*ExplainResponse) ProtoMessage() {} func (x *ExplainResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -456,7 +600,7 @@ func (x *ExplainResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ExplainResponse.ProtoReflect.Descriptor instead. func (*ExplainResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{4} + return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP(), []int{6} } func (x *ExplainResponse) GetExplanations() []*Explanation { @@ -500,157 +644,209 @@ var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDesc = []by 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x22, 0xcb, 0x01, 0x0a, 0x0e, 0x50, - 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x98, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, - 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0x22, 0xcb, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, + 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x27, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x12, 0x2d, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x31, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, - 0x42, 0x6f, 0x64, 0x79, 0x22, 0xed, 0x02, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, - 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, - 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x74, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, - 0x17, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, - 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x49, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, - 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x3d, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, + 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x2d, + 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x31, 0x0a, + 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x52, 0x61, + 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, + 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, + 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xeb, 0x01, 0x0a, 0x17, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, + 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3f, + 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, - 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, - 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, + 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, + 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, + 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, + 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x22, 0xed, 0x02, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x32, 0x89, 0x07, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa8, 0x02, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, - 0x63, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x74, 0x0a, 0x19, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb9, 0x01, 0xda, 0x41, 0x1d, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x92, 0x01, 0x3a, - 0x01, 0x2a, 0x5a, 0x4d, 0x3a, 0x01, 0x2a, 0x22, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, - 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x12, 0x8d, 0x02, 0x0a, 0x0a, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, - 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x17, 0x65, 0x78, + 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x4f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, + 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, + 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, + 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6c, 0x61, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0xd5, 0x09, + 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xa8, 0x02, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, + 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xb4, 0x01, 0xda, 0x41, 0x12, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, - 0x64, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x98, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x50, 0x3a, 0x01, - 0x2a, 0x22, 0x4b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, - 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x41, + 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xb9, 0x01, 0xda, 0x41, 0x1d, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x92, 0x01, 0x3a, 0x01, 0x2a, 0x5a, + 0x4d, 0x3a, 0x01, 0x2a, 0x22, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x12, 0xe9, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x2f, 0x2e, + 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x8d, + 0x02, 0x0a, 0x0a, 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x7b, 0xda, 0x41, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x2c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x22, 0x3e, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x1a, 0x4d, 0xca, - 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xed, 0x01, 0x0a, - 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x42, 0x16, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, - 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, + 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xb4, 0x01, 0xda, 0x41, 0x12, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x98, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x50, 0x3a, 0x01, 0x2a, 0x22, 0x4b, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x72, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x41, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x61, 0x77, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0xc9, + 0x02, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x50, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb7, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xb0, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x5c, 0x3a, 0x01, 0x2a, + 0x22, 0x57, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, + 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x22, 0x4d, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, + 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x30, 0x01, 0x12, 0xe9, 0x01, 0x0a, 0x07, 0x45, + 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7b, 0xda, 0x41, 0x2f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x2c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2c, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x65, + 0x78, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, + 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xed, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x16, 0x50, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, + 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -665,39 +861,49 @@ func file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescGZIP() return file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDescData } -var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_goTypes = []interface{}{ - (*PredictRequest)(nil), // 0: google.cloud.aiplatform.v1beta1.PredictRequest - (*PredictResponse)(nil), // 1: google.cloud.aiplatform.v1beta1.PredictResponse - (*RawPredictRequest)(nil), // 2: google.cloud.aiplatform.v1beta1.RawPredictRequest - (*ExplainRequest)(nil), // 3: google.cloud.aiplatform.v1beta1.ExplainRequest - (*ExplainResponse)(nil), // 4: google.cloud.aiplatform.v1beta1.ExplainResponse - (*structpb.Value)(nil), // 5: google.protobuf.Value - (*httpbody.HttpBody)(nil), // 6: google.api.HttpBody - (*ExplanationSpecOverride)(nil), // 7: google.cloud.aiplatform.v1beta1.ExplanationSpecOverride - (*Explanation)(nil), // 8: google.cloud.aiplatform.v1beta1.Explanation + (*PredictRequest)(nil), // 0: google.cloud.aiplatform.v1beta1.PredictRequest + (*PredictResponse)(nil), // 1: google.cloud.aiplatform.v1beta1.PredictResponse + (*RawPredictRequest)(nil), // 2: google.cloud.aiplatform.v1beta1.RawPredictRequest + (*StreamingPredictRequest)(nil), // 3: google.cloud.aiplatform.v1beta1.StreamingPredictRequest + (*StreamingPredictResponse)(nil), // 4: google.cloud.aiplatform.v1beta1.StreamingPredictResponse + (*ExplainRequest)(nil), // 5: google.cloud.aiplatform.v1beta1.ExplainRequest + (*ExplainResponse)(nil), // 6: google.cloud.aiplatform.v1beta1.ExplainResponse + (*structpb.Value)(nil), // 7: google.protobuf.Value + (*httpbody.HttpBody)(nil), // 8: google.api.HttpBody + (*Tensor)(nil), // 9: google.cloud.aiplatform.v1beta1.Tensor + (*ExplanationSpecOverride)(nil), // 10: google.cloud.aiplatform.v1beta1.ExplanationSpecOverride + (*Explanation)(nil), // 11: google.cloud.aiplatform.v1beta1.Explanation } var file_google_cloud_aiplatform_v1beta1_prediction_service_proto_depIdxs = []int32{ - 5, // 0: google.cloud.aiplatform.v1beta1.PredictRequest.instances:type_name -> google.protobuf.Value - 5, // 1: google.cloud.aiplatform.v1beta1.PredictRequest.parameters:type_name -> google.protobuf.Value - 5, // 2: google.cloud.aiplatform.v1beta1.PredictResponse.predictions:type_name -> google.protobuf.Value - 6, // 3: google.cloud.aiplatform.v1beta1.RawPredictRequest.http_body:type_name -> google.api.HttpBody - 5, // 4: google.cloud.aiplatform.v1beta1.ExplainRequest.instances:type_name -> google.protobuf.Value - 5, // 5: google.cloud.aiplatform.v1beta1.ExplainRequest.parameters:type_name -> google.protobuf.Value - 7, // 6: google.cloud.aiplatform.v1beta1.ExplainRequest.explanation_spec_override:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpecOverride - 8, // 7: google.cloud.aiplatform.v1beta1.ExplainResponse.explanations:type_name -> google.cloud.aiplatform.v1beta1.Explanation - 5, // 8: google.cloud.aiplatform.v1beta1.ExplainResponse.predictions:type_name -> google.protobuf.Value - 0, // 9: google.cloud.aiplatform.v1beta1.PredictionService.Predict:input_type -> google.cloud.aiplatform.v1beta1.PredictRequest - 2, // 10: google.cloud.aiplatform.v1beta1.PredictionService.RawPredict:input_type -> google.cloud.aiplatform.v1beta1.RawPredictRequest - 3, // 11: google.cloud.aiplatform.v1beta1.PredictionService.Explain:input_type -> google.cloud.aiplatform.v1beta1.ExplainRequest - 1, // 12: google.cloud.aiplatform.v1beta1.PredictionService.Predict:output_type -> google.cloud.aiplatform.v1beta1.PredictResponse - 6, // 13: google.cloud.aiplatform.v1beta1.PredictionService.RawPredict:output_type -> google.api.HttpBody - 4, // 14: google.cloud.aiplatform.v1beta1.PredictionService.Explain:output_type -> google.cloud.aiplatform.v1beta1.ExplainResponse - 12, // [12:15] is the sub-list for method output_type - 9, // [9:12] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 7, // 0: google.cloud.aiplatform.v1beta1.PredictRequest.instances:type_name -> google.protobuf.Value + 7, // 1: google.cloud.aiplatform.v1beta1.PredictRequest.parameters:type_name -> google.protobuf.Value + 7, // 2: google.cloud.aiplatform.v1beta1.PredictResponse.predictions:type_name -> google.protobuf.Value + 7, // 3: google.cloud.aiplatform.v1beta1.PredictResponse.metadata:type_name -> google.protobuf.Value + 8, // 4: google.cloud.aiplatform.v1beta1.RawPredictRequest.http_body:type_name -> google.api.HttpBody + 9, // 5: google.cloud.aiplatform.v1beta1.StreamingPredictRequest.inputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor + 9, // 6: google.cloud.aiplatform.v1beta1.StreamingPredictRequest.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor + 9, // 7: google.cloud.aiplatform.v1beta1.StreamingPredictResponse.outputs:type_name -> google.cloud.aiplatform.v1beta1.Tensor + 9, // 8: google.cloud.aiplatform.v1beta1.StreamingPredictResponse.parameters:type_name -> google.cloud.aiplatform.v1beta1.Tensor + 7, // 9: google.cloud.aiplatform.v1beta1.ExplainRequest.instances:type_name -> google.protobuf.Value + 7, // 10: google.cloud.aiplatform.v1beta1.ExplainRequest.parameters:type_name -> google.protobuf.Value + 10, // 11: google.cloud.aiplatform.v1beta1.ExplainRequest.explanation_spec_override:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpecOverride + 11, // 12: google.cloud.aiplatform.v1beta1.ExplainResponse.explanations:type_name -> google.cloud.aiplatform.v1beta1.Explanation + 7, // 13: google.cloud.aiplatform.v1beta1.ExplainResponse.predictions:type_name -> google.protobuf.Value + 0, // 14: google.cloud.aiplatform.v1beta1.PredictionService.Predict:input_type -> google.cloud.aiplatform.v1beta1.PredictRequest + 2, // 15: google.cloud.aiplatform.v1beta1.PredictionService.RawPredict:input_type -> google.cloud.aiplatform.v1beta1.RawPredictRequest + 3, // 16: google.cloud.aiplatform.v1beta1.PredictionService.ServerStreamingPredict:input_type -> google.cloud.aiplatform.v1beta1.StreamingPredictRequest + 5, // 17: google.cloud.aiplatform.v1beta1.PredictionService.Explain:input_type -> google.cloud.aiplatform.v1beta1.ExplainRequest + 1, // 18: google.cloud.aiplatform.v1beta1.PredictionService.Predict:output_type -> google.cloud.aiplatform.v1beta1.PredictResponse + 8, // 19: google.cloud.aiplatform.v1beta1.PredictionService.RawPredict:output_type -> google.api.HttpBody + 4, // 20: google.cloud.aiplatform.v1beta1.PredictionService.ServerStreamingPredict:output_type -> google.cloud.aiplatform.v1beta1.StreamingPredictResponse + 6, // 21: google.cloud.aiplatform.v1beta1.PredictionService.Explain:output_type -> google.cloud.aiplatform.v1beta1.ExplainResponse + 18, // [18:22] is the sub-list for method output_type + 14, // [14:18] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_prediction_service_proto_init() } @@ -706,6 +912,7 @@ func file_google_cloud_aiplatform_v1beta1_prediction_service_proto_init() { return } file_google_cloud_aiplatform_v1beta1_explanation_proto_init() + file_google_cloud_aiplatform_v1beta1_types_proto_init() if !protoimpl.UnsafeEnabled { file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PredictRequest); i { @@ -744,7 +951,7 @@ func file_google_cloud_aiplatform_v1beta1_prediction_service_proto_init() { } } file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExplainRequest); i { + switch v := v.(*StreamingPredictRequest); i { case 0: return &v.state case 1: @@ -756,6 +963,30 @@ func file_google_cloud_aiplatform_v1beta1_prediction_service_proto_init() { } } file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamingPredictResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExplainRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_prediction_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExplainResponse); i { case 0: return &v.state @@ -774,7 +1005,7 @@ func file_google_cloud_aiplatform_v1beta1_prediction_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_prediction_service_proto_rawDesc, NumEnums: 0, - NumMessages: 5, + NumMessages: 7, NumExtensions: 0, NumServices: 1, }, @@ -814,6 +1045,9 @@ type PredictionServiceClient interface { // [DeployedModel][google.cloud.aiplatform.v1beta1.DeployedModel] that served // this prediction. RawPredict(ctx context.Context, in *RawPredictRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) + // Perform a server-side streaming online prediction request for Vertex + // LLM streaming. + ServerStreamingPredict(ctx context.Context, in *StreamingPredictRequest, opts ...grpc.CallOption) (PredictionService_ServerStreamingPredictClient, error) // Perform an online explanation. // // If @@ -854,6 +1088,38 @@ func (c *predictionServiceClient) RawPredict(ctx context.Context, in *RawPredict return out, nil } +func (c *predictionServiceClient) ServerStreamingPredict(ctx context.Context, in *StreamingPredictRequest, opts ...grpc.CallOption) (PredictionService_ServerStreamingPredictClient, error) { + stream, err := c.cc.NewStream(ctx, &_PredictionService_serviceDesc.Streams[0], "/google.cloud.aiplatform.v1beta1.PredictionService/ServerStreamingPredict", opts...) + if err != nil { + return nil, err + } + x := &predictionServiceServerStreamingPredictClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type PredictionService_ServerStreamingPredictClient interface { + Recv() (*StreamingPredictResponse, error) + grpc.ClientStream +} + +type predictionServiceServerStreamingPredictClient struct { + grpc.ClientStream +} + +func (x *predictionServiceServerStreamingPredictClient) Recv() (*StreamingPredictResponse, error) { + m := new(StreamingPredictResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *predictionServiceClient) Explain(ctx context.Context, in *ExplainRequest, opts ...grpc.CallOption) (*ExplainResponse, error) { out := new(ExplainResponse) err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1beta1.PredictionService/Explain", in, out, opts...) @@ -879,6 +1145,9 @@ type PredictionServiceServer interface { // [DeployedModel][google.cloud.aiplatform.v1beta1.DeployedModel] that served // this prediction. RawPredict(context.Context, *RawPredictRequest) (*httpbody.HttpBody, error) + // Perform a server-side streaming online prediction request for Vertex + // LLM streaming. + ServerStreamingPredict(*StreamingPredictRequest, PredictionService_ServerStreamingPredictServer) error // Perform an online explanation. // // If @@ -903,6 +1172,9 @@ func (*UnimplementedPredictionServiceServer) Predict(context.Context, *PredictRe func (*UnimplementedPredictionServiceServer) RawPredict(context.Context, *RawPredictRequest) (*httpbody.HttpBody, error) { return nil, status.Errorf(codes.Unimplemented, "method RawPredict not implemented") } +func (*UnimplementedPredictionServiceServer) ServerStreamingPredict(*StreamingPredictRequest, PredictionService_ServerStreamingPredictServer) error { + return status.Errorf(codes.Unimplemented, "method ServerStreamingPredict not implemented") +} func (*UnimplementedPredictionServiceServer) Explain(context.Context, *ExplainRequest) (*ExplainResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Explain not implemented") } @@ -947,6 +1219,27 @@ func _PredictionService_RawPredict_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _PredictionService_ServerStreamingPredict_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamingPredictRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(PredictionServiceServer).ServerStreamingPredict(m, &predictionServiceServerStreamingPredictServer{stream}) +} + +type PredictionService_ServerStreamingPredictServer interface { + Send(*StreamingPredictResponse) error + grpc.ServerStream +} + +type predictionServiceServerStreamingPredictServer struct { + grpc.ServerStream +} + +func (x *predictionServiceServerStreamingPredictServer) Send(m *StreamingPredictResponse) error { + return x.ServerStream.SendMsg(m) +} + func _PredictionService_Explain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ExplainRequest) if err := dec(in); err != nil { @@ -982,6 +1275,12 @@ var _PredictionService_serviceDesc = grpc.ServiceDesc{ Handler: _PredictionService_Explain_Handler, }, }, - Streams: []grpc.StreamDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "ServerStreamingPredict", + Handler: _PredictionService_ServerStreamingPredict_Handler, + ServerStreams: true, + }, + }, Metadata: "google/cloud/aiplatform/v1beta1/prediction_service.proto", } diff --git a/aiplatform/apiv1beta1/aiplatformpb/types.pb.go b/aiplatform/apiv1beta1/aiplatformpb/types.pb.go index 600b36e1a64..6a38cda32fa 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/types.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/types.pb.go @@ -35,6 +35,90 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Data type of the tensor. +type Tensor_DataType int32 + +const ( + // Not a legal value for DataType. Used to indicate a DataType field has not + // been set. + Tensor_DATA_TYPE_UNSPECIFIED Tensor_DataType = 0 + // Data types that all computation devices are expected to be + // capable to support. + Tensor_BOOL Tensor_DataType = 1 + Tensor_STRING Tensor_DataType = 2 + Tensor_FLOAT Tensor_DataType = 3 + Tensor_DOUBLE Tensor_DataType = 4 + Tensor_INT8 Tensor_DataType = 5 + Tensor_INT16 Tensor_DataType = 6 + Tensor_INT32 Tensor_DataType = 7 + Tensor_INT64 Tensor_DataType = 8 + Tensor_UINT8 Tensor_DataType = 9 + Tensor_UINT16 Tensor_DataType = 10 + Tensor_UINT32 Tensor_DataType = 11 + Tensor_UINT64 Tensor_DataType = 12 +) + +// Enum value maps for Tensor_DataType. +var ( + Tensor_DataType_name = map[int32]string{ + 0: "DATA_TYPE_UNSPECIFIED", + 1: "BOOL", + 2: "STRING", + 3: "FLOAT", + 4: "DOUBLE", + 5: "INT8", + 6: "INT16", + 7: "INT32", + 8: "INT64", + 9: "UINT8", + 10: "UINT16", + 11: "UINT32", + 12: "UINT64", + } + Tensor_DataType_value = map[string]int32{ + "DATA_TYPE_UNSPECIFIED": 0, + "BOOL": 1, + "STRING": 2, + "FLOAT": 3, + "DOUBLE": 4, + "INT8": 5, + "INT16": 6, + "INT32": 7, + "INT64": 8, + "UINT8": 9, + "UINT16": 10, + "UINT32": 11, + "UINT64": 12, + } +) + +func (x Tensor_DataType) Enum() *Tensor_DataType { + p := new(Tensor_DataType) + *p = x + return p +} + +func (x Tensor_DataType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Tensor_DataType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1beta1_types_proto_enumTypes[0].Descriptor() +} + +func (Tensor_DataType) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1beta1_types_proto_enumTypes[0] +} + +func (x Tensor_DataType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Tensor_DataType.Descriptor instead. +func (Tensor_DataType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_types_proto_rawDescGZIP(), []int{4, 0} +} + // A list of boolean values. type BoolArray struct { state protoimpl.MessageState @@ -231,6 +315,181 @@ func (x *StringArray) GetValues() []string { return nil } +// A tensor value type. +type Tensor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The data type of tensor. + Dtype Tensor_DataType `protobuf:"varint,1,opt,name=dtype,proto3,enum=google.cloud.aiplatform.v1beta1.Tensor_DataType" json:"dtype,omitempty"` + // Shape of the tensor. + Shape []int64 `protobuf:"varint,2,rep,packed,name=shape,proto3" json:"shape,omitempty"` + // Type specific representations that make it easy to create tensor protos in + // all languages. Only the representation corresponding to "dtype" can + // be set. The values hold the flattened representation of the tensor in + // row major order. + // + // [BOOL][google.aiplatform.master.Tensor.DataType.BOOL] + BoolVal []bool `protobuf:"varint,3,rep,packed,name=bool_val,json=boolVal,proto3" json:"bool_val,omitempty"` + // [STRING][google.aiplatform.master.Tensor.DataType.STRING] + StringVal []string `protobuf:"bytes,14,rep,name=string_val,json=stringVal,proto3" json:"string_val,omitempty"` + // [STRING][google.aiplatform.master.Tensor.DataType.STRING] + BytesVal [][]byte `protobuf:"bytes,15,rep,name=bytes_val,json=bytesVal,proto3" json:"bytes_val,omitempty"` + // [FLOAT][google.aiplatform.master.Tensor.DataType.FLOAT] + FloatVal []float32 `protobuf:"fixed32,5,rep,packed,name=float_val,json=floatVal,proto3" json:"float_val,omitempty"` + // [DOUBLE][google.aiplatform.master.Tensor.DataType.DOUBLE] + DoubleVal []float64 `protobuf:"fixed64,6,rep,packed,name=double_val,json=doubleVal,proto3" json:"double_val,omitempty"` + // [INT_8][google.aiplatform.master.Tensor.DataType.INT8] + // [INT_16][google.aiplatform.master.Tensor.DataType.INT16] + // [INT_32][google.aiplatform.master.Tensor.DataType.INT32] + IntVal []int32 `protobuf:"varint,7,rep,packed,name=int_val,json=intVal,proto3" json:"int_val,omitempty"` + // [INT64][google.aiplatform.master.Tensor.DataType.INT64] + Int64Val []int64 `protobuf:"varint,8,rep,packed,name=int64_val,json=int64Val,proto3" json:"int64_val,omitempty"` + // [UINT8][google.aiplatform.master.Tensor.DataType.UINT8] + // [UINT16][google.aiplatform.master.Tensor.DataType.UINT16] + // [UINT32][google.aiplatform.master.Tensor.DataType.UINT32] + UintVal []uint32 `protobuf:"varint,9,rep,packed,name=uint_val,json=uintVal,proto3" json:"uint_val,omitempty"` + // [UINT64][google.aiplatform.master.Tensor.DataType.UINT64] + Uint64Val []uint64 `protobuf:"varint,10,rep,packed,name=uint64_val,json=uint64Val,proto3" json:"uint64_val,omitempty"` + // A list of tensor values. + ListVal []*Tensor `protobuf:"bytes,11,rep,name=list_val,json=listVal,proto3" json:"list_val,omitempty"` + // A map of string to tensor. + StructVal map[string]*Tensor `protobuf:"bytes,12,rep,name=struct_val,json=structVal,proto3" json:"struct_val,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Serialized raw tensor content. + TensorVal []byte `protobuf:"bytes,13,opt,name=tensor_val,json=tensorVal,proto3" json:"tensor_val,omitempty"` +} + +func (x *Tensor) Reset() { + *x = Tensor{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_types_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Tensor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Tensor) ProtoMessage() {} + +func (x *Tensor) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_types_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 Tensor.ProtoReflect.Descriptor instead. +func (*Tensor) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_types_proto_rawDescGZIP(), []int{4} +} + +func (x *Tensor) GetDtype() Tensor_DataType { + if x != nil { + return x.Dtype + } + return Tensor_DATA_TYPE_UNSPECIFIED +} + +func (x *Tensor) GetShape() []int64 { + if x != nil { + return x.Shape + } + return nil +} + +func (x *Tensor) GetBoolVal() []bool { + if x != nil { + return x.BoolVal + } + return nil +} + +func (x *Tensor) GetStringVal() []string { + if x != nil { + return x.StringVal + } + return nil +} + +func (x *Tensor) GetBytesVal() [][]byte { + if x != nil { + return x.BytesVal + } + return nil +} + +func (x *Tensor) GetFloatVal() []float32 { + if x != nil { + return x.FloatVal + } + return nil +} + +func (x *Tensor) GetDoubleVal() []float64 { + if x != nil { + return x.DoubleVal + } + return nil +} + +func (x *Tensor) GetIntVal() []int32 { + if x != nil { + return x.IntVal + } + return nil +} + +func (x *Tensor) GetInt64Val() []int64 { + if x != nil { + return x.Int64Val + } + return nil +} + +func (x *Tensor) GetUintVal() []uint32 { + if x != nil { + return x.UintVal + } + return nil +} + +func (x *Tensor) GetUint64Val() []uint64 { + if x != nil { + return x.Uint64Val + } + return nil +} + +func (x *Tensor) GetListVal() []*Tensor { + if x != nil { + return x.ListVal + } + return nil +} + +func (x *Tensor) GetStructVal() map[string]*Tensor { + if x != nil { + return x.StructVal + } + return nil +} + +func (x *Tensor) GetTensorVal() []byte { + if x != nil { + return x.TensorVal + } + return nil +} + var File_google_cloud_aiplatform_v1beta1_types_proto protoreflect.FileDescriptor var file_google_cloud_aiplatform_v1beta1_types_proto_rawDesc = []byte{ @@ -248,22 +507,73 @@ var file_google_cloud_aiplatform_v1beta1_types_proto_rawDesc = []byte{ 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x25, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0xe1, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, - 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, - 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xb9, 0x06, 0x0a, 0x06, 0x54, 0x65, 0x6e, 0x73, + 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x05, 0x64, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x05, 0x64, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x08, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x52, 0x08, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, + 0x61, 0x6c, 0x18, 0x06, 0x20, 0x03, 0x28, 0x01, 0x52, 0x09, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x03, 0x52, + 0x08, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x69, 0x6e, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x69, 0x6e, + 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, + 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x56, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x07, + 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x55, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, + 0x6e, 0x73, 0x6f, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x12, 0x1d, + 0x0a, 0x0a, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x1a, 0x65, 0x0a, + 0x0e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, + 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x03, 0x12, 0x0a, 0x0a, + 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x54, + 0x38, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x06, 0x12, 0x09, + 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, + 0x36, 0x34, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x49, 0x4e, 0x54, 0x38, 0x10, 0x09, 0x12, + 0x0a, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x31, 0x36, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x55, + 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x36, + 0x34, 0x10, 0x0c, 0x42, 0xe1, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, + 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, + 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, + 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -278,19 +588,27 @@ func file_google_cloud_aiplatform_v1beta1_types_proto_rawDescGZIP() []byte { return file_google_cloud_aiplatform_v1beta1_types_proto_rawDescData } -var file_google_cloud_aiplatform_v1beta1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_cloud_aiplatform_v1beta1_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_aiplatform_v1beta1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_google_cloud_aiplatform_v1beta1_types_proto_goTypes = []interface{}{ - (*BoolArray)(nil), // 0: google.cloud.aiplatform.v1beta1.BoolArray - (*DoubleArray)(nil), // 1: google.cloud.aiplatform.v1beta1.DoubleArray - (*Int64Array)(nil), // 2: google.cloud.aiplatform.v1beta1.Int64Array - (*StringArray)(nil), // 3: google.cloud.aiplatform.v1beta1.StringArray + (Tensor_DataType)(0), // 0: google.cloud.aiplatform.v1beta1.Tensor.DataType + (*BoolArray)(nil), // 1: google.cloud.aiplatform.v1beta1.BoolArray + (*DoubleArray)(nil), // 2: google.cloud.aiplatform.v1beta1.DoubleArray + (*Int64Array)(nil), // 3: google.cloud.aiplatform.v1beta1.Int64Array + (*StringArray)(nil), // 4: google.cloud.aiplatform.v1beta1.StringArray + (*Tensor)(nil), // 5: google.cloud.aiplatform.v1beta1.Tensor + nil, // 6: google.cloud.aiplatform.v1beta1.Tensor.StructValEntry } var file_google_cloud_aiplatform_v1beta1_types_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 0, // 0: google.cloud.aiplatform.v1beta1.Tensor.dtype:type_name -> google.cloud.aiplatform.v1beta1.Tensor.DataType + 5, // 1: google.cloud.aiplatform.v1beta1.Tensor.list_val:type_name -> google.cloud.aiplatform.v1beta1.Tensor + 6, // 2: google.cloud.aiplatform.v1beta1.Tensor.struct_val:type_name -> google.cloud.aiplatform.v1beta1.Tensor.StructValEntry + 5, // 3: google.cloud.aiplatform.v1beta1.Tensor.StructValEntry.value:type_name -> google.cloud.aiplatform.v1beta1.Tensor + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_types_proto_init() } @@ -347,19 +665,32 @@ func file_google_cloud_aiplatform_v1beta1_types_proto_init() { return nil } } + file_google_cloud_aiplatform_v1beta1_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Tensor); 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_google_cloud_aiplatform_v1beta1_types_proto_rawDesc, - NumEnums: 0, - NumMessages: 4, + NumEnums: 1, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_cloud_aiplatform_v1beta1_types_proto_goTypes, DependencyIndexes: file_google_cloud_aiplatform_v1beta1_types_proto_depIdxs, + EnumInfos: file_google_cloud_aiplatform_v1beta1_types_proto_enumTypes, MessageInfos: file_google_cloud_aiplatform_v1beta1_types_proto_msgTypes, }.Build() File_google_cloud_aiplatform_v1beta1_types_proto = out.File diff --git a/aiplatform/apiv1beta1/gapic_metadata.json b/aiplatform/apiv1beta1/gapic_metadata.json index 0dcdfe9b1ec..7a93a452441 100644 --- a/aiplatform/apiv1beta1/gapic_metadata.json +++ b/aiplatform/apiv1beta1/gapic_metadata.json @@ -3460,6 +3460,11 @@ "RawPredict" ] }, + "ServerStreamingPredict": { + "methods": [ + "ServerStreamingPredict" + ] + }, "SetIamPolicy": { "methods": [ "SetIamPolicy" @@ -3530,6 +3535,11 @@ "RawPredict" ] }, + "ServerStreamingPredict": { + "methods": [ + "ServerStreamingPredict" + ] + }, "SetIamPolicy": { "methods": [ "SetIamPolicy" diff --git a/aiplatform/apiv1beta1/prediction_client.go b/aiplatform/apiv1beta1/prediction_client.go index 189e6517316..5f8250622ee 100755 --- a/aiplatform/apiv1beta1/prediction_client.go +++ b/aiplatform/apiv1beta1/prediction_client.go @@ -48,19 +48,20 @@ var newPredictionClientHook clientHook // PredictionCallOptions contains the retry settings for each method of PredictionClient. type PredictionCallOptions struct { - Predict []gax.CallOption - RawPredict []gax.CallOption - Explain []gax.CallOption - GetLocation []gax.CallOption - ListLocations []gax.CallOption - GetIamPolicy []gax.CallOption - SetIamPolicy []gax.CallOption - TestIamPermissions []gax.CallOption - CancelOperation []gax.CallOption - DeleteOperation []gax.CallOption - GetOperation []gax.CallOption - ListOperations []gax.CallOption - WaitOperation []gax.CallOption + Predict []gax.CallOption + RawPredict []gax.CallOption + ServerStreamingPredict []gax.CallOption + Explain []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption } func defaultPredictionGRPCClientOptions() []option.ClientOption { @@ -80,7 +81,8 @@ func defaultPredictionCallOptions() *PredictionCallOptions { Predict: []gax.CallOption{ gax.WithTimeout(5000 * time.Millisecond), }, - RawPredict: []gax.CallOption{}, + RawPredict: []gax.CallOption{}, + ServerStreamingPredict: []gax.CallOption{}, Explain: []gax.CallOption{ gax.WithTimeout(5000 * time.Millisecond), }, @@ -102,7 +104,8 @@ func defaultPredictionRESTCallOptions() *PredictionCallOptions { Predict: []gax.CallOption{ gax.WithTimeout(5000 * time.Millisecond), }, - RawPredict: []gax.CallOption{}, + RawPredict: []gax.CallOption{}, + ServerStreamingPredict: []gax.CallOption{}, Explain: []gax.CallOption{ gax.WithTimeout(5000 * time.Millisecond), }, @@ -126,6 +129,7 @@ type internalPredictionClient interface { Connection() *grpc.ClientConn Predict(context.Context, *aiplatformpb.PredictRequest, ...gax.CallOption) (*aiplatformpb.PredictResponse, error) RawPredict(context.Context, *aiplatformpb.RawPredictRequest, ...gax.CallOption) (*httpbodypb.HttpBody, error) + ServerStreamingPredict(context.Context, *aiplatformpb.StreamingPredictRequest, ...gax.CallOption) (aiplatformpb.PredictionService_ServerStreamingPredictClient, error) Explain(context.Context, *aiplatformpb.ExplainRequest, ...gax.CallOption) (*aiplatformpb.ExplainResponse, error) GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator @@ -194,6 +198,12 @@ func (c *PredictionClient) RawPredict(ctx context.Context, req *aiplatformpb.Raw return c.internalClient.RawPredict(ctx, req, opts...) } +// ServerStreamingPredict perform a server-side streaming online prediction request for Vertex +// LLM streaming. +func (c *PredictionClient) ServerStreamingPredict(ctx context.Context, req *aiplatformpb.StreamingPredictRequest, opts ...gax.CallOption) (aiplatformpb.PredictionService_ServerStreamingPredictClient, error) { + return c.internalClient.ServerStreamingPredict(ctx, req, opts...) +} + // Explain perform an online explanation. // // If @@ -453,6 +463,23 @@ func (c *predictionGRPCClient) RawPredict(ctx context.Context, req *aiplatformpb return resp, nil } +func (c *predictionGRPCClient) ServerStreamingPredict(ctx context.Context, req *aiplatformpb.StreamingPredictRequest, opts ...gax.CallOption) (aiplatformpb.PredictionService_ServerStreamingPredictClient, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ServerStreamingPredict[0:len((*c.CallOptions).ServerStreamingPredict):len((*c.CallOptions).ServerStreamingPredict)], opts...) + var resp aiplatformpb.PredictionService_ServerStreamingPredictClient + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.predictionClient.ServerStreamingPredict(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + func (c *predictionGRPCClient) Explain(ctx context.Context, req *aiplatformpb.ExplainRequest, opts ...gax.CallOption) (*aiplatformpb.ExplainResponse, error) { md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))) @@ -816,6 +843,106 @@ func (c *predictionRESTClient) RawPredict(ctx context.Context, req *aiplatformpb return resp, nil } +// ServerStreamingPredict perform a server-side streaming online prediction request for Vertex +// LLM streaming. +func (c *predictionRESTClient) ServerStreamingPredict(ctx context.Context, req *aiplatformpb.StreamingPredictRequest, opts ...gax.CallOption) (aiplatformpb.PredictionService_ServerStreamingPredictClient, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v:serverStreamingPredict", req.GetEndpoint()) + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + var streamClient *serverStreamingPredictRESTClient + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + streamClient = &serverStreamingPredictRESTClient{ + ctx: ctx, + md: metadata.MD(httpRsp.Header), + stream: gax.NewProtoJSONStreamReader(httpRsp.Body, (&aiplatformpb.StreamingPredictResponse{}).ProtoReflect().Type()), + } + return nil + }, opts...) + + return streamClient, e +} + +// serverStreamingPredictRESTClient is the stream client used to consume the server stream created by +// the REST implementation of ServerStreamingPredict. +type serverStreamingPredictRESTClient struct { + ctx context.Context + md metadata.MD + stream *gax.ProtoJSONStream +} + +func (c *serverStreamingPredictRESTClient) Recv() (*aiplatformpb.StreamingPredictResponse, error) { + if err := c.ctx.Err(); err != nil { + defer c.stream.Close() + return nil, err + } + msg, err := c.stream.Recv() + if err != nil { + defer c.stream.Close() + return nil, err + } + res := msg.(*aiplatformpb.StreamingPredictResponse) + return res, nil +} + +func (c *serverStreamingPredictRESTClient) Header() (metadata.MD, error) { + return c.md, nil +} + +func (c *serverStreamingPredictRESTClient) Trailer() metadata.MD { + return c.md +} + +func (c *serverStreamingPredictRESTClient) CloseSend() error { + // This is a no-op to fulfill the interface. + return fmt.Errorf("this method is not implemented for a server-stream") +} + +func (c *serverStreamingPredictRESTClient) Context() context.Context { + return c.ctx +} + +func (c *serverStreamingPredictRESTClient) SendMsg(m interface{}) error { + // This is a no-op to fulfill the interface. + return fmt.Errorf("this method is not implemented for a server-stream") +} + +func (c *serverStreamingPredictRESTClient) RecvMsg(m interface{}) error { + // This is a no-op to fulfill the interface. + return fmt.Errorf("this method is not implemented, use Recv") +} + // Explain perform an online explanation. // // If diff --git a/alloydb/connectors/apiv1alpha/connectorspb/resources.pb.go b/alloydb/connectors/apiv1alpha/connectorspb/resources.pb.go new file mode 100755 index 00000000000..15ecaa190d4 --- /dev/null +++ b/alloydb/connectors/apiv1alpha/connectorspb/resources.pb.go @@ -0,0 +1,421 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/alloydb/connectors/v1alpha/resources.proto + +package connectorspb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +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) +) + +// AuthType contains all supported authentication types. +type MetadataExchangeRequest_AuthType int32 + +const ( + // Authentication type is unspecified and DB_NATIVE is used by default + MetadataExchangeRequest_AUTH_TYPE_UNSPECIFIED MetadataExchangeRequest_AuthType = 0 + // Database native authentication (user/password) + MetadataExchangeRequest_DB_NATIVE MetadataExchangeRequest_AuthType = 1 + // Automatic IAM authentication + MetadataExchangeRequest_AUTO_IAM MetadataExchangeRequest_AuthType = 2 +) + +// Enum value maps for MetadataExchangeRequest_AuthType. +var ( + MetadataExchangeRequest_AuthType_name = map[int32]string{ + 0: "AUTH_TYPE_UNSPECIFIED", + 1: "DB_NATIVE", + 2: "AUTO_IAM", + } + MetadataExchangeRequest_AuthType_value = map[string]int32{ + "AUTH_TYPE_UNSPECIFIED": 0, + "DB_NATIVE": 1, + "AUTO_IAM": 2, + } +) + +func (x MetadataExchangeRequest_AuthType) Enum() *MetadataExchangeRequest_AuthType { + p := new(MetadataExchangeRequest_AuthType) + *p = x + return p +} + +func (x MetadataExchangeRequest_AuthType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MetadataExchangeRequest_AuthType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_alloydb_connectors_v1alpha_resources_proto_enumTypes[0].Descriptor() +} + +func (MetadataExchangeRequest_AuthType) Type() protoreflect.EnumType { + return &file_google_cloud_alloydb_connectors_v1alpha_resources_proto_enumTypes[0] +} + +func (x MetadataExchangeRequest_AuthType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MetadataExchangeRequest_AuthType.Descriptor instead. +func (MetadataExchangeRequest_AuthType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescGZIP(), []int{0, 0} +} + +// Response code. +type MetadataExchangeResponse_ResponseCode int32 + +const ( + // Unknown response code + MetadataExchangeResponse_RESPONSE_CODE_UNSPECIFIED MetadataExchangeResponse_ResponseCode = 0 + // Success + MetadataExchangeResponse_OK MetadataExchangeResponse_ResponseCode = 1 + // Failure + MetadataExchangeResponse_ERROR MetadataExchangeResponse_ResponseCode = 2 +) + +// Enum value maps for MetadataExchangeResponse_ResponseCode. +var ( + MetadataExchangeResponse_ResponseCode_name = map[int32]string{ + 0: "RESPONSE_CODE_UNSPECIFIED", + 1: "OK", + 2: "ERROR", + } + MetadataExchangeResponse_ResponseCode_value = map[string]int32{ + "RESPONSE_CODE_UNSPECIFIED": 0, + "OK": 1, + "ERROR": 2, + } +) + +func (x MetadataExchangeResponse_ResponseCode) Enum() *MetadataExchangeResponse_ResponseCode { + p := new(MetadataExchangeResponse_ResponseCode) + *p = x + return p +} + +func (x MetadataExchangeResponse_ResponseCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MetadataExchangeResponse_ResponseCode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_alloydb_connectors_v1alpha_resources_proto_enumTypes[1].Descriptor() +} + +func (MetadataExchangeResponse_ResponseCode) Type() protoreflect.EnumType { + return &file_google_cloud_alloydb_connectors_v1alpha_resources_proto_enumTypes[1] +} + +func (x MetadataExchangeResponse_ResponseCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MetadataExchangeResponse_ResponseCode.Descriptor instead. +func (MetadataExchangeResponse_ResponseCode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescGZIP(), []int{1, 0} +} + +// Message used by AlloyDB connectors to exchange client and connection metadata +// with the server after a successful TLS handshake. This metadata includes an +// IAM token, which is used to authenticate users based on their IAM identity. +// The sole purpose of this message is for the use of AlloyDB connectors. +// Clients should not rely on this message directly as there can be breaking +// changes in the future. +type MetadataExchangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Connector information. + UserAgent string `protobuf:"bytes,1,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"` + // Authentication type. + AuthType MetadataExchangeRequest_AuthType `protobuf:"varint,2,opt,name=auth_type,json=authType,proto3,enum=google.cloud.alloydb.connectors.v1alpha.MetadataExchangeRequest_AuthType" json:"auth_type,omitempty"` + // IAM token used for both IAM user authentiation and + // `alloydb.instances.connect` permission check. + Oauth2Token string `protobuf:"bytes,3,opt,name=oauth2_token,json=oauth2Token,proto3" json:"oauth2_token,omitempty"` +} + +func (x *MetadataExchangeRequest) Reset() { + *x = MetadataExchangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_alloydb_connectors_v1alpha_resources_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MetadataExchangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetadataExchangeRequest) ProtoMessage() {} + +func (x *MetadataExchangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_alloydb_connectors_v1alpha_resources_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 MetadataExchangeRequest.ProtoReflect.Descriptor instead. +func (*MetadataExchangeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescGZIP(), []int{0} +} + +func (x *MetadataExchangeRequest) GetUserAgent() string { + if x != nil { + return x.UserAgent + } + return "" +} + +func (x *MetadataExchangeRequest) GetAuthType() MetadataExchangeRequest_AuthType { + if x != nil { + return x.AuthType + } + return MetadataExchangeRequest_AUTH_TYPE_UNSPECIFIED +} + +func (x *MetadataExchangeRequest) GetOauth2Token() string { + if x != nil { + return x.Oauth2Token + } + return "" +} + +// Message for response to metadata exchange request. The sole purpose of this +// message is for the use of AlloyDB connectors. Clients should not rely on this +// message directly as there can be breaking changes in the future. +type MetadataExchangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Response code. + ResponseCode MetadataExchangeResponse_ResponseCode `protobuf:"varint,1,opt,name=response_code,json=responseCode,proto3,enum=google.cloud.alloydb.connectors.v1alpha.MetadataExchangeResponse_ResponseCode" json:"response_code,omitempty"` + // Optional. Error message. + Error string `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *MetadataExchangeResponse) Reset() { + *x = MetadataExchangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_alloydb_connectors_v1alpha_resources_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MetadataExchangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetadataExchangeResponse) ProtoMessage() {} + +func (x *MetadataExchangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_alloydb_connectors_v1alpha_resources_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 MetadataExchangeResponse.ProtoReflect.Descriptor instead. +func (*MetadataExchangeResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescGZIP(), []int{1} +} + +func (x *MetadataExchangeResponse) GetResponseCode() MetadataExchangeResponse_ResponseCode { + if x != nil { + return x.ResponseCode + } + return MetadataExchangeResponse_RESPONSE_CODE_UNSPECIFIED +} + +func (x *MetadataExchangeResponse) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +var File_google_cloud_alloydb_connectors_v1alpha_resources_proto protoreflect.FileDescriptor + +var file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDesc = []byte{ + 0x0a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x2e, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x02, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x12, 0x66, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, + 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x42, + 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x55, + 0x54, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x42, 0x5f, 0x4e, 0x41, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x49, 0x41, 0x4d, + 0x10, 0x02, 0x22, 0xec, 0x01, 0x0a, 0x18, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x73, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x2e, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0x40, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x02, 0x42, 0x8e, 0x02, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, 0x2e, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x4b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x79, 0x64, 0x62, + 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x70, 0x62, 0x3b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x70, 0x62, + 0xaa, 0x02, 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x41, 0x6c, 0x6c, 0x6f, 0x79, 0x44, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x73, 0x2e, 0x56, 0x31, 0x41, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x27, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x6c, 0x6c, 0x6f, 0x79, 0x44, + 0x62, 0x5c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5c, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x2b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x6c, 0x6c, 0x6f, 0x79, 0x44, 0x62, 0x3a, 0x3a, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescOnce sync.Once + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescData = file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDesc +) + +func file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescGZIP() []byte { + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescOnce.Do(func() { + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescData) + }) + return file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDescData +} + +var file_google_cloud_alloydb_connectors_v1alpha_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_alloydb_connectors_v1alpha_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_google_cloud_alloydb_connectors_v1alpha_resources_proto_goTypes = []interface{}{ + (MetadataExchangeRequest_AuthType)(0), // 0: google.cloud.alloydb.connectors.v1alpha.MetadataExchangeRequest.AuthType + (MetadataExchangeResponse_ResponseCode)(0), // 1: google.cloud.alloydb.connectors.v1alpha.MetadataExchangeResponse.ResponseCode + (*MetadataExchangeRequest)(nil), // 2: google.cloud.alloydb.connectors.v1alpha.MetadataExchangeRequest + (*MetadataExchangeResponse)(nil), // 3: google.cloud.alloydb.connectors.v1alpha.MetadataExchangeResponse +} +var file_google_cloud_alloydb_connectors_v1alpha_resources_proto_depIdxs = []int32{ + 0, // 0: google.cloud.alloydb.connectors.v1alpha.MetadataExchangeRequest.auth_type:type_name -> google.cloud.alloydb.connectors.v1alpha.MetadataExchangeRequest.AuthType + 1, // 1: google.cloud.alloydb.connectors.v1alpha.MetadataExchangeResponse.response_code:type_name -> google.cloud.alloydb.connectors.v1alpha.MetadataExchangeResponse.ResponseCode + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_alloydb_connectors_v1alpha_resources_proto_init() } +func file_google_cloud_alloydb_connectors_v1alpha_resources_proto_init() { + if File_google_cloud_alloydb_connectors_v1alpha_resources_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetadataExchangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetadataExchangeResponse); 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_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDesc, + NumEnums: 2, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_alloydb_connectors_v1alpha_resources_proto_goTypes, + DependencyIndexes: file_google_cloud_alloydb_connectors_v1alpha_resources_proto_depIdxs, + EnumInfos: file_google_cloud_alloydb_connectors_v1alpha_resources_proto_enumTypes, + MessageInfos: file_google_cloud_alloydb_connectors_v1alpha_resources_proto_msgTypes, + }.Build() + File_google_cloud_alloydb_connectors_v1alpha_resources_proto = out.File + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_rawDesc = nil + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_goTypes = nil + file_google_cloud_alloydb_connectors_v1alpha_resources_proto_depIdxs = nil +} diff --git a/datastore/admin/apiv1/adminpb/datastore_admin.pb.go b/datastore/admin/apiv1/adminpb/datastore_admin.pb.go index 1e535c253be..03a38f5f21e 100755 --- a/datastore/admin/apiv1/adminpb/datastore_admin.pb.go +++ b/datastore/admin/apiv1/adminpb/datastore_admin.pb.go @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -351,8 +351,8 @@ type ExportEntitiesRequest struct { // // The resulting files will be nested deeper than the specified URL prefix. // The final output URL will be provided in the - // [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. That - // value should be used for subsequent ImportEntities operations. + // [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] + // field. That value should be used for subsequent ImportEntities operations. // // By nesting the data files deeper, the same Cloud Storage bucket can be used // in multiple ExportEntities operations without conflict. @@ -430,8 +430,9 @@ type ImportEntitiesRequest struct { ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Client-assigned labels. Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Required. The full resource URL of the external storage location. Currently, only - // Google Cloud Storage is supported. So input_url should be of the form: + // Required. The full resource URL of the external storage location. + // Currently, only Google Cloud Storage is supported. So input_url should be + // of the form: // `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where // `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is // an optional Cloud Storage namespace path (this is not a Cloud Datastore @@ -668,7 +669,9 @@ type ImportEntitiesMetadata struct { // Description of which entities are being imported. EntityFilter *EntityFilter `protobuf:"bytes,4,opt,name=entity_filter,json=entityFilter,proto3" json:"entity_filter,omitempty"` // The location of the import metadata file. This will be the same value as - // the [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] field. + // the + // [google.datastore.admin.v1.ExportEntitiesResponse.output_url][google.datastore.admin.v1.ExportEntitiesResponse.output_url] + // field. InputUrl string `protobuf:"bytes,5,opt,name=input_url,json=inputUrl,proto3" json:"input_url,omitempty"` } @@ -945,7 +948,8 @@ func (x *DeleteIndexRequest) GetIndexId() string { return "" } -// The request for [google.datastore.admin.v1.DatastoreAdmin.GetIndex][google.datastore.admin.v1.DatastoreAdmin.GetIndex]. +// The request for +// [google.datastore.admin.v1.DatastoreAdmin.GetIndex][google.datastore.admin.v1.DatastoreAdmin.GetIndex]. type GetIndexRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1918,9 +1922,9 @@ type DatastoreAdminClient interface { ImportEntities(ctx context.Context, in *ImportEntitiesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) // Creates the specified index. // A newly created index's initial state is `CREATING`. On completion of the - // returned [google.longrunning.Operation][google.longrunning.Operation], the state will be `READY`. - // If the index already exists, the call will return an `ALREADY_EXISTS` - // status. + // returned [google.longrunning.Operation][google.longrunning.Operation], the + // state will be `READY`. If the index already exists, the call will return an + // `ALREADY_EXISTS` status. // // During index creation, the process could result in an error, in which // case the index will move to the `ERROR` state. The process can be recovered @@ -1935,7 +1939,8 @@ type DatastoreAdminClient interface { // An index can only be deleted if it is in a `READY` or `ERROR` state. On // successful execution of the request, the index will be in a `DELETING` // [state][google.datastore.admin.v1.Index.State]. And on completion of the - // returned [google.longrunning.Operation][google.longrunning.Operation], the index will be removed. + // returned [google.longrunning.Operation][google.longrunning.Operation], the + // index will be removed. // // During index deletion, the process could result in an error, in which // case the index will move to the `ERROR` state. The process can be recovered @@ -2031,9 +2036,9 @@ type DatastoreAdminServer interface { ImportEntities(context.Context, *ImportEntitiesRequest) (*longrunningpb.Operation, error) // Creates the specified index. // A newly created index's initial state is `CREATING`. On completion of the - // returned [google.longrunning.Operation][google.longrunning.Operation], the state will be `READY`. - // If the index already exists, the call will return an `ALREADY_EXISTS` - // status. + // returned [google.longrunning.Operation][google.longrunning.Operation], the + // state will be `READY`. If the index already exists, the call will return an + // `ALREADY_EXISTS` status. // // During index creation, the process could result in an error, in which // case the index will move to the `ERROR` state. The process can be recovered @@ -2048,7 +2053,8 @@ type DatastoreAdminServer interface { // An index can only be deleted if it is in a `READY` or `ERROR` state. On // successful execution of the request, the index will be in a `DELETING` // [state][google.datastore.admin.v1.Index.State]. And on completion of the - // returned [google.longrunning.Operation][google.longrunning.Operation], the index will be removed. + // returned [google.longrunning.Operation][google.longrunning.Operation], the + // index will be removed. // // During index deletion, the process could result in an error, in which // case the index will move to the `ERROR` state. The process can be recovered diff --git a/datastore/admin/apiv1/adminpb/index.pb.go b/datastore/admin/apiv1/adminpb/index.pb.go index 4bfc8002748..71b54538b86 100755 --- a/datastore/admin/apiv1/adminpb/index.pb.go +++ b/datastore/admin/apiv1/adminpb/index.pb.go @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -231,9 +231,14 @@ type Index struct { IndexId string `protobuf:"bytes,3,opt,name=index_id,json=indexId,proto3" json:"index_id,omitempty"` // Required. The entity kind to which this index applies. Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` - // Required. The index's ancestor mode. Must not be ANCESTOR_MODE_UNSPECIFIED. + // Required. The index's ancestor mode. Must not be + // ANCESTOR_MODE_UNSPECIFIED. Ancestor Index_AncestorMode `protobuf:"varint,5,opt,name=ancestor,proto3,enum=google.datastore.admin.v1.Index_AncestorMode" json:"ancestor,omitempty"` // Required. An ordered sequence of property names and their index attributes. + // + // Requires: + // + // * A maximum of 100 properties. Properties []*Index_IndexedProperty `protobuf:"bytes,6,rep,name=properties,proto3" json:"properties,omitempty"` // Output only. The state of the index. State Index_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.datastore.admin.v1.Index_State" json:"state,omitempty"` @@ -321,7 +326,8 @@ type Index_IndexedProperty struct { // Required. The property name to index. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Required. The indexed property's direction. Must not be DIRECTION_UNSPECIFIED. + // Required. The indexed property's direction. Must not be + // DIRECTION_UNSPECIFIED. Direction Index_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.datastore.admin.v1.Index_Direction" json:"direction,omitempty"` } diff --git a/datastore/admin/apiv1/adminpb/migration.pb.go b/datastore/admin/apiv1/adminpb/migration.pb.go index 21ecf9848ac..a0efba6ee37 100755 --- a/datastore/admin/apiv1/adminpb/migration.pb.go +++ b/datastore/admin/apiv1/adminpb/migration.pb.go @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/datastore/admin/apiv1/datastore_admin_client.go b/datastore/admin/apiv1/datastore_admin_client.go index 360c7b2eaf0..50a13735ac1 100755 --- a/datastore/admin/apiv1/datastore_admin_client.go +++ b/datastore/admin/apiv1/datastore_admin_client.go @@ -192,8 +192,8 @@ type internalDatastoreAdminClient interface { // // The Datastore Admin API provides several admin services for Cloud Datastore. // -// ConceptsProject, namespace, kind, and entity as defined in the Google Cloud Datastore -// API. +// Concepts: Project, namespace, kind, and entity as defined in the Google Cloud +// Datastore API. // // Operation: An Operation represents work being performed in the background. // @@ -201,41 +201,48 @@ type internalDatastoreAdminClient interface { // specified as a combination of kinds and namespaces (either or both of which // may be all). // -// ServicesExport/ImportThe Export/Import service provides the ability to copy all or a subset of -// entities to/from Google Cloud Storage. +// Export/Import Service: // -// Exported data may be imported into Cloud Datastore for any Google Cloud -// Platform project. It is not restricted to the export source project. It is -// possible to export from one project and then import into another. +// The Export/Import service provides the ability to copy all or a subset of +// entities to/from Google Cloud Storage. // -// Exported data can also be loaded into Google BigQuery for analysis. +// Exported data may be imported into Cloud Datastore for any Google Cloud +// Platform project. It is not restricted to the export source project. It is +// possible to export from one project and then import into another. // -// Exports and imports are performed asynchronously. An Operation resource is -// created for each export/import. The state (including any errors encountered) -// of the export/import may be queried via the Operation resource. +// Exported data can also be loaded into Google BigQuery for analysis. // -// IndexThe index service manages Cloud Datastore composite indexes. +// Exports and imports are performed asynchronously. An Operation resource is +// created for each export/import. The state (including any errors encountered) +// of the export/import may be queried via the Operation resource. // -// Index creation and deletion are performed asynchronously. -// An Operation resource is created for each such asynchronous operation. -// The state of the operation (including any errors encountered) -// may be queried via the Operation resource. +// Index Service: // -// OperationThe Operations collection provides a record of actions performed for the -// specified project (including any operations in progress). Operations are not -// created directly but through calls on other collections or resources. +// The index service manages Cloud Datastore composite indexes. // -// An operation that is not yet done may be cancelled. The request to cancel is -// asynchronous and the operation may continue to run for some time after the -// request to cancel is made. +// Index creation and deletion are performed asynchronously. +// An Operation resource is created for each such asynchronous operation. +// The state of the operation (including any errors encountered) +// may be queried via the Operation resource. // -// An operation that is done may be deleted so that it is no longer listed as -// part of the Operation collection. +// Operation Service: // -// ListOperations returns all pending operations, but not completed operations. +// The Operations collection provides a record of actions performed for the +// specified project (including any operations in progress). Operations are not +// created directly but through calls on other collections or resources. // -// Operations are created by service DatastoreAdmin, -// but are accessed via service google.longrunning.Operations. +// An operation that is not yet done may be cancelled. The request to cancel +// is asynchronous and the operation may continue to run for some time after the +// request to cancel is made. +// +// An operation that is done may be deleted so that it is no longer listed as +// part of the Operation collection. +// +// ListOperations returns all pending operations, but not completed +// operations. +// +// Operations are created by service DatastoreAdmin, but are accessed via +// service google.longrunning.Operations. type DatastoreAdminClient struct { // The internal transport-dependent client. internalClient internalDatastoreAdminClient @@ -307,9 +314,9 @@ func (c *DatastoreAdminClient) ImportEntitiesOperation(name string) *ImportEntit // CreateIndex creates the specified index. // A newly created index’s initial state is CREATING. On completion of the -// returned google.longrunning.Operation, the state will be READY. -// If the index already exists, the call will return an ALREADY_EXISTS -// status. +// returned google.longrunning.Operation, the +// state will be READY. If the index already exists, the call will return an +// ALREADY_EXISTS status. // // During index creation, the process could result in an error, in which // case the index will move to the ERROR state. The process can be recovered @@ -333,7 +340,8 @@ func (c *DatastoreAdminClient) CreateIndexOperation(name string) *CreateIndexOpe // An index can only be deleted if it is in a READY or ERROR state. On // successful execution of the request, the index will be in a DELETING // state. And on completion of the -// returned google.longrunning.Operation, the index will be removed. +// returned google.longrunning.Operation, the +// index will be removed. // // During index deletion, the process could result in an error, in which // case the index will move to the ERROR state. The process can be recovered @@ -412,8 +420,8 @@ type datastoreAdminGRPCClient struct { // // The Datastore Admin API provides several admin services for Cloud Datastore. // -// ConceptsProject, namespace, kind, and entity as defined in the Google Cloud Datastore -// API. +// Concepts: Project, namespace, kind, and entity as defined in the Google Cloud +// Datastore API. // // Operation: An Operation represents work being performed in the background. // @@ -421,41 +429,48 @@ type datastoreAdminGRPCClient struct { // specified as a combination of kinds and namespaces (either or both of which // may be all). // -// ServicesExport/ImportThe Export/Import service provides the ability to copy all or a subset of -// entities to/from Google Cloud Storage. +// Export/Import Service: +// +// The Export/Import service provides the ability to copy all or a subset of +// entities to/from Google Cloud Storage. +// +// Exported data may be imported into Cloud Datastore for any Google Cloud +// Platform project. It is not restricted to the export source project. It is +// possible to export from one project and then import into another. // -// Exported data may be imported into Cloud Datastore for any Google Cloud -// Platform project. It is not restricted to the export source project. It is -// possible to export from one project and then import into another. +// Exported data can also be loaded into Google BigQuery for analysis. // -// Exported data can also be loaded into Google BigQuery for analysis. +// Exports and imports are performed asynchronously. An Operation resource is +// created for each export/import. The state (including any errors encountered) +// of the export/import may be queried via the Operation resource. // -// Exports and imports are performed asynchronously. An Operation resource is -// created for each export/import. The state (including any errors encountered) -// of the export/import may be queried via the Operation resource. +// Index Service: // -// IndexThe index service manages Cloud Datastore composite indexes. +// The index service manages Cloud Datastore composite indexes. // -// Index creation and deletion are performed asynchronously. -// An Operation resource is created for each such asynchronous operation. -// The state of the operation (including any errors encountered) -// may be queried via the Operation resource. +// Index creation and deletion are performed asynchronously. +// An Operation resource is created for each such asynchronous operation. +// The state of the operation (including any errors encountered) +// may be queried via the Operation resource. // -// OperationThe Operations collection provides a record of actions performed for the -// specified project (including any operations in progress). Operations are not -// created directly but through calls on other collections or resources. +// Operation Service: // -// An operation that is not yet done may be cancelled. The request to cancel is -// asynchronous and the operation may continue to run for some time after the -// request to cancel is made. +// The Operations collection provides a record of actions performed for the +// specified project (including any operations in progress). Operations are not +// created directly but through calls on other collections or resources. // -// An operation that is done may be deleted so that it is no longer listed as -// part of the Operation collection. +// An operation that is not yet done may be cancelled. The request to cancel +// is asynchronous and the operation may continue to run for some time after the +// request to cancel is made. // -// ListOperations returns all pending operations, but not completed operations. +// An operation that is done may be deleted so that it is no longer listed as +// part of the Operation collection. // -// Operations are created by service DatastoreAdmin, -// but are accessed via service google.longrunning.Operations. +// ListOperations returns all pending operations, but not completed +// operations. +// +// Operations are created by service DatastoreAdmin, but are accessed via +// service google.longrunning.Operations. func NewDatastoreAdminClient(ctx context.Context, opts ...option.ClientOption) (*DatastoreAdminClient, error) { clientOpts := defaultDatastoreAdminGRPCClientOptions() if newDatastoreAdminClientHook != nil { @@ -545,8 +560,8 @@ type datastoreAdminRESTClient struct { // // The Datastore Admin API provides several admin services for Cloud Datastore. // -// ConceptsProject, namespace, kind, and entity as defined in the Google Cloud Datastore -// API. +// Concepts: Project, namespace, kind, and entity as defined in the Google Cloud +// Datastore API. // // Operation: An Operation represents work being performed in the background. // @@ -554,41 +569,48 @@ type datastoreAdminRESTClient struct { // specified as a combination of kinds and namespaces (either or both of which // may be all). // -// ServicesExport/ImportThe Export/Import service provides the ability to copy all or a subset of -// entities to/from Google Cloud Storage. +// Export/Import Service: +// +// The Export/Import service provides the ability to copy all or a subset of +// entities to/from Google Cloud Storage. +// +// Exported data may be imported into Cloud Datastore for any Google Cloud +// Platform project. It is not restricted to the export source project. It is +// possible to export from one project and then import into another. +// +// Exported data can also be loaded into Google BigQuery for analysis. // -// Exported data may be imported into Cloud Datastore for any Google Cloud -// Platform project. It is not restricted to the export source project. It is -// possible to export from one project and then import into another. +// Exports and imports are performed asynchronously. An Operation resource is +// created for each export/import. The state (including any errors encountered) +// of the export/import may be queried via the Operation resource. // -// Exported data can also be loaded into Google BigQuery for analysis. +// Index Service: // -// Exports and imports are performed asynchronously. An Operation resource is -// created for each export/import. The state (including any errors encountered) -// of the export/import may be queried via the Operation resource. +// The index service manages Cloud Datastore composite indexes. // -// IndexThe index service manages Cloud Datastore composite indexes. +// Index creation and deletion are performed asynchronously. +// An Operation resource is created for each such asynchronous operation. +// The state of the operation (including any errors encountered) +// may be queried via the Operation resource. // -// Index creation and deletion are performed asynchronously. -// An Operation resource is created for each such asynchronous operation. -// The state of the operation (including any errors encountered) -// may be queried via the Operation resource. +// Operation Service: // -// OperationThe Operations collection provides a record of actions performed for the -// specified project (including any operations in progress). Operations are not -// created directly but through calls on other collections or resources. +// The Operations collection provides a record of actions performed for the +// specified project (including any operations in progress). Operations are not +// created directly but through calls on other collections or resources. // -// An operation that is not yet done may be cancelled. The request to cancel is -// asynchronous and the operation may continue to run for some time after the -// request to cancel is made. +// An operation that is not yet done may be cancelled. The request to cancel +// is asynchronous and the operation may continue to run for some time after the +// request to cancel is made. // -// An operation that is done may be deleted so that it is no longer listed as -// part of the Operation collection. +// An operation that is done may be deleted so that it is no longer listed as +// part of the Operation collection. // -// ListOperations returns all pending operations, but not completed operations. +// ListOperations returns all pending operations, but not completed +// operations. // -// Operations are created by service DatastoreAdmin, -// but are accessed via service google.longrunning.Operations. +// Operations are created by service DatastoreAdmin, but are accessed via +// service google.longrunning.Operations. func NewDatastoreAdminRESTClient(ctx context.Context, opts ...option.ClientOption) (*DatastoreAdminClient, error) { clientOpts := append(defaultDatastoreAdminRESTClientOptions(), opts...) httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) @@ -1024,9 +1046,9 @@ func (c *datastoreAdminRESTClient) ImportEntities(ctx context.Context, req *admi // CreateIndex creates the specified index. // A newly created index’s initial state is CREATING. On completion of the -// returned google.longrunning.Operation, the state will be READY. -// If the index already exists, the call will return an ALREADY_EXISTS -// status. +// returned google.longrunning.Operation, the +// state will be READY. If the index already exists, the call will return an +// ALREADY_EXISTS status. // // During index creation, the process could result in an error, in which // case the index will move to the ERROR state. The process can be recovered @@ -1108,7 +1130,8 @@ func (c *datastoreAdminRESTClient) CreateIndex(ctx context.Context, req *adminpb // An index can only be deleted if it is in a READY or ERROR state. On // successful execution of the request, the index will be in a DELETING // state. And on completion of the -// returned google.longrunning.Operation, the index will be removed. +// returned google.longrunning.Operation, the +// index will be removed. // // During index deletion, the process could result in an error, in which // case the index will move to the ERROR state. The process can be recovered diff --git a/go.work b/go.work index 6bab6e12953..fb7d330eba6 100644 --- a/go.work +++ b/go.work @@ -93,6 +93,7 @@ use ( ./metastore ./migrationcenter ./monitoring + ./netapp ./networkconnectivity ./networkmanagement ./networksecurity diff --git a/internal/.repo-metadata-full.json b/internal/.repo-metadata-full.json index efb6587e6c2..19328bf7624 100644 --- a/internal/.repo-metadata-full.json +++ b/internal/.repo-metadata-full.json @@ -89,6 +89,16 @@ "release_level": "preview", "library_type": "GAPIC_AUTO" }, + "cloud.google.com/go/alloydb/connectors/apiv1alpha": { + "api_shortname": "connectors", + "distribution_name": "cloud.google.com/go/alloydb/connectors/apiv1alpha", + "description": "AlloyDB connectors", + "language": "go", + "client_library_type": "generated", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/alloydb/latest/connectors/apiv1alpha", + "release_level": "preview", + "library_type": "GAPIC_AUTO" + }, "cloud.google.com/go/analytics/admin/apiv1alpha": { "api_shortname": "analyticsadmin", "distribution_name": "cloud.google.com/go/analytics/admin/apiv1alpha", @@ -675,7 +685,7 @@ "description": "Container Analysis API", "language": "go", "client_library_type": "generated", - "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/latest/containeranalysis/apiv1beta1", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/containeranalysis/latest/apiv1beta1", "release_level": "preview", "library_type": "GAPIC_AUTO" }, @@ -1429,6 +1439,16 @@ "release_level": "stable", "library_type": "GAPIC_AUTO" }, + "cloud.google.com/go/netapp/apiv1": { + "api_shortname": "netapp", + "distribution_name": "cloud.google.com/go/netapp/apiv1", + "description": "NetApp API", + "language": "go", + "client_library_type": "generated", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/netapp/latest/apiv1", + "release_level": "preview", + "library_type": "GAPIC_AUTO" + }, "cloud.google.com/go/networkconnectivity/apiv1": { "api_shortname": "networkconnectivity", "distribution_name": "cloud.google.com/go/networkconnectivity/apiv1", diff --git a/internal/generated/snippets/datastore/admin/apiv1/snippet_metadata.google.datastore.admin.v1.json b/internal/generated/snippets/datastore/admin/apiv1/snippet_metadata.google.datastore.admin.v1.json index f896d9a0009..f263ddf1b28 100644 --- a/internal/generated/snippets/datastore/admin/apiv1/snippet_metadata.google.datastore.admin.v1.json +++ b/internal/generated/snippets/datastore/admin/apiv1/snippet_metadata.google.datastore.admin.v1.json @@ -59,7 +59,7 @@ { "regionTag": "datastore_v1_generated_DatastoreAdmin_CreateIndex_sync", "title": "datastore CreateIndex Sample", - "description": "CreateIndex creates the specified index.\nA newly created index's initial state is `CREATING`. On completion of the\nreturned [google.longrunning.Operation][google.longrunning.Operation], the state will be `READY`.\nIf the index already exists, the call will return an `ALREADY_EXISTS`\nstatus.\n\nDuring index creation, the process could result in an error, in which\ncase the index will move to the `ERROR` state. The process can be recovered\nby fixing the data that caused the error, removing the index with\n[delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex], then\nre-creating the index with [create]\n[google.datastore.admin.v1.DatastoreAdmin.CreateIndex].\n\nIndexes with a single property cannot be created.", + "description": "CreateIndex creates the specified index.\nA newly created index's initial state is `CREATING`. On completion of the\nreturned [google.longrunning.Operation][google.longrunning.Operation], the\nstate will be `READY`. If the index already exists, the call will return an\n`ALREADY_EXISTS` status.\n\nDuring index creation, the process could result in an error, in which\ncase the index will move to the `ERROR` state. The process can be recovered\nby fixing the data that caused the error, removing the index with\n[delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex], then\nre-creating the index with [create]\n[google.datastore.admin.v1.DatastoreAdmin.CreateIndex].\n\nIndexes with a single property cannot be created.", "file": "DatastoreAdminClient/CreateIndex/main.go", "language": "GO", "clientMethod": { @@ -105,7 +105,7 @@ { "regionTag": "datastore_v1_generated_DatastoreAdmin_DeleteIndex_sync", "title": "datastore DeleteIndex Sample", - "description": "DeleteIndex deletes an existing index.\nAn index can only be deleted if it is in a `READY` or `ERROR` state. On\nsuccessful execution of the request, the index will be in a `DELETING`\n[state][google.datastore.admin.v1.Index.State]. And on completion of the\nreturned [google.longrunning.Operation][google.longrunning.Operation], the index will be removed.\n\nDuring index deletion, the process could result in an error, in which\ncase the index will move to the `ERROR` state. The process can be recovered\nby fixing the data that caused the error, followed by calling\n[delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex] again.", + "description": "DeleteIndex deletes an existing index.\nAn index can only be deleted if it is in a `READY` or `ERROR` state. On\nsuccessful execution of the request, the index will be in a `DELETING`\n[state][google.datastore.admin.v1.Index.State]. And on completion of the\nreturned [google.longrunning.Operation][google.longrunning.Operation], the\nindex will be removed.\n\nDuring index deletion, the process could result in an error, in which\ncase the index will move to the `ERROR` state. The process can be recovered\nby fixing the data that caused the error, followed by calling\n[delete][google.datastore.admin.v1.DatastoreAdmin.DeleteIndex] again.", "file": "DatastoreAdminClient/DeleteIndex/main.go", "language": "GO", "clientMethod": { diff --git a/internal/generated/snippets/go.mod b/internal/generated/snippets/go.mod index d96c1032266..0ff56ded59b 100644 --- a/internal/generated/snippets/go.mod +++ b/internal/generated/snippets/go.mod @@ -436,3 +436,5 @@ replace cloud.google.com/go/ai => ../../../ai replace cloud.google.com/go/commerce => ../../../commerce replace cloud.google.com/go/policysimulator => ../../../policysimulator + +replace cloud.google.com/go/netapp => ../../../netapp diff --git a/internal/generated/snippets/netapp/apiv1/Client/CreateActiveDirectory/main.go b/internal/generated/snippets/netapp/apiv1/Client/CreateActiveDirectory/main.go new file mode 100644 index 00000000000..f36df25d194 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/CreateActiveDirectory/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_CreateActiveDirectory_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateActiveDirectoryRequest. + } + op, err := c.CreateActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_CreateActiveDirectory_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/CreateKmsConfig/main.go b/internal/generated/snippets/netapp/apiv1/Client/CreateKmsConfig/main.go new file mode 100644 index 00000000000..ea18b6a9c1e --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/CreateKmsConfig/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_CreateKmsConfig_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateKmsConfigRequest. + } + op, err := c.CreateKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_CreateKmsConfig_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/CreateReplication/main.go b/internal/generated/snippets/netapp/apiv1/Client/CreateReplication/main.go new file mode 100644 index 00000000000..9b0fb9164ff --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/CreateReplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_CreateReplication_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateReplicationRequest. + } + op, err := c.CreateReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_CreateReplication_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/CreateSnapshot/main.go b/internal/generated/snippets/netapp/apiv1/Client/CreateSnapshot/main.go new file mode 100644 index 00000000000..8d7fbca59e0 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/CreateSnapshot/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_CreateSnapshot_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateSnapshotRequest. + } + op, err := c.CreateSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_CreateSnapshot_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/CreateStoragePool/main.go b/internal/generated/snippets/netapp/apiv1/Client/CreateStoragePool/main.go new file mode 100644 index 00000000000..b1e83f966f2 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/CreateStoragePool/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_CreateStoragePool_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateStoragePoolRequest. + } + op, err := c.CreateStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_CreateStoragePool_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/CreateVolume/main.go b/internal/generated/snippets/netapp/apiv1/Client/CreateVolume/main.go new file mode 100644 index 00000000000..78bfae097e2 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/CreateVolume/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_CreateVolume_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateVolumeRequest. + } + op, err := c.CreateVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_CreateVolume_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/DeleteActiveDirectory/main.go b/internal/generated/snippets/netapp/apiv1/Client/DeleteActiveDirectory/main.go new file mode 100644 index 00000000000..07c050b53af --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/DeleteActiveDirectory/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_DeleteActiveDirectory_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteActiveDirectoryRequest. + } + op, err := c.DeleteActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END netapp_v1_generated_NetApp_DeleteActiveDirectory_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/DeleteKmsConfig/main.go b/internal/generated/snippets/netapp/apiv1/Client/DeleteKmsConfig/main.go new file mode 100644 index 00000000000..ee45159cb23 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/DeleteKmsConfig/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_DeleteKmsConfig_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteKmsConfigRequest. + } + op, err := c.DeleteKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END netapp_v1_generated_NetApp_DeleteKmsConfig_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/DeleteReplication/main.go b/internal/generated/snippets/netapp/apiv1/Client/DeleteReplication/main.go new file mode 100644 index 00000000000..8ecf5f62538 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/DeleteReplication/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_DeleteReplication_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteReplicationRequest. + } + op, err := c.DeleteReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END netapp_v1_generated_NetApp_DeleteReplication_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/DeleteSnapshot/main.go b/internal/generated/snippets/netapp/apiv1/Client/DeleteSnapshot/main.go new file mode 100644 index 00000000000..666af7139db --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/DeleteSnapshot/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_DeleteSnapshot_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteSnapshotRequest. + } + op, err := c.DeleteSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END netapp_v1_generated_NetApp_DeleteSnapshot_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/DeleteStoragePool/main.go b/internal/generated/snippets/netapp/apiv1/Client/DeleteStoragePool/main.go new file mode 100644 index 00000000000..ce7a9e60ac3 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/DeleteStoragePool/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_DeleteStoragePool_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteStoragePoolRequest. + } + op, err := c.DeleteStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END netapp_v1_generated_NetApp_DeleteStoragePool_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/DeleteVolume/main.go b/internal/generated/snippets/netapp/apiv1/Client/DeleteVolume/main.go new file mode 100644 index 00000000000..3ff128681bc --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/DeleteVolume/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_DeleteVolume_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteVolumeRequest. + } + op, err := c.DeleteVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END netapp_v1_generated_NetApp_DeleteVolume_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/EncryptVolumes/main.go b/internal/generated/snippets/netapp/apiv1/Client/EncryptVolumes/main.go new file mode 100644 index 00000000000..f42b5dc9092 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/EncryptVolumes/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_EncryptVolumes_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.EncryptVolumesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#EncryptVolumesRequest. + } + op, err := c.EncryptVolumes(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_EncryptVolumes_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/GetActiveDirectory/main.go b/internal/generated/snippets/netapp/apiv1/Client/GetActiveDirectory/main.go new file mode 100644 index 00000000000..4211485ca76 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/GetActiveDirectory/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_GetActiveDirectory_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetActiveDirectoryRequest. + } + resp, err := c.GetActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_GetActiveDirectory_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/GetKmsConfig/main.go b/internal/generated/snippets/netapp/apiv1/Client/GetKmsConfig/main.go new file mode 100644 index 00000000000..4ff9943533b --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/GetKmsConfig/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_GetKmsConfig_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetKmsConfigRequest. + } + resp, err := c.GetKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_GetKmsConfig_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/GetReplication/main.go b/internal/generated/snippets/netapp/apiv1/Client/GetReplication/main.go new file mode 100644 index 00000000000..83758b71663 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/GetReplication/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_GetReplication_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetReplicationRequest. + } + resp, err := c.GetReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_GetReplication_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/GetSnapshot/main.go b/internal/generated/snippets/netapp/apiv1/Client/GetSnapshot/main.go new file mode 100644 index 00000000000..4115e8dfa34 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/GetSnapshot/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_GetSnapshot_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetSnapshotRequest. + } + resp, err := c.GetSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_GetSnapshot_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/GetStoragePool/main.go b/internal/generated/snippets/netapp/apiv1/Client/GetStoragePool/main.go new file mode 100644 index 00000000000..d4d06b7f45b --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/GetStoragePool/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_GetStoragePool_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetStoragePoolRequest. + } + resp, err := c.GetStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_GetStoragePool_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/GetVolume/main.go b/internal/generated/snippets/netapp/apiv1/Client/GetVolume/main.go new file mode 100644 index 00000000000..c9dab02eae2 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/GetVolume/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_GetVolume_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetVolumeRequest. + } + resp, err := c.GetVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_GetVolume_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ListActiveDirectories/main.go b/internal/generated/snippets/netapp/apiv1/Client/ListActiveDirectories/main.go new file mode 100644 index 00000000000..3954633bb66 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ListActiveDirectories/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ListActiveDirectories_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListActiveDirectoriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListActiveDirectoriesRequest. + } + it := c.ListActiveDirectories(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END netapp_v1_generated_NetApp_ListActiveDirectories_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ListKmsConfigs/main.go b/internal/generated/snippets/netapp/apiv1/Client/ListKmsConfigs/main.go new file mode 100644 index 00000000000..0020f838699 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ListKmsConfigs/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ListKmsConfigs_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListKmsConfigsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListKmsConfigsRequest. + } + it := c.ListKmsConfigs(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END netapp_v1_generated_NetApp_ListKmsConfigs_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ListReplications/main.go b/internal/generated/snippets/netapp/apiv1/Client/ListReplications/main.go new file mode 100644 index 00000000000..89f0791b186 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ListReplications/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ListReplications_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListReplicationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListReplicationsRequest. + } + it := c.ListReplications(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END netapp_v1_generated_NetApp_ListReplications_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ListSnapshots/main.go b/internal/generated/snippets/netapp/apiv1/Client/ListSnapshots/main.go new file mode 100644 index 00000000000..75f262e1d0c --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ListSnapshots/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ListSnapshots_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListSnapshotsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListSnapshotsRequest. + } + it := c.ListSnapshots(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END netapp_v1_generated_NetApp_ListSnapshots_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ListStoragePools/main.go b/internal/generated/snippets/netapp/apiv1/Client/ListStoragePools/main.go new file mode 100644 index 00000000000..d3b6cbb82d6 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ListStoragePools/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ListStoragePools_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListStoragePoolsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListStoragePoolsRequest. + } + it := c.ListStoragePools(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END netapp_v1_generated_NetApp_ListStoragePools_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ListVolumes/main.go b/internal/generated/snippets/netapp/apiv1/Client/ListVolumes/main.go new file mode 100644 index 00000000000..e6abc6d16af --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ListVolumes/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ListVolumes_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListVolumesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListVolumesRequest. + } + it := c.ListVolumes(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END netapp_v1_generated_NetApp_ListVolumes_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ResumeReplication/main.go b/internal/generated/snippets/netapp/apiv1/Client/ResumeReplication/main.go new file mode 100644 index 00000000000..b1fbfa32cc2 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ResumeReplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ResumeReplication_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ResumeReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ResumeReplicationRequest. + } + op, err := c.ResumeReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_ResumeReplication_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/ReverseReplicationDirection/main.go b/internal/generated/snippets/netapp/apiv1/Client/ReverseReplicationDirection/main.go new file mode 100644 index 00000000000..5afc77c2d30 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/ReverseReplicationDirection/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_ReverseReplicationDirection_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ReverseReplicationDirectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ReverseReplicationDirectionRequest. + } + op, err := c.ReverseReplicationDirection(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_ReverseReplicationDirection_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/RevertVolume/main.go b/internal/generated/snippets/netapp/apiv1/Client/RevertVolume/main.go new file mode 100644 index 00000000000..3546434b529 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/RevertVolume/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_RevertVolume_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.RevertVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#RevertVolumeRequest. + } + op, err := c.RevertVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_RevertVolume_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/StopReplication/main.go b/internal/generated/snippets/netapp/apiv1/Client/StopReplication/main.go new file mode 100644 index 00000000000..f5595d495df --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/StopReplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_StopReplication_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.StopReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#StopReplicationRequest. + } + op, err := c.StopReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_StopReplication_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/UpdateActiveDirectory/main.go b/internal/generated/snippets/netapp/apiv1/Client/UpdateActiveDirectory/main.go new file mode 100644 index 00000000000..d942598084b --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/UpdateActiveDirectory/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_UpdateActiveDirectory_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateActiveDirectoryRequest. + } + op, err := c.UpdateActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_UpdateActiveDirectory_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/UpdateKmsConfig/main.go b/internal/generated/snippets/netapp/apiv1/Client/UpdateKmsConfig/main.go new file mode 100644 index 00000000000..e9f1550ebcb --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/UpdateKmsConfig/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_UpdateKmsConfig_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateKmsConfigRequest. + } + op, err := c.UpdateKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_UpdateKmsConfig_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/UpdateReplication/main.go b/internal/generated/snippets/netapp/apiv1/Client/UpdateReplication/main.go new file mode 100644 index 00000000000..a76bf58f0f7 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/UpdateReplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_UpdateReplication_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateReplicationRequest. + } + op, err := c.UpdateReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_UpdateReplication_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/UpdateSnapshot/main.go b/internal/generated/snippets/netapp/apiv1/Client/UpdateSnapshot/main.go new file mode 100644 index 00000000000..cd0a08ada82 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/UpdateSnapshot/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_UpdateSnapshot_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateSnapshotRequest. + } + op, err := c.UpdateSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_UpdateSnapshot_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/UpdateStoragePool/main.go b/internal/generated/snippets/netapp/apiv1/Client/UpdateStoragePool/main.go new file mode 100644 index 00000000000..9ab671d31e1 --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/UpdateStoragePool/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_UpdateStoragePool_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateStoragePoolRequest. + } + op, err := c.UpdateStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_UpdateStoragePool_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/UpdateVolume/main.go b/internal/generated/snippets/netapp/apiv1/Client/UpdateVolume/main.go new file mode 100644 index 00000000000..9ef135ddc3c --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/UpdateVolume/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_UpdateVolume_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateVolumeRequest. + } + op, err := c.UpdateVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_UpdateVolume_sync] diff --git a/internal/generated/snippets/netapp/apiv1/Client/VerifyKmsConfig/main.go b/internal/generated/snippets/netapp/apiv1/Client/VerifyKmsConfig/main.go new file mode 100644 index 00000000000..da0038ac8fa --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/Client/VerifyKmsConfig/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START netapp_v1_generated_NetApp_VerifyKmsConfig_sync] + +package main + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.VerifyKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#VerifyKmsConfigRequest. + } + resp, err := c.VerifyKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END netapp_v1_generated_NetApp_VerifyKmsConfig_sync] diff --git a/internal/generated/snippets/netapp/apiv1/snippet_metadata.google.cloud.netapp.v1.json b/internal/generated/snippets/netapp/apiv1/snippet_metadata.google.cloud.netapp.v1.json new file mode 100644 index 00000000000..fb970edfc1d --- /dev/null +++ b/internal/generated/snippets/netapp/apiv1/snippet_metadata.google.cloud.netapp.v1.json @@ -0,0 +1,1671 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/netapp/apiv1", + "version": "0.0.0", + "language": "GO", + "apis": [ + { + "id": "google.cloud.netapp.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "regionTag": "netapp_v1_generated_NetApp_CreateActiveDirectory_sync", + "title": "netapp CreateActiveDirectory Sample", + "description": "CreateActiveDirectory createActiveDirectory\nCreates the active directory specified in the request.", + "file": "Client/CreateActiveDirectory/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateActiveDirectory", + "fullName": "google.cloud.netapp.v1.Client.CreateActiveDirectory", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.CreateActiveDirectoryRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateActiveDirectoryOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "CreateActiveDirectory", + "fullName": "google.cloud.netapp.v1.NetApp.CreateActiveDirectory", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_CreateKmsConfig_sync", + "title": "netapp CreateKmsConfig Sample", + "description": "CreateKmsConfig creates a new KMS config.", + "file": "Client/CreateKmsConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateKmsConfig", + "fullName": "google.cloud.netapp.v1.Client.CreateKmsConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.CreateKmsConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateKmsConfigOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "CreateKmsConfig", + "fullName": "google.cloud.netapp.v1.NetApp.CreateKmsConfig", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_CreateReplication_sync", + "title": "netapp CreateReplication Sample", + "description": "CreateReplication create a new replication for a volume.", + "file": "Client/CreateReplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateReplication", + "fullName": "google.cloud.netapp.v1.Client.CreateReplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.CreateReplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateReplicationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "CreateReplication", + "fullName": "google.cloud.netapp.v1.NetApp.CreateReplication", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_CreateSnapshot_sync", + "title": "netapp CreateSnapshot Sample", + "description": "CreateSnapshot create a new snapshot for a volume.", + "file": "Client/CreateSnapshot/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSnapshot", + "fullName": "google.cloud.netapp.v1.Client.CreateSnapshot", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.CreateSnapshotRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateSnapshotOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "CreateSnapshot", + "fullName": "google.cloud.netapp.v1.NetApp.CreateSnapshot", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_CreateStoragePool_sync", + "title": "netapp CreateStoragePool Sample", + "description": "CreateStoragePool creates a new storage pool.", + "file": "Client/CreateStoragePool/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateStoragePool", + "fullName": "google.cloud.netapp.v1.Client.CreateStoragePool", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.CreateStoragePoolRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateStoragePoolOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "CreateStoragePool", + "fullName": "google.cloud.netapp.v1.NetApp.CreateStoragePool", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_CreateVolume_sync", + "title": "netapp CreateVolume Sample", + "description": "CreateVolume creates a new Volume in a given project and location.", + "file": "Client/CreateVolume/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateVolume", + "fullName": "google.cloud.netapp.v1.Client.CreateVolume", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.CreateVolumeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateVolumeOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "CreateVolume", + "fullName": "google.cloud.netapp.v1.NetApp.CreateVolume", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_DeleteActiveDirectory_sync", + "title": "netapp DeleteActiveDirectory Sample", + "description": "DeleteActiveDirectory delete the active directory specified in the request.", + "file": "Client/DeleteActiveDirectory/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteActiveDirectory", + "fullName": "google.cloud.netapp.v1.Client.DeleteActiveDirectory", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.DeleteActiveDirectoryRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteActiveDirectoryOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "DeleteActiveDirectory", + "fullName": "google.cloud.netapp.v1.NetApp.DeleteActiveDirectory", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_DeleteKmsConfig_sync", + "title": "netapp DeleteKmsConfig Sample", + "description": "DeleteKmsConfig warning! This operation will permanently delete the Kms config.", + "file": "Client/DeleteKmsConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteKmsConfig", + "fullName": "google.cloud.netapp.v1.Client.DeleteKmsConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.DeleteKmsConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteKmsConfigOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "DeleteKmsConfig", + "fullName": "google.cloud.netapp.v1.NetApp.DeleteKmsConfig", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_DeleteReplication_sync", + "title": "netapp DeleteReplication Sample", + "description": "DeleteReplication deletes a replication.", + "file": "Client/DeleteReplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteReplication", + "fullName": "google.cloud.netapp.v1.Client.DeleteReplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.DeleteReplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteReplicationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "DeleteReplication", + "fullName": "google.cloud.netapp.v1.NetApp.DeleteReplication", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_DeleteSnapshot_sync", + "title": "netapp DeleteSnapshot Sample", + "description": "DeleteSnapshot deletes a snapshot.", + "file": "Client/DeleteSnapshot/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSnapshot", + "fullName": "google.cloud.netapp.v1.Client.DeleteSnapshot", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.DeleteSnapshotRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteSnapshotOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "DeleteSnapshot", + "fullName": "google.cloud.netapp.v1.NetApp.DeleteSnapshot", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_DeleteStoragePool_sync", + "title": "netapp DeleteStoragePool Sample", + "description": "DeleteStoragePool warning! This operation will permanently delete the storage pool.", + "file": "Client/DeleteStoragePool/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteStoragePool", + "fullName": "google.cloud.netapp.v1.Client.DeleteStoragePool", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.DeleteStoragePoolRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteStoragePoolOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "DeleteStoragePool", + "fullName": "google.cloud.netapp.v1.NetApp.DeleteStoragePool", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_DeleteVolume_sync", + "title": "netapp DeleteVolume Sample", + "description": "DeleteVolume deletes a single Volume.", + "file": "Client/DeleteVolume/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteVolume", + "fullName": "google.cloud.netapp.v1.Client.DeleteVolume", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.DeleteVolumeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteVolumeOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "DeleteVolume", + "fullName": "google.cloud.netapp.v1.NetApp.DeleteVolume", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_EncryptVolumes_sync", + "title": "netapp EncryptVolumes Sample", + "description": "EncryptVolumes encrypt the existing volumes without CMEK encryption with the desired the\nKMS config for the whole region.", + "file": "Client/EncryptVolumes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "EncryptVolumes", + "fullName": "google.cloud.netapp.v1.Client.EncryptVolumes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.EncryptVolumesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "EncryptVolumesOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "EncryptVolumes", + "fullName": "google.cloud.netapp.v1.NetApp.EncryptVolumes", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_GetActiveDirectory_sync", + "title": "netapp GetActiveDirectory Sample", + "description": "GetActiveDirectory describes a specified active directory.", + "file": "Client/GetActiveDirectory/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetActiveDirectory", + "fullName": "google.cloud.netapp.v1.Client.GetActiveDirectory", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.GetActiveDirectoryRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*netapppb.ActiveDirectory", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "GetActiveDirectory", + "fullName": "google.cloud.netapp.v1.NetApp.GetActiveDirectory", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_GetKmsConfig_sync", + "title": "netapp GetKmsConfig Sample", + "description": "GetKmsConfig returns the description of the specified KMS config by kms_config_id.", + "file": "Client/GetKmsConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetKmsConfig", + "fullName": "google.cloud.netapp.v1.Client.GetKmsConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.GetKmsConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*netapppb.KmsConfig", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "GetKmsConfig", + "fullName": "google.cloud.netapp.v1.NetApp.GetKmsConfig", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_GetReplication_sync", + "title": "netapp GetReplication Sample", + "description": "GetReplication describe a replication for a volume.", + "file": "Client/GetReplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetReplication", + "fullName": "google.cloud.netapp.v1.Client.GetReplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.GetReplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*netapppb.Replication", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "GetReplication", + "fullName": "google.cloud.netapp.v1.NetApp.GetReplication", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_GetSnapshot_sync", + "title": "netapp GetSnapshot Sample", + "description": "GetSnapshot describe a snapshot for a volume.", + "file": "Client/GetSnapshot/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSnapshot", + "fullName": "google.cloud.netapp.v1.Client.GetSnapshot", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.GetSnapshotRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*netapppb.Snapshot", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "GetSnapshot", + "fullName": "google.cloud.netapp.v1.NetApp.GetSnapshot", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_GetStoragePool_sync", + "title": "netapp GetStoragePool Sample", + "description": "GetStoragePool returns the description of the specified storage pool by poolId.", + "file": "Client/GetStoragePool/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetStoragePool", + "fullName": "google.cloud.netapp.v1.Client.GetStoragePool", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.GetStoragePoolRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*netapppb.StoragePool", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "GetStoragePool", + "fullName": "google.cloud.netapp.v1.NetApp.GetStoragePool", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_GetVolume_sync", + "title": "netapp GetVolume Sample", + "description": "GetVolume gets details of a single Volume.", + "file": "Client/GetVolume/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetVolume", + "fullName": "google.cloud.netapp.v1.Client.GetVolume", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.GetVolumeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*netapppb.Volume", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "GetVolume", + "fullName": "google.cloud.netapp.v1.NetApp.GetVolume", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ListActiveDirectories_sync", + "title": "netapp ListActiveDirectories Sample", + "description": "ListActiveDirectories lists active directories.", + "file": "Client/ListActiveDirectories/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListActiveDirectories", + "fullName": "google.cloud.netapp.v1.Client.ListActiveDirectories", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ListActiveDirectoriesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ActiveDirectoryIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ListActiveDirectories", + "fullName": "google.cloud.netapp.v1.NetApp.ListActiveDirectories", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ListKmsConfigs_sync", + "title": "netapp ListKmsConfigs Sample", + "description": "ListKmsConfigs returns descriptions of all KMS configs owned by the caller.", + "file": "Client/ListKmsConfigs/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListKmsConfigs", + "fullName": "google.cloud.netapp.v1.Client.ListKmsConfigs", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ListKmsConfigsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "KmsConfigIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ListKmsConfigs", + "fullName": "google.cloud.netapp.v1.NetApp.ListKmsConfigs", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ListReplications_sync", + "title": "netapp ListReplications Sample", + "description": "ListReplications returns descriptions of all replications for a volume.", + "file": "Client/ListReplications/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListReplications", + "fullName": "google.cloud.netapp.v1.Client.ListReplications", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ListReplicationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ReplicationIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ListReplications", + "fullName": "google.cloud.netapp.v1.NetApp.ListReplications", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ListSnapshots_sync", + "title": "netapp ListSnapshots Sample", + "description": "ListSnapshots returns descriptions of all snapshots for a volume.", + "file": "Client/ListSnapshots/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSnapshots", + "fullName": "google.cloud.netapp.v1.Client.ListSnapshots", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ListSnapshotsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SnapshotIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ListSnapshots", + "fullName": "google.cloud.netapp.v1.NetApp.ListSnapshots", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ListStoragePools_sync", + "title": "netapp ListStoragePools Sample", + "description": "ListStoragePools returns descriptions of all storage pools owned by the caller.", + "file": "Client/ListStoragePools/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListStoragePools", + "fullName": "google.cloud.netapp.v1.Client.ListStoragePools", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ListStoragePoolsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "StoragePoolIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ListStoragePools", + "fullName": "google.cloud.netapp.v1.NetApp.ListStoragePools", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ListVolumes_sync", + "title": "netapp ListVolumes Sample", + "description": "ListVolumes lists Volumes in a given project.", + "file": "Client/ListVolumes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListVolumes", + "fullName": "google.cloud.netapp.v1.Client.ListVolumes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ListVolumesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "VolumeIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ListVolumes", + "fullName": "google.cloud.netapp.v1.NetApp.ListVolumes", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ResumeReplication_sync", + "title": "netapp ResumeReplication Sample", + "description": "ResumeReplication resume Cross Region Replication.", + "file": "Client/ResumeReplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ResumeReplication", + "fullName": "google.cloud.netapp.v1.Client.ResumeReplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ResumeReplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ResumeReplicationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ResumeReplication", + "fullName": "google.cloud.netapp.v1.NetApp.ResumeReplication", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_ReverseReplicationDirection_sync", + "title": "netapp ReverseReplicationDirection Sample", + "description": "ReverseReplicationDirection reverses direction of replication. Source becomes destination and\ndestination becomes source.", + "file": "Client/ReverseReplicationDirection/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ReverseReplicationDirection", + "fullName": "google.cloud.netapp.v1.Client.ReverseReplicationDirection", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.ReverseReplicationDirectionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ReverseReplicationDirectionOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "ReverseReplicationDirection", + "fullName": "google.cloud.netapp.v1.NetApp.ReverseReplicationDirection", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_RevertVolume_sync", + "title": "netapp RevertVolume Sample", + "description": "RevertVolume revert an existing volume to a specified snapshot.\nWarning! This operation will permanently revert all changes made after the\nsnapshot was created.", + "file": "Client/RevertVolume/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RevertVolume", + "fullName": "google.cloud.netapp.v1.Client.RevertVolume", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.RevertVolumeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RevertVolumeOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "RevertVolume", + "fullName": "google.cloud.netapp.v1.NetApp.RevertVolume", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_StopReplication_sync", + "title": "netapp StopReplication Sample", + "description": "StopReplication stop Cross Region Replication.", + "file": "Client/StopReplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "StopReplication", + "fullName": "google.cloud.netapp.v1.Client.StopReplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.StopReplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "StopReplicationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "StopReplication", + "fullName": "google.cloud.netapp.v1.NetApp.StopReplication", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_UpdateActiveDirectory_sync", + "title": "netapp UpdateActiveDirectory Sample", + "description": "UpdateActiveDirectory update the parameters of an active directories.", + "file": "Client/UpdateActiveDirectory/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateActiveDirectory", + "fullName": "google.cloud.netapp.v1.Client.UpdateActiveDirectory", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.UpdateActiveDirectoryRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateActiveDirectoryOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "UpdateActiveDirectory", + "fullName": "google.cloud.netapp.v1.NetApp.UpdateActiveDirectory", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_UpdateKmsConfig_sync", + "title": "netapp UpdateKmsConfig Sample", + "description": "UpdateKmsConfig updates the Kms config properties with the full spec", + "file": "Client/UpdateKmsConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateKmsConfig", + "fullName": "google.cloud.netapp.v1.Client.UpdateKmsConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.UpdateKmsConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateKmsConfigOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "UpdateKmsConfig", + "fullName": "google.cloud.netapp.v1.NetApp.UpdateKmsConfig", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_UpdateReplication_sync", + "title": "netapp UpdateReplication Sample", + "description": "UpdateReplication updates the settings of a specific replication.", + "file": "Client/UpdateReplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateReplication", + "fullName": "google.cloud.netapp.v1.Client.UpdateReplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.UpdateReplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateReplicationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "UpdateReplication", + "fullName": "google.cloud.netapp.v1.NetApp.UpdateReplication", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_UpdateSnapshot_sync", + "title": "netapp UpdateSnapshot Sample", + "description": "UpdateSnapshot updates the settings of a specific snapshot.", + "file": "Client/UpdateSnapshot/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSnapshot", + "fullName": "google.cloud.netapp.v1.Client.UpdateSnapshot", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.UpdateSnapshotRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateSnapshotOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "UpdateSnapshot", + "fullName": "google.cloud.netapp.v1.NetApp.UpdateSnapshot", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_UpdateStoragePool_sync", + "title": "netapp UpdateStoragePool Sample", + "description": "UpdateStoragePool updates the storage pool properties with the full spec", + "file": "Client/UpdateStoragePool/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateStoragePool", + "fullName": "google.cloud.netapp.v1.Client.UpdateStoragePool", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.UpdateStoragePoolRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateStoragePoolOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "UpdateStoragePool", + "fullName": "google.cloud.netapp.v1.NetApp.UpdateStoragePool", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_UpdateVolume_sync", + "title": "netapp UpdateVolume Sample", + "description": "UpdateVolume updates the parameters of a single Volume.", + "file": "Client/UpdateVolume/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateVolume", + "fullName": "google.cloud.netapp.v1.Client.UpdateVolume", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.UpdateVolumeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateVolumeOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "UpdateVolume", + "fullName": "google.cloud.netapp.v1.NetApp.UpdateVolume", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "netapp_v1_generated_NetApp_VerifyKmsConfig_sync", + "title": "netapp VerifyKmsConfig Sample", + "description": "VerifyKmsConfig verifies KMS config reachability.", + "file": "Client/VerifyKmsConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "VerifyKmsConfig", + "fullName": "google.cloud.netapp.v1.Client.VerifyKmsConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "netapppb.VerifyKmsConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*netapppb.VerifyKmsConfigResponse", + "client": { + "shortName": "Client", + "fullName": "google.cloud.netapp.v1.Client" + }, + "method": { + "shortName": "VerifyKmsConfig", + "fullName": "google.cloud.netapp.v1.NetApp.VerifyKmsConfig", + "service": { + "shortName": "NetApp", + "fullName": "google.cloud.netapp.v1.NetApp" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/netapp/CHANGES.md b/netapp/CHANGES.md new file mode 100644 index 00000000000..b671f0bbcdd --- /dev/null +++ b/netapp/CHANGES.md @@ -0,0 +1 @@ +# Changes diff --git a/netapp/README.md b/netapp/README.md new file mode 100644 index 00000000000..5e6286504ac --- /dev/null +++ b/netapp/README.md @@ -0,0 +1,44 @@ +# NetApp API + +[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/netapp.svg)](https://pkg.go.dev/cloud.google.com/go/netapp) + +Go Client Library for NetApp API. + +## Install + +```bash +go get cloud.google.com/go/netapp +``` + +## Stability + +The stability of this module is indicated by SemVer. + +However, a `v1+` module may have breaking changes in two scenarios: + +* Packages with `alpha` or `beta` in the import path +* The GoDoc has an explicit stability disclaimer (for example, for an experimental feature). + +## Google Cloud Samples + +To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples?l=go). + +## Go Version Support + +See the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported) +section in the root directory's README. + +## Authorization + +See the [Authorization](https://github.com/googleapis/google-cloud-go#authorization) +section in the root directory's README. + +## Contributing + +Contributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md) +document for details. + +Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms. See +[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct) +for more information. diff --git a/netapp/apiv1/doc.go b/netapp/apiv1/doc.go new file mode 100755 index 00000000000..bdcd9956b0c --- /dev/null +++ b/netapp/apiv1/doc.go @@ -0,0 +1,146 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// Package netapp is an auto-generated package for the +// NetApp API. +// +// Google Cloud NetApp Volumes is a fully-managed, cloud-based data storage +// service that provides advanced data management capabilities and highly +// scalable performance with global availability. +// +// NOTE: This package is in beta. It is not stable, and may be subject to changes. +// +// # General documentation +// +// For information about setting deadlines, reusing contexts, and more +// please visit https://pkg.go.dev/cloud.google.com/go. +// +// # Example usage +// +// To get started with this package, create a client. +// +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := netapp.NewClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// # Using the Client +// +// The following is an example of making an API call with the newly created client. +// +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := netapp.NewClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// req := &netapppb.ListStoragePoolsRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListStoragePoolsRequest. +// } +// it := c.ListStoragePools(ctx, req) +// for { +// resp, err := it.Next() +// if err == iterator.Done { +// break +// } +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// } +// +// # Inspecting errors +// +// To see examples of how to inspect errors returned by this package please reference +// [Inspecting errors](https://pkg.go.dev/cloud.google.com/go#hdr-Inspecting_errors). +// +// # Use of Context +// +// The ctx passed to NewClient is used for authentication requests and +// for creating the underlying connection, but is not used for subsequent calls. +// Individual methods on the client use the ctx given to them. +// +// To close the open connection, use the Close() method. +package netapp // import "cloud.google.com/go/netapp/apiv1" + +import ( + "context" + "net/http" + + "google.golang.org/api/option" + "google.golang.org/grpc/metadata" +) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} + +func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { + out, _ := metadata.FromOutgoingContext(ctx) + out = out.Copy() + for _, md := range mds { + for k, v := range md { + out[k] = append(out[k], v...) + } + } + return metadata.NewOutgoingContext(ctx, out) +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "https://www.googleapis.com/auth/cloud-platform", + } +} + +// buildHeaders extracts metadata from the outgoing context, joins it with any other +// given metadata, and converts them into a http.Header. +func buildHeaders(ctx context.Context, mds ...metadata.MD) http.Header { + if cmd, ok := metadata.FromOutgoingContext(ctx); ok { + mds = append(mds, cmd) + } + md := metadata.Join(mds...) + return http.Header(md) +} diff --git a/netapp/apiv1/gapic_metadata.json b/netapp/apiv1/gapic_metadata.json new file mode 100644 index 00000000000..f5e1e0e1027 --- /dev/null +++ b/netapp/apiv1/gapic_metadata.json @@ -0,0 +1,383 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.cloud.netapp.v1", + "libraryPackage": "cloud.google.com/go/netapp/apiv1", + "services": { + "NetApp": { + "clients": { + "grpc": { + "libraryClient": "Client", + "rpcs": { + "CreateActiveDirectory": { + "methods": [ + "CreateActiveDirectory" + ] + }, + "CreateKmsConfig": { + "methods": [ + "CreateKmsConfig" + ] + }, + "CreateReplication": { + "methods": [ + "CreateReplication" + ] + }, + "CreateSnapshot": { + "methods": [ + "CreateSnapshot" + ] + }, + "CreateStoragePool": { + "methods": [ + "CreateStoragePool" + ] + }, + "CreateVolume": { + "methods": [ + "CreateVolume" + ] + }, + "DeleteActiveDirectory": { + "methods": [ + "DeleteActiveDirectory" + ] + }, + "DeleteKmsConfig": { + "methods": [ + "DeleteKmsConfig" + ] + }, + "DeleteReplication": { + "methods": [ + "DeleteReplication" + ] + }, + "DeleteSnapshot": { + "methods": [ + "DeleteSnapshot" + ] + }, + "DeleteStoragePool": { + "methods": [ + "DeleteStoragePool" + ] + }, + "DeleteVolume": { + "methods": [ + "DeleteVolume" + ] + }, + "EncryptVolumes": { + "methods": [ + "EncryptVolumes" + ] + }, + "GetActiveDirectory": { + "methods": [ + "GetActiveDirectory" + ] + }, + "GetKmsConfig": { + "methods": [ + "GetKmsConfig" + ] + }, + "GetReplication": { + "methods": [ + "GetReplication" + ] + }, + "GetSnapshot": { + "methods": [ + "GetSnapshot" + ] + }, + "GetStoragePool": { + "methods": [ + "GetStoragePool" + ] + }, + "GetVolume": { + "methods": [ + "GetVolume" + ] + }, + "ListActiveDirectories": { + "methods": [ + "ListActiveDirectories" + ] + }, + "ListKmsConfigs": { + "methods": [ + "ListKmsConfigs" + ] + }, + "ListReplications": { + "methods": [ + "ListReplications" + ] + }, + "ListSnapshots": { + "methods": [ + "ListSnapshots" + ] + }, + "ListStoragePools": { + "methods": [ + "ListStoragePools" + ] + }, + "ListVolumes": { + "methods": [ + "ListVolumes" + ] + }, + "ResumeReplication": { + "methods": [ + "ResumeReplication" + ] + }, + "ReverseReplicationDirection": { + "methods": [ + "ReverseReplicationDirection" + ] + }, + "RevertVolume": { + "methods": [ + "RevertVolume" + ] + }, + "StopReplication": { + "methods": [ + "StopReplication" + ] + }, + "UpdateActiveDirectory": { + "methods": [ + "UpdateActiveDirectory" + ] + }, + "UpdateKmsConfig": { + "methods": [ + "UpdateKmsConfig" + ] + }, + "UpdateReplication": { + "methods": [ + "UpdateReplication" + ] + }, + "UpdateSnapshot": { + "methods": [ + "UpdateSnapshot" + ] + }, + "UpdateStoragePool": { + "methods": [ + "UpdateStoragePool" + ] + }, + "UpdateVolume": { + "methods": [ + "UpdateVolume" + ] + }, + "VerifyKmsConfig": { + "methods": [ + "VerifyKmsConfig" + ] + } + } + }, + "rest": { + "libraryClient": "Client", + "rpcs": { + "CreateActiveDirectory": { + "methods": [ + "CreateActiveDirectory" + ] + }, + "CreateKmsConfig": { + "methods": [ + "CreateKmsConfig" + ] + }, + "CreateReplication": { + "methods": [ + "CreateReplication" + ] + }, + "CreateSnapshot": { + "methods": [ + "CreateSnapshot" + ] + }, + "CreateStoragePool": { + "methods": [ + "CreateStoragePool" + ] + }, + "CreateVolume": { + "methods": [ + "CreateVolume" + ] + }, + "DeleteActiveDirectory": { + "methods": [ + "DeleteActiveDirectory" + ] + }, + "DeleteKmsConfig": { + "methods": [ + "DeleteKmsConfig" + ] + }, + "DeleteReplication": { + "methods": [ + "DeleteReplication" + ] + }, + "DeleteSnapshot": { + "methods": [ + "DeleteSnapshot" + ] + }, + "DeleteStoragePool": { + "methods": [ + "DeleteStoragePool" + ] + }, + "DeleteVolume": { + "methods": [ + "DeleteVolume" + ] + }, + "EncryptVolumes": { + "methods": [ + "EncryptVolumes" + ] + }, + "GetActiveDirectory": { + "methods": [ + "GetActiveDirectory" + ] + }, + "GetKmsConfig": { + "methods": [ + "GetKmsConfig" + ] + }, + "GetReplication": { + "methods": [ + "GetReplication" + ] + }, + "GetSnapshot": { + "methods": [ + "GetSnapshot" + ] + }, + "GetStoragePool": { + "methods": [ + "GetStoragePool" + ] + }, + "GetVolume": { + "methods": [ + "GetVolume" + ] + }, + "ListActiveDirectories": { + "methods": [ + "ListActiveDirectories" + ] + }, + "ListKmsConfigs": { + "methods": [ + "ListKmsConfigs" + ] + }, + "ListReplications": { + "methods": [ + "ListReplications" + ] + }, + "ListSnapshots": { + "methods": [ + "ListSnapshots" + ] + }, + "ListStoragePools": { + "methods": [ + "ListStoragePools" + ] + }, + "ListVolumes": { + "methods": [ + "ListVolumes" + ] + }, + "ResumeReplication": { + "methods": [ + "ResumeReplication" + ] + }, + "ReverseReplicationDirection": { + "methods": [ + "ReverseReplicationDirection" + ] + }, + "RevertVolume": { + "methods": [ + "RevertVolume" + ] + }, + "StopReplication": { + "methods": [ + "StopReplication" + ] + }, + "UpdateActiveDirectory": { + "methods": [ + "UpdateActiveDirectory" + ] + }, + "UpdateKmsConfig": { + "methods": [ + "UpdateKmsConfig" + ] + }, + "UpdateReplication": { + "methods": [ + "UpdateReplication" + ] + }, + "UpdateSnapshot": { + "methods": [ + "UpdateSnapshot" + ] + }, + "UpdateStoragePool": { + "methods": [ + "UpdateStoragePool" + ] + }, + "UpdateVolume": { + "methods": [ + "UpdateVolume" + ] + }, + "VerifyKmsConfig": { + "methods": [ + "VerifyKmsConfig" + ] + } + } + } + } + } + } +} diff --git a/netapp/apiv1/net_app_client.go b/netapp/apiv1/net_app_client.go new file mode 100755 index 00000000000..ecbb35b4ebd --- /dev/null +++ b/netapp/apiv1/net_app_client.go @@ -0,0 +1,6629 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package netapp + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + "time" + + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/metadata" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newClientHook clientHook + +// CallOptions contains the retry settings for each method of Client. +type CallOptions struct { + ListStoragePools []gax.CallOption + CreateStoragePool []gax.CallOption + GetStoragePool []gax.CallOption + UpdateStoragePool []gax.CallOption + DeleteStoragePool []gax.CallOption + ListVolumes []gax.CallOption + GetVolume []gax.CallOption + CreateVolume []gax.CallOption + UpdateVolume []gax.CallOption + DeleteVolume []gax.CallOption + RevertVolume []gax.CallOption + ListSnapshots []gax.CallOption + GetSnapshot []gax.CallOption + CreateSnapshot []gax.CallOption + DeleteSnapshot []gax.CallOption + UpdateSnapshot []gax.CallOption + ListActiveDirectories []gax.CallOption + GetActiveDirectory []gax.CallOption + CreateActiveDirectory []gax.CallOption + UpdateActiveDirectory []gax.CallOption + DeleteActiveDirectory []gax.CallOption + ListKmsConfigs []gax.CallOption + CreateKmsConfig []gax.CallOption + GetKmsConfig []gax.CallOption + UpdateKmsConfig []gax.CallOption + EncryptVolumes []gax.CallOption + VerifyKmsConfig []gax.CallOption + DeleteKmsConfig []gax.CallOption + ListReplications []gax.CallOption + GetReplication []gax.CallOption + CreateReplication []gax.CallOption + DeleteReplication []gax.CallOption + UpdateReplication []gax.CallOption + StopReplication []gax.CallOption + ResumeReplication []gax.CallOption + ReverseReplicationDirection []gax.CallOption +} + +func defaultGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("netapp.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("netapp.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://netapp.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultCallOptions() *CallOptions { + return &CallOptions{ + ListStoragePools: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListVolumes: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + RevertVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListSnapshots: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListActiveDirectories: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListKmsConfigs: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + EncryptVolumes: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + VerifyKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListReplications: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + StopReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ResumeReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ReverseReplicationDirection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + } +} + +func defaultRESTCallOptions() *CallOptions { + return &CallOptions{ + ListStoragePools: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteStoragePool: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListVolumes: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + RevertVolume: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListSnapshots: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateSnapshot: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListActiveDirectories: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteActiveDirectory: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListKmsConfigs: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + EncryptVolumes: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + VerifyKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteKmsConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListReplications: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + StopReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ResumeReplication: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ReverseReplicationDirection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + } +} + +// internalClient is an interface that defines the methods available from NetApp API. +type internalClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListStoragePools(context.Context, *netapppb.ListStoragePoolsRequest, ...gax.CallOption) *StoragePoolIterator + CreateStoragePool(context.Context, *netapppb.CreateStoragePoolRequest, ...gax.CallOption) (*CreateStoragePoolOperation, error) + CreateStoragePoolOperation(name string) *CreateStoragePoolOperation + GetStoragePool(context.Context, *netapppb.GetStoragePoolRequest, ...gax.CallOption) (*netapppb.StoragePool, error) + UpdateStoragePool(context.Context, *netapppb.UpdateStoragePoolRequest, ...gax.CallOption) (*UpdateStoragePoolOperation, error) + UpdateStoragePoolOperation(name string) *UpdateStoragePoolOperation + DeleteStoragePool(context.Context, *netapppb.DeleteStoragePoolRequest, ...gax.CallOption) (*DeleteStoragePoolOperation, error) + DeleteStoragePoolOperation(name string) *DeleteStoragePoolOperation + ListVolumes(context.Context, *netapppb.ListVolumesRequest, ...gax.CallOption) *VolumeIterator + GetVolume(context.Context, *netapppb.GetVolumeRequest, ...gax.CallOption) (*netapppb.Volume, error) + CreateVolume(context.Context, *netapppb.CreateVolumeRequest, ...gax.CallOption) (*CreateVolumeOperation, error) + CreateVolumeOperation(name string) *CreateVolumeOperation + UpdateVolume(context.Context, *netapppb.UpdateVolumeRequest, ...gax.CallOption) (*UpdateVolumeOperation, error) + UpdateVolumeOperation(name string) *UpdateVolumeOperation + DeleteVolume(context.Context, *netapppb.DeleteVolumeRequest, ...gax.CallOption) (*DeleteVolumeOperation, error) + DeleteVolumeOperation(name string) *DeleteVolumeOperation + RevertVolume(context.Context, *netapppb.RevertVolumeRequest, ...gax.CallOption) (*RevertVolumeOperation, error) + RevertVolumeOperation(name string) *RevertVolumeOperation + ListSnapshots(context.Context, *netapppb.ListSnapshotsRequest, ...gax.CallOption) *SnapshotIterator + GetSnapshot(context.Context, *netapppb.GetSnapshotRequest, ...gax.CallOption) (*netapppb.Snapshot, error) + CreateSnapshot(context.Context, *netapppb.CreateSnapshotRequest, ...gax.CallOption) (*CreateSnapshotOperation, error) + CreateSnapshotOperation(name string) *CreateSnapshotOperation + DeleteSnapshot(context.Context, *netapppb.DeleteSnapshotRequest, ...gax.CallOption) (*DeleteSnapshotOperation, error) + DeleteSnapshotOperation(name string) *DeleteSnapshotOperation + UpdateSnapshot(context.Context, *netapppb.UpdateSnapshotRequest, ...gax.CallOption) (*UpdateSnapshotOperation, error) + UpdateSnapshotOperation(name string) *UpdateSnapshotOperation + ListActiveDirectories(context.Context, *netapppb.ListActiveDirectoriesRequest, ...gax.CallOption) *ActiveDirectoryIterator + GetActiveDirectory(context.Context, *netapppb.GetActiveDirectoryRequest, ...gax.CallOption) (*netapppb.ActiveDirectory, error) + CreateActiveDirectory(context.Context, *netapppb.CreateActiveDirectoryRequest, ...gax.CallOption) (*CreateActiveDirectoryOperation, error) + CreateActiveDirectoryOperation(name string) *CreateActiveDirectoryOperation + UpdateActiveDirectory(context.Context, *netapppb.UpdateActiveDirectoryRequest, ...gax.CallOption) (*UpdateActiveDirectoryOperation, error) + UpdateActiveDirectoryOperation(name string) *UpdateActiveDirectoryOperation + DeleteActiveDirectory(context.Context, *netapppb.DeleteActiveDirectoryRequest, ...gax.CallOption) (*DeleteActiveDirectoryOperation, error) + DeleteActiveDirectoryOperation(name string) *DeleteActiveDirectoryOperation + ListKmsConfigs(context.Context, *netapppb.ListKmsConfigsRequest, ...gax.CallOption) *KmsConfigIterator + CreateKmsConfig(context.Context, *netapppb.CreateKmsConfigRequest, ...gax.CallOption) (*CreateKmsConfigOperation, error) + CreateKmsConfigOperation(name string) *CreateKmsConfigOperation + GetKmsConfig(context.Context, *netapppb.GetKmsConfigRequest, ...gax.CallOption) (*netapppb.KmsConfig, error) + UpdateKmsConfig(context.Context, *netapppb.UpdateKmsConfigRequest, ...gax.CallOption) (*UpdateKmsConfigOperation, error) + UpdateKmsConfigOperation(name string) *UpdateKmsConfigOperation + EncryptVolumes(context.Context, *netapppb.EncryptVolumesRequest, ...gax.CallOption) (*EncryptVolumesOperation, error) + EncryptVolumesOperation(name string) *EncryptVolumesOperation + VerifyKmsConfig(context.Context, *netapppb.VerifyKmsConfigRequest, ...gax.CallOption) (*netapppb.VerifyKmsConfigResponse, error) + DeleteKmsConfig(context.Context, *netapppb.DeleteKmsConfigRequest, ...gax.CallOption) (*DeleteKmsConfigOperation, error) + DeleteKmsConfigOperation(name string) *DeleteKmsConfigOperation + ListReplications(context.Context, *netapppb.ListReplicationsRequest, ...gax.CallOption) *ReplicationIterator + GetReplication(context.Context, *netapppb.GetReplicationRequest, ...gax.CallOption) (*netapppb.Replication, error) + CreateReplication(context.Context, *netapppb.CreateReplicationRequest, ...gax.CallOption) (*CreateReplicationOperation, error) + CreateReplicationOperation(name string) *CreateReplicationOperation + DeleteReplication(context.Context, *netapppb.DeleteReplicationRequest, ...gax.CallOption) (*DeleteReplicationOperation, error) + DeleteReplicationOperation(name string) *DeleteReplicationOperation + UpdateReplication(context.Context, *netapppb.UpdateReplicationRequest, ...gax.CallOption) (*UpdateReplicationOperation, error) + UpdateReplicationOperation(name string) *UpdateReplicationOperation + StopReplication(context.Context, *netapppb.StopReplicationRequest, ...gax.CallOption) (*StopReplicationOperation, error) + StopReplicationOperation(name string) *StopReplicationOperation + ResumeReplication(context.Context, *netapppb.ResumeReplicationRequest, ...gax.CallOption) (*ResumeReplicationOperation, error) + ResumeReplicationOperation(name string) *ResumeReplicationOperation + ReverseReplicationDirection(context.Context, *netapppb.ReverseReplicationDirectionRequest, ...gax.CallOption) (*ReverseReplicationDirectionOperation, error) + ReverseReplicationDirectionOperation(name string) *ReverseReplicationDirectionOperation +} + +// Client is a client for interacting with NetApp API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// NetApp Files Google Cloud Service +type Client struct { + // The internal transport-dependent client. + internalClient internalClient + + // The call options for this service. + CallOptions *CallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *Client) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *Client) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *Client) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListStoragePools returns descriptions of all storage pools owned by the caller. +func (c *Client) ListStoragePools(ctx context.Context, req *netapppb.ListStoragePoolsRequest, opts ...gax.CallOption) *StoragePoolIterator { + return c.internalClient.ListStoragePools(ctx, req, opts...) +} + +// CreateStoragePool creates a new storage pool. +func (c *Client) CreateStoragePool(ctx context.Context, req *netapppb.CreateStoragePoolRequest, opts ...gax.CallOption) (*CreateStoragePoolOperation, error) { + return c.internalClient.CreateStoragePool(ctx, req, opts...) +} + +// CreateStoragePoolOperation returns a new CreateStoragePoolOperation from a given name. +// The name must be that of a previously created CreateStoragePoolOperation, possibly from a different process. +func (c *Client) CreateStoragePoolOperation(name string) *CreateStoragePoolOperation { + return c.internalClient.CreateStoragePoolOperation(name) +} + +// GetStoragePool returns the description of the specified storage pool by poolId. +func (c *Client) GetStoragePool(ctx context.Context, req *netapppb.GetStoragePoolRequest, opts ...gax.CallOption) (*netapppb.StoragePool, error) { + return c.internalClient.GetStoragePool(ctx, req, opts...) +} + +// UpdateStoragePool updates the storage pool properties with the full spec +func (c *Client) UpdateStoragePool(ctx context.Context, req *netapppb.UpdateStoragePoolRequest, opts ...gax.CallOption) (*UpdateStoragePoolOperation, error) { + return c.internalClient.UpdateStoragePool(ctx, req, opts...) +} + +// UpdateStoragePoolOperation returns a new UpdateStoragePoolOperation from a given name. +// The name must be that of a previously created UpdateStoragePoolOperation, possibly from a different process. +func (c *Client) UpdateStoragePoolOperation(name string) *UpdateStoragePoolOperation { + return c.internalClient.UpdateStoragePoolOperation(name) +} + +// DeleteStoragePool warning! This operation will permanently delete the storage pool. +func (c *Client) DeleteStoragePool(ctx context.Context, req *netapppb.DeleteStoragePoolRequest, opts ...gax.CallOption) (*DeleteStoragePoolOperation, error) { + return c.internalClient.DeleteStoragePool(ctx, req, opts...) +} + +// DeleteStoragePoolOperation returns a new DeleteStoragePoolOperation from a given name. +// The name must be that of a previously created DeleteStoragePoolOperation, possibly from a different process. +func (c *Client) DeleteStoragePoolOperation(name string) *DeleteStoragePoolOperation { + return c.internalClient.DeleteStoragePoolOperation(name) +} + +// ListVolumes lists Volumes in a given project. +func (c *Client) ListVolumes(ctx context.Context, req *netapppb.ListVolumesRequest, opts ...gax.CallOption) *VolumeIterator { + return c.internalClient.ListVolumes(ctx, req, opts...) +} + +// GetVolume gets details of a single Volume. +func (c *Client) GetVolume(ctx context.Context, req *netapppb.GetVolumeRequest, opts ...gax.CallOption) (*netapppb.Volume, error) { + return c.internalClient.GetVolume(ctx, req, opts...) +} + +// CreateVolume creates a new Volume in a given project and location. +func (c *Client) CreateVolume(ctx context.Context, req *netapppb.CreateVolumeRequest, opts ...gax.CallOption) (*CreateVolumeOperation, error) { + return c.internalClient.CreateVolume(ctx, req, opts...) +} + +// CreateVolumeOperation returns a new CreateVolumeOperation from a given name. +// The name must be that of a previously created CreateVolumeOperation, possibly from a different process. +func (c *Client) CreateVolumeOperation(name string) *CreateVolumeOperation { + return c.internalClient.CreateVolumeOperation(name) +} + +// UpdateVolume updates the parameters of a single Volume. +func (c *Client) UpdateVolume(ctx context.Context, req *netapppb.UpdateVolumeRequest, opts ...gax.CallOption) (*UpdateVolumeOperation, error) { + return c.internalClient.UpdateVolume(ctx, req, opts...) +} + +// UpdateVolumeOperation returns a new UpdateVolumeOperation from a given name. +// The name must be that of a previously created UpdateVolumeOperation, possibly from a different process. +func (c *Client) UpdateVolumeOperation(name string) *UpdateVolumeOperation { + return c.internalClient.UpdateVolumeOperation(name) +} + +// DeleteVolume deletes a single Volume. +func (c *Client) DeleteVolume(ctx context.Context, req *netapppb.DeleteVolumeRequest, opts ...gax.CallOption) (*DeleteVolumeOperation, error) { + return c.internalClient.DeleteVolume(ctx, req, opts...) +} + +// DeleteVolumeOperation returns a new DeleteVolumeOperation from a given name. +// The name must be that of a previously created DeleteVolumeOperation, possibly from a different process. +func (c *Client) DeleteVolumeOperation(name string) *DeleteVolumeOperation { + return c.internalClient.DeleteVolumeOperation(name) +} + +// RevertVolume revert an existing volume to a specified snapshot. +// Warning! This operation will permanently revert all changes made after the +// snapshot was created. +func (c *Client) RevertVolume(ctx context.Context, req *netapppb.RevertVolumeRequest, opts ...gax.CallOption) (*RevertVolumeOperation, error) { + return c.internalClient.RevertVolume(ctx, req, opts...) +} + +// RevertVolumeOperation returns a new RevertVolumeOperation from a given name. +// The name must be that of a previously created RevertVolumeOperation, possibly from a different process. +func (c *Client) RevertVolumeOperation(name string) *RevertVolumeOperation { + return c.internalClient.RevertVolumeOperation(name) +} + +// ListSnapshots returns descriptions of all snapshots for a volume. +func (c *Client) ListSnapshots(ctx context.Context, req *netapppb.ListSnapshotsRequest, opts ...gax.CallOption) *SnapshotIterator { + return c.internalClient.ListSnapshots(ctx, req, opts...) +} + +// GetSnapshot describe a snapshot for a volume. +func (c *Client) GetSnapshot(ctx context.Context, req *netapppb.GetSnapshotRequest, opts ...gax.CallOption) (*netapppb.Snapshot, error) { + return c.internalClient.GetSnapshot(ctx, req, opts...) +} + +// CreateSnapshot create a new snapshot for a volume. +func (c *Client) CreateSnapshot(ctx context.Context, req *netapppb.CreateSnapshotRequest, opts ...gax.CallOption) (*CreateSnapshotOperation, error) { + return c.internalClient.CreateSnapshot(ctx, req, opts...) +} + +// CreateSnapshotOperation returns a new CreateSnapshotOperation from a given name. +// The name must be that of a previously created CreateSnapshotOperation, possibly from a different process. +func (c *Client) CreateSnapshotOperation(name string) *CreateSnapshotOperation { + return c.internalClient.CreateSnapshotOperation(name) +} + +// DeleteSnapshot deletes a snapshot. +func (c *Client) DeleteSnapshot(ctx context.Context, req *netapppb.DeleteSnapshotRequest, opts ...gax.CallOption) (*DeleteSnapshotOperation, error) { + return c.internalClient.DeleteSnapshot(ctx, req, opts...) +} + +// DeleteSnapshotOperation returns a new DeleteSnapshotOperation from a given name. +// The name must be that of a previously created DeleteSnapshotOperation, possibly from a different process. +func (c *Client) DeleteSnapshotOperation(name string) *DeleteSnapshotOperation { + return c.internalClient.DeleteSnapshotOperation(name) +} + +// UpdateSnapshot updates the settings of a specific snapshot. +func (c *Client) UpdateSnapshot(ctx context.Context, req *netapppb.UpdateSnapshotRequest, opts ...gax.CallOption) (*UpdateSnapshotOperation, error) { + return c.internalClient.UpdateSnapshot(ctx, req, opts...) +} + +// UpdateSnapshotOperation returns a new UpdateSnapshotOperation from a given name. +// The name must be that of a previously created UpdateSnapshotOperation, possibly from a different process. +func (c *Client) UpdateSnapshotOperation(name string) *UpdateSnapshotOperation { + return c.internalClient.UpdateSnapshotOperation(name) +} + +// ListActiveDirectories lists active directories. +func (c *Client) ListActiveDirectories(ctx context.Context, req *netapppb.ListActiveDirectoriesRequest, opts ...gax.CallOption) *ActiveDirectoryIterator { + return c.internalClient.ListActiveDirectories(ctx, req, opts...) +} + +// GetActiveDirectory describes a specified active directory. +func (c *Client) GetActiveDirectory(ctx context.Context, req *netapppb.GetActiveDirectoryRequest, opts ...gax.CallOption) (*netapppb.ActiveDirectory, error) { + return c.internalClient.GetActiveDirectory(ctx, req, opts...) +} + +// CreateActiveDirectory createActiveDirectory +// Creates the active directory specified in the request. +func (c *Client) CreateActiveDirectory(ctx context.Context, req *netapppb.CreateActiveDirectoryRequest, opts ...gax.CallOption) (*CreateActiveDirectoryOperation, error) { + return c.internalClient.CreateActiveDirectory(ctx, req, opts...) +} + +// CreateActiveDirectoryOperation returns a new CreateActiveDirectoryOperation from a given name. +// The name must be that of a previously created CreateActiveDirectoryOperation, possibly from a different process. +func (c *Client) CreateActiveDirectoryOperation(name string) *CreateActiveDirectoryOperation { + return c.internalClient.CreateActiveDirectoryOperation(name) +} + +// UpdateActiveDirectory update the parameters of an active directories. +func (c *Client) UpdateActiveDirectory(ctx context.Context, req *netapppb.UpdateActiveDirectoryRequest, opts ...gax.CallOption) (*UpdateActiveDirectoryOperation, error) { + return c.internalClient.UpdateActiveDirectory(ctx, req, opts...) +} + +// UpdateActiveDirectoryOperation returns a new UpdateActiveDirectoryOperation from a given name. +// The name must be that of a previously created UpdateActiveDirectoryOperation, possibly from a different process. +func (c *Client) UpdateActiveDirectoryOperation(name string) *UpdateActiveDirectoryOperation { + return c.internalClient.UpdateActiveDirectoryOperation(name) +} + +// DeleteActiveDirectory delete the active directory specified in the request. +func (c *Client) DeleteActiveDirectory(ctx context.Context, req *netapppb.DeleteActiveDirectoryRequest, opts ...gax.CallOption) (*DeleteActiveDirectoryOperation, error) { + return c.internalClient.DeleteActiveDirectory(ctx, req, opts...) +} + +// DeleteActiveDirectoryOperation returns a new DeleteActiveDirectoryOperation from a given name. +// The name must be that of a previously created DeleteActiveDirectoryOperation, possibly from a different process. +func (c *Client) DeleteActiveDirectoryOperation(name string) *DeleteActiveDirectoryOperation { + return c.internalClient.DeleteActiveDirectoryOperation(name) +} + +// ListKmsConfigs returns descriptions of all KMS configs owned by the caller. +func (c *Client) ListKmsConfigs(ctx context.Context, req *netapppb.ListKmsConfigsRequest, opts ...gax.CallOption) *KmsConfigIterator { + return c.internalClient.ListKmsConfigs(ctx, req, opts...) +} + +// CreateKmsConfig creates a new KMS config. +func (c *Client) CreateKmsConfig(ctx context.Context, req *netapppb.CreateKmsConfigRequest, opts ...gax.CallOption) (*CreateKmsConfigOperation, error) { + return c.internalClient.CreateKmsConfig(ctx, req, opts...) +} + +// CreateKmsConfigOperation returns a new CreateKmsConfigOperation from a given name. +// The name must be that of a previously created CreateKmsConfigOperation, possibly from a different process. +func (c *Client) CreateKmsConfigOperation(name string) *CreateKmsConfigOperation { + return c.internalClient.CreateKmsConfigOperation(name) +} + +// GetKmsConfig returns the description of the specified KMS config by kms_config_id. +func (c *Client) GetKmsConfig(ctx context.Context, req *netapppb.GetKmsConfigRequest, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + return c.internalClient.GetKmsConfig(ctx, req, opts...) +} + +// UpdateKmsConfig updates the Kms config properties with the full spec +func (c *Client) UpdateKmsConfig(ctx context.Context, req *netapppb.UpdateKmsConfigRequest, opts ...gax.CallOption) (*UpdateKmsConfigOperation, error) { + return c.internalClient.UpdateKmsConfig(ctx, req, opts...) +} + +// UpdateKmsConfigOperation returns a new UpdateKmsConfigOperation from a given name. +// The name must be that of a previously created UpdateKmsConfigOperation, possibly from a different process. +func (c *Client) UpdateKmsConfigOperation(name string) *UpdateKmsConfigOperation { + return c.internalClient.UpdateKmsConfigOperation(name) +} + +// EncryptVolumes encrypt the existing volumes without CMEK encryption with the desired the +// KMS config for the whole region. +func (c *Client) EncryptVolumes(ctx context.Context, req *netapppb.EncryptVolumesRequest, opts ...gax.CallOption) (*EncryptVolumesOperation, error) { + return c.internalClient.EncryptVolumes(ctx, req, opts...) +} + +// EncryptVolumesOperation returns a new EncryptVolumesOperation from a given name. +// The name must be that of a previously created EncryptVolumesOperation, possibly from a different process. +func (c *Client) EncryptVolumesOperation(name string) *EncryptVolumesOperation { + return c.internalClient.EncryptVolumesOperation(name) +} + +// VerifyKmsConfig verifies KMS config reachability. +func (c *Client) VerifyKmsConfig(ctx context.Context, req *netapppb.VerifyKmsConfigRequest, opts ...gax.CallOption) (*netapppb.VerifyKmsConfigResponse, error) { + return c.internalClient.VerifyKmsConfig(ctx, req, opts...) +} + +// DeleteKmsConfig warning! This operation will permanently delete the Kms config. +func (c *Client) DeleteKmsConfig(ctx context.Context, req *netapppb.DeleteKmsConfigRequest, opts ...gax.CallOption) (*DeleteKmsConfigOperation, error) { + return c.internalClient.DeleteKmsConfig(ctx, req, opts...) +} + +// DeleteKmsConfigOperation returns a new DeleteKmsConfigOperation from a given name. +// The name must be that of a previously created DeleteKmsConfigOperation, possibly from a different process. +func (c *Client) DeleteKmsConfigOperation(name string) *DeleteKmsConfigOperation { + return c.internalClient.DeleteKmsConfigOperation(name) +} + +// ListReplications returns descriptions of all replications for a volume. +func (c *Client) ListReplications(ctx context.Context, req *netapppb.ListReplicationsRequest, opts ...gax.CallOption) *ReplicationIterator { + return c.internalClient.ListReplications(ctx, req, opts...) +} + +// GetReplication describe a replication for a volume. +func (c *Client) GetReplication(ctx context.Context, req *netapppb.GetReplicationRequest, opts ...gax.CallOption) (*netapppb.Replication, error) { + return c.internalClient.GetReplication(ctx, req, opts...) +} + +// CreateReplication create a new replication for a volume. +func (c *Client) CreateReplication(ctx context.Context, req *netapppb.CreateReplicationRequest, opts ...gax.CallOption) (*CreateReplicationOperation, error) { + return c.internalClient.CreateReplication(ctx, req, opts...) +} + +// CreateReplicationOperation returns a new CreateReplicationOperation from a given name. +// The name must be that of a previously created CreateReplicationOperation, possibly from a different process. +func (c *Client) CreateReplicationOperation(name string) *CreateReplicationOperation { + return c.internalClient.CreateReplicationOperation(name) +} + +// DeleteReplication deletes a replication. +func (c *Client) DeleteReplication(ctx context.Context, req *netapppb.DeleteReplicationRequest, opts ...gax.CallOption) (*DeleteReplicationOperation, error) { + return c.internalClient.DeleteReplication(ctx, req, opts...) +} + +// DeleteReplicationOperation returns a new DeleteReplicationOperation from a given name. +// The name must be that of a previously created DeleteReplicationOperation, possibly from a different process. +func (c *Client) DeleteReplicationOperation(name string) *DeleteReplicationOperation { + return c.internalClient.DeleteReplicationOperation(name) +} + +// UpdateReplication updates the settings of a specific replication. +func (c *Client) UpdateReplication(ctx context.Context, req *netapppb.UpdateReplicationRequest, opts ...gax.CallOption) (*UpdateReplicationOperation, error) { + return c.internalClient.UpdateReplication(ctx, req, opts...) +} + +// UpdateReplicationOperation returns a new UpdateReplicationOperation from a given name. +// The name must be that of a previously created UpdateReplicationOperation, possibly from a different process. +func (c *Client) UpdateReplicationOperation(name string) *UpdateReplicationOperation { + return c.internalClient.UpdateReplicationOperation(name) +} + +// StopReplication stop Cross Region Replication. +func (c *Client) StopReplication(ctx context.Context, req *netapppb.StopReplicationRequest, opts ...gax.CallOption) (*StopReplicationOperation, error) { + return c.internalClient.StopReplication(ctx, req, opts...) +} + +// StopReplicationOperation returns a new StopReplicationOperation from a given name. +// The name must be that of a previously created StopReplicationOperation, possibly from a different process. +func (c *Client) StopReplicationOperation(name string) *StopReplicationOperation { + return c.internalClient.StopReplicationOperation(name) +} + +// ResumeReplication resume Cross Region Replication. +func (c *Client) ResumeReplication(ctx context.Context, req *netapppb.ResumeReplicationRequest, opts ...gax.CallOption) (*ResumeReplicationOperation, error) { + return c.internalClient.ResumeReplication(ctx, req, opts...) +} + +// ResumeReplicationOperation returns a new ResumeReplicationOperation from a given name. +// The name must be that of a previously created ResumeReplicationOperation, possibly from a different process. +func (c *Client) ResumeReplicationOperation(name string) *ResumeReplicationOperation { + return c.internalClient.ResumeReplicationOperation(name) +} + +// ReverseReplicationDirection reverses direction of replication. Source becomes destination and +// destination becomes source. +func (c *Client) ReverseReplicationDirection(ctx context.Context, req *netapppb.ReverseReplicationDirectionRequest, opts ...gax.CallOption) (*ReverseReplicationDirectionOperation, error) { + return c.internalClient.ReverseReplicationDirection(ctx, req, opts...) +} + +// ReverseReplicationDirectionOperation returns a new ReverseReplicationDirectionOperation from a given name. +// The name must be that of a previously created ReverseReplicationDirectionOperation, possibly from a different process. +func (c *Client) ReverseReplicationDirectionOperation(name string) *ReverseReplicationDirectionOperation { + return c.internalClient.ReverseReplicationDirectionOperation(name) +} + +// gRPCClient is a client for interacting with NetApp API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type gRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions + + // The gRPC API client. + client netapppb.NetAppClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD +} + +// NewClient creates a new net app client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// NetApp Files Google Cloud Service +func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := defaultGRPCClientOptions() + if newClientHook != nil { + hookOpts, err := newClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := Client{CallOptions: defaultCallOptions()} + + c := &gRPCClient{ + connPool: connPool, + client: netapppb.NewNetAppClient(connPool), + CallOptions: &client.CallOptions, + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *gRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *gRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *gRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type restClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions +} + +// NewRESTClient creates a new net app rest client. +// +// NetApp Files Google Cloud Service +func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := append(defaultRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultRESTCallOptions() + c := &restClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &Client{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://netapp.googleapis.com"), + internaloption.WithDefaultMTLSEndpoint("https://netapp.mtls.googleapis.com"), + internaloption.WithDefaultAudience("https://netapp.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + } +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *restClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") + c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *restClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *restClient) Connection() *grpc.ClientConn { + return nil +} +func (c *gRPCClient) ListStoragePools(ctx context.Context, req *netapppb.ListStoragePoolsRequest, opts ...gax.CallOption) *StoragePoolIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListStoragePools[0:len((*c.CallOptions).ListStoragePools):len((*c.CallOptions).ListStoragePools)], opts...) + it := &StoragePoolIterator{} + req = proto.Clone(req).(*netapppb.ListStoragePoolsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.StoragePool, string, error) { + resp := &netapppb.ListStoragePoolsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListStoragePools(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetStoragePools(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) CreateStoragePool(ctx context.Context, req *netapppb.CreateStoragePoolRequest, opts ...gax.CallOption) (*CreateStoragePoolOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateStoragePool[0:len((*c.CallOptions).CreateStoragePool):len((*c.CallOptions).CreateStoragePool)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.CreateStoragePool(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) GetStoragePool(ctx context.Context, req *netapppb.GetStoragePoolRequest, opts ...gax.CallOption) (*netapppb.StoragePool, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetStoragePool[0:len((*c.CallOptions).GetStoragePool):len((*c.CallOptions).GetStoragePool)], opts...) + var resp *netapppb.StoragePool + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.GetStoragePool(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) UpdateStoragePool(ctx context.Context, req *netapppb.UpdateStoragePoolRequest, opts ...gax.CallOption) (*UpdateStoragePoolOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "storage_pool.name", url.QueryEscape(req.GetStoragePool().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateStoragePool[0:len((*c.CallOptions).UpdateStoragePool):len((*c.CallOptions).UpdateStoragePool)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.UpdateStoragePool(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) DeleteStoragePool(ctx context.Context, req *netapppb.DeleteStoragePoolRequest, opts ...gax.CallOption) (*DeleteStoragePoolOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteStoragePool[0:len((*c.CallOptions).DeleteStoragePool):len((*c.CallOptions).DeleteStoragePool)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.DeleteStoragePool(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListVolumes(ctx context.Context, req *netapppb.ListVolumesRequest, opts ...gax.CallOption) *VolumeIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListVolumes[0:len((*c.CallOptions).ListVolumes):len((*c.CallOptions).ListVolumes)], opts...) + it := &VolumeIterator{} + req = proto.Clone(req).(*netapppb.ListVolumesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.Volume, string, error) { + resp := &netapppb.ListVolumesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListVolumes(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetVolumes(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetVolume(ctx context.Context, req *netapppb.GetVolumeRequest, opts ...gax.CallOption) (*netapppb.Volume, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetVolume[0:len((*c.CallOptions).GetVolume):len((*c.CallOptions).GetVolume)], opts...) + var resp *netapppb.Volume + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.GetVolume(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) CreateVolume(ctx context.Context, req *netapppb.CreateVolumeRequest, opts ...gax.CallOption) (*CreateVolumeOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateVolume[0:len((*c.CallOptions).CreateVolume):len((*c.CallOptions).CreateVolume)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.CreateVolume(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) UpdateVolume(ctx context.Context, req *netapppb.UpdateVolumeRequest, opts ...gax.CallOption) (*UpdateVolumeOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "volume.name", url.QueryEscape(req.GetVolume().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateVolume[0:len((*c.CallOptions).UpdateVolume):len((*c.CallOptions).UpdateVolume)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.UpdateVolume(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) DeleteVolume(ctx context.Context, req *netapppb.DeleteVolumeRequest, opts ...gax.CallOption) (*DeleteVolumeOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteVolume[0:len((*c.CallOptions).DeleteVolume):len((*c.CallOptions).DeleteVolume)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.DeleteVolume(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) RevertVolume(ctx context.Context, req *netapppb.RevertVolumeRequest, opts ...gax.CallOption) (*RevertVolumeOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).RevertVolume[0:len((*c.CallOptions).RevertVolume):len((*c.CallOptions).RevertVolume)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.RevertVolume(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &RevertVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListSnapshots(ctx context.Context, req *netapppb.ListSnapshotsRequest, opts ...gax.CallOption) *SnapshotIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListSnapshots[0:len((*c.CallOptions).ListSnapshots):len((*c.CallOptions).ListSnapshots)], opts...) + it := &SnapshotIterator{} + req = proto.Clone(req).(*netapppb.ListSnapshotsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.Snapshot, string, error) { + resp := &netapppb.ListSnapshotsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListSnapshots(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSnapshots(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetSnapshot(ctx context.Context, req *netapppb.GetSnapshotRequest, opts ...gax.CallOption) (*netapppb.Snapshot, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetSnapshot[0:len((*c.CallOptions).GetSnapshot):len((*c.CallOptions).GetSnapshot)], opts...) + var resp *netapppb.Snapshot + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.GetSnapshot(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) CreateSnapshot(ctx context.Context, req *netapppb.CreateSnapshotRequest, opts ...gax.CallOption) (*CreateSnapshotOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateSnapshot[0:len((*c.CallOptions).CreateSnapshot):len((*c.CallOptions).CreateSnapshot)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.CreateSnapshot(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) DeleteSnapshot(ctx context.Context, req *netapppb.DeleteSnapshotRequest, opts ...gax.CallOption) (*DeleteSnapshotOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteSnapshot[0:len((*c.CallOptions).DeleteSnapshot):len((*c.CallOptions).DeleteSnapshot)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.DeleteSnapshot(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) UpdateSnapshot(ctx context.Context, req *netapppb.UpdateSnapshotRequest, opts ...gax.CallOption) (*UpdateSnapshotOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "snapshot.name", url.QueryEscape(req.GetSnapshot().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateSnapshot[0:len((*c.CallOptions).UpdateSnapshot):len((*c.CallOptions).UpdateSnapshot)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.UpdateSnapshot(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListActiveDirectories(ctx context.Context, req *netapppb.ListActiveDirectoriesRequest, opts ...gax.CallOption) *ActiveDirectoryIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListActiveDirectories[0:len((*c.CallOptions).ListActiveDirectories):len((*c.CallOptions).ListActiveDirectories)], opts...) + it := &ActiveDirectoryIterator{} + req = proto.Clone(req).(*netapppb.ListActiveDirectoriesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.ActiveDirectory, string, error) { + resp := &netapppb.ListActiveDirectoriesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListActiveDirectories(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetActiveDirectories(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetActiveDirectory(ctx context.Context, req *netapppb.GetActiveDirectoryRequest, opts ...gax.CallOption) (*netapppb.ActiveDirectory, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetActiveDirectory[0:len((*c.CallOptions).GetActiveDirectory):len((*c.CallOptions).GetActiveDirectory)], opts...) + var resp *netapppb.ActiveDirectory + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.GetActiveDirectory(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) CreateActiveDirectory(ctx context.Context, req *netapppb.CreateActiveDirectoryRequest, opts ...gax.CallOption) (*CreateActiveDirectoryOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateActiveDirectory[0:len((*c.CallOptions).CreateActiveDirectory):len((*c.CallOptions).CreateActiveDirectory)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.CreateActiveDirectory(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) UpdateActiveDirectory(ctx context.Context, req *netapppb.UpdateActiveDirectoryRequest, opts ...gax.CallOption) (*UpdateActiveDirectoryOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "active_directory.name", url.QueryEscape(req.GetActiveDirectory().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateActiveDirectory[0:len((*c.CallOptions).UpdateActiveDirectory):len((*c.CallOptions).UpdateActiveDirectory)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.UpdateActiveDirectory(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) DeleteActiveDirectory(ctx context.Context, req *netapppb.DeleteActiveDirectoryRequest, opts ...gax.CallOption) (*DeleteActiveDirectoryOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteActiveDirectory[0:len((*c.CallOptions).DeleteActiveDirectory):len((*c.CallOptions).DeleteActiveDirectory)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.DeleteActiveDirectory(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListKmsConfigs(ctx context.Context, req *netapppb.ListKmsConfigsRequest, opts ...gax.CallOption) *KmsConfigIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListKmsConfigs[0:len((*c.CallOptions).ListKmsConfigs):len((*c.CallOptions).ListKmsConfigs)], opts...) + it := &KmsConfigIterator{} + req = proto.Clone(req).(*netapppb.ListKmsConfigsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.KmsConfig, string, error) { + resp := &netapppb.ListKmsConfigsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListKmsConfigs(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetKmsConfigs(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) CreateKmsConfig(ctx context.Context, req *netapppb.CreateKmsConfigRequest, opts ...gax.CallOption) (*CreateKmsConfigOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateKmsConfig[0:len((*c.CallOptions).CreateKmsConfig):len((*c.CallOptions).CreateKmsConfig)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.CreateKmsConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) GetKmsConfig(ctx context.Context, req *netapppb.GetKmsConfigRequest, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetKmsConfig[0:len((*c.CallOptions).GetKmsConfig):len((*c.CallOptions).GetKmsConfig)], opts...) + var resp *netapppb.KmsConfig + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.GetKmsConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) UpdateKmsConfig(ctx context.Context, req *netapppb.UpdateKmsConfigRequest, opts ...gax.CallOption) (*UpdateKmsConfigOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "kms_config.name", url.QueryEscape(req.GetKmsConfig().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateKmsConfig[0:len((*c.CallOptions).UpdateKmsConfig):len((*c.CallOptions).UpdateKmsConfig)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.UpdateKmsConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) EncryptVolumes(ctx context.Context, req *netapppb.EncryptVolumesRequest, opts ...gax.CallOption) (*EncryptVolumesOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).EncryptVolumes[0:len((*c.CallOptions).EncryptVolumes):len((*c.CallOptions).EncryptVolumes)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.EncryptVolumes(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &EncryptVolumesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) VerifyKmsConfig(ctx context.Context, req *netapppb.VerifyKmsConfigRequest, opts ...gax.CallOption) (*netapppb.VerifyKmsConfigResponse, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).VerifyKmsConfig[0:len((*c.CallOptions).VerifyKmsConfig):len((*c.CallOptions).VerifyKmsConfig)], opts...) + var resp *netapppb.VerifyKmsConfigResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.VerifyKmsConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) DeleteKmsConfig(ctx context.Context, req *netapppb.DeleteKmsConfigRequest, opts ...gax.CallOption) (*DeleteKmsConfigOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteKmsConfig[0:len((*c.CallOptions).DeleteKmsConfig):len((*c.CallOptions).DeleteKmsConfig)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.DeleteKmsConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListReplications(ctx context.Context, req *netapppb.ListReplicationsRequest, opts ...gax.CallOption) *ReplicationIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListReplications[0:len((*c.CallOptions).ListReplications):len((*c.CallOptions).ListReplications)], opts...) + it := &ReplicationIterator{} + req = proto.Clone(req).(*netapppb.ListReplicationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.Replication, string, error) { + resp := &netapppb.ListReplicationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ListReplications(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetReplications(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetReplication(ctx context.Context, req *netapppb.GetReplicationRequest, opts ...gax.CallOption) (*netapppb.Replication, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetReplication[0:len((*c.CallOptions).GetReplication):len((*c.CallOptions).GetReplication)], opts...) + var resp *netapppb.Replication + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.GetReplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) CreateReplication(ctx context.Context, req *netapppb.CreateReplicationRequest, opts ...gax.CallOption) (*CreateReplicationOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateReplication[0:len((*c.CallOptions).CreateReplication):len((*c.CallOptions).CreateReplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.CreateReplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) DeleteReplication(ctx context.Context, req *netapppb.DeleteReplicationRequest, opts ...gax.CallOption) (*DeleteReplicationOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteReplication[0:len((*c.CallOptions).DeleteReplication):len((*c.CallOptions).DeleteReplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.DeleteReplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) UpdateReplication(ctx context.Context, req *netapppb.UpdateReplicationRequest, opts ...gax.CallOption) (*UpdateReplicationOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "replication.name", url.QueryEscape(req.GetReplication().GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateReplication[0:len((*c.CallOptions).UpdateReplication):len((*c.CallOptions).UpdateReplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.UpdateReplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) StopReplication(ctx context.Context, req *netapppb.StopReplicationRequest, opts ...gax.CallOption) (*StopReplicationOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).StopReplication[0:len((*c.CallOptions).StopReplication):len((*c.CallOptions).StopReplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.StopReplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &StopReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ResumeReplication(ctx context.Context, req *netapppb.ResumeReplicationRequest, opts ...gax.CallOption) (*ResumeReplicationOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ResumeReplication[0:len((*c.CallOptions).ResumeReplication):len((*c.CallOptions).ResumeReplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ResumeReplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &ResumeReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ReverseReplicationDirection(ctx context.Context, req *netapppb.ReverseReplicationDirectionRequest, opts ...gax.CallOption) (*ReverseReplicationDirectionOperation, error) { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ReverseReplicationDirection[0:len((*c.CallOptions).ReverseReplicationDirection):len((*c.CallOptions).ReverseReplicationDirection)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.client.ReverseReplicationDirection(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &ReverseReplicationDirectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +// ListStoragePools returns descriptions of all storage pools owned by the caller. +func (c *restClient) ListStoragePools(ctx context.Context, req *netapppb.ListStoragePoolsRequest, opts ...gax.CallOption) *StoragePoolIterator { + it := &StoragePoolIterator{} + req = proto.Clone(req).(*netapppb.ListStoragePoolsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.StoragePool, string, error) { + resp := &netapppb.ListStoragePoolsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/storagePools", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetStoragePools(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreateStoragePool creates a new storage pool. +func (c *restClient) CreateStoragePool(ctx context.Context, req *netapppb.CreateStoragePoolRequest, opts ...gax.CallOption) (*CreateStoragePoolOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetStoragePool() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/storagePools", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("storagePoolId", fmt.Sprintf("%v", req.GetStoragePoolId())) + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &CreateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetStoragePool returns the description of the specified storage pool by poolId. +func (c *restClient) GetStoragePool(ctx context.Context, req *netapppb.GetStoragePoolRequest, opts ...gax.CallOption) (*netapppb.StoragePool, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetStoragePool[0:len((*c.CallOptions).GetStoragePool):len((*c.CallOptions).GetStoragePool)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &netapppb.StoragePool{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// UpdateStoragePool updates the storage pool properties with the full spec +func (c *restClient) UpdateStoragePool(ctx context.Context, req *netapppb.UpdateStoragePoolRequest, opts ...gax.CallOption) (*UpdateStoragePoolOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetStoragePool() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetStoragePool().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "storage_pool.name", url.QueryEscape(req.GetStoragePool().GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &UpdateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteStoragePool warning! This operation will permanently delete the storage pool. +func (c *restClient) DeleteStoragePool(ctx context.Context, req *netapppb.DeleteStoragePoolRequest, opts ...gax.CallOption) (*DeleteStoragePoolOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListVolumes lists Volumes in a given project. +func (c *restClient) ListVolumes(ctx context.Context, req *netapppb.ListVolumesRequest, opts ...gax.CallOption) *VolumeIterator { + it := &VolumeIterator{} + req = proto.Clone(req).(*netapppb.ListVolumesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.Volume, string, error) { + resp := &netapppb.ListVolumesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/volumes", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetVolumes(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetVolume gets details of a single Volume. +func (c *restClient) GetVolume(ctx context.Context, req *netapppb.GetVolumeRequest, opts ...gax.CallOption) (*netapppb.Volume, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetVolume[0:len((*c.CallOptions).GetVolume):len((*c.CallOptions).GetVolume)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &netapppb.Volume{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// CreateVolume creates a new Volume in a given project and location. +func (c *restClient) CreateVolume(ctx context.Context, req *netapppb.CreateVolumeRequest, opts ...gax.CallOption) (*CreateVolumeOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetVolume() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/volumes", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("volumeId", fmt.Sprintf("%v", req.GetVolumeId())) + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &CreateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateVolume updates the parameters of a single Volume. +func (c *restClient) UpdateVolume(ctx context.Context, req *netapppb.UpdateVolumeRequest, opts ...gax.CallOption) (*UpdateVolumeOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetVolume() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetVolume().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "volume.name", url.QueryEscape(req.GetVolume().GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &UpdateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteVolume deletes a single Volume. +func (c *restClient) DeleteVolume(ctx context.Context, req *netapppb.DeleteVolumeRequest, opts ...gax.CallOption) (*DeleteVolumeOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetForce() { + params.Add("force", fmt.Sprintf("%v", req.GetForce())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// RevertVolume revert an existing volume to a specified snapshot. +// Warning! This operation will permanently revert all changes made after the +// snapshot was created. +func (c *restClient) RevertVolume(ctx context.Context, req *netapppb.RevertVolumeRequest, opts ...gax.CallOption) (*RevertVolumeOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:revert", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &RevertVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListSnapshots returns descriptions of all snapshots for a volume. +func (c *restClient) ListSnapshots(ctx context.Context, req *netapppb.ListSnapshotsRequest, opts ...gax.CallOption) *SnapshotIterator { + it := &SnapshotIterator{} + req = proto.Clone(req).(*netapppb.ListSnapshotsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.Snapshot, string, error) { + resp := &netapppb.ListSnapshotsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/snapshots", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetSnapshots(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetSnapshot describe a snapshot for a volume. +func (c *restClient) GetSnapshot(ctx context.Context, req *netapppb.GetSnapshotRequest, opts ...gax.CallOption) (*netapppb.Snapshot, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetSnapshot[0:len((*c.CallOptions).GetSnapshot):len((*c.CallOptions).GetSnapshot)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &netapppb.Snapshot{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// CreateSnapshot create a new snapshot for a volume. +func (c *restClient) CreateSnapshot(ctx context.Context, req *netapppb.CreateSnapshotRequest, opts ...gax.CallOption) (*CreateSnapshotOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSnapshot() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/snapshots", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("snapshotId", fmt.Sprintf("%v", req.GetSnapshotId())) + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &CreateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteSnapshot deletes a snapshot. +func (c *restClient) DeleteSnapshot(ctx context.Context, req *netapppb.DeleteSnapshotRequest, opts ...gax.CallOption) (*DeleteSnapshotOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateSnapshot updates the settings of a specific snapshot. +func (c *restClient) UpdateSnapshot(ctx context.Context, req *netapppb.UpdateSnapshotRequest, opts ...gax.CallOption) (*UpdateSnapshotOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSnapshot() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetSnapshot().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "snapshot.name", url.QueryEscape(req.GetSnapshot().GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &UpdateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListActiveDirectories lists active directories. +func (c *restClient) ListActiveDirectories(ctx context.Context, req *netapppb.ListActiveDirectoriesRequest, opts ...gax.CallOption) *ActiveDirectoryIterator { + it := &ActiveDirectoryIterator{} + req = proto.Clone(req).(*netapppb.ListActiveDirectoriesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.ActiveDirectory, string, error) { + resp := &netapppb.ListActiveDirectoriesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/activeDirectories", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetActiveDirectories(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetActiveDirectory describes a specified active directory. +func (c *restClient) GetActiveDirectory(ctx context.Context, req *netapppb.GetActiveDirectoryRequest, opts ...gax.CallOption) (*netapppb.ActiveDirectory, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetActiveDirectory[0:len((*c.CallOptions).GetActiveDirectory):len((*c.CallOptions).GetActiveDirectory)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &netapppb.ActiveDirectory{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// CreateActiveDirectory createActiveDirectory +// Creates the active directory specified in the request. +func (c *restClient) CreateActiveDirectory(ctx context.Context, req *netapppb.CreateActiveDirectoryRequest, opts ...gax.CallOption) (*CreateActiveDirectoryOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetActiveDirectory() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/activeDirectories", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("activeDirectoryId", fmt.Sprintf("%v", req.GetActiveDirectoryId())) + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &CreateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateActiveDirectory update the parameters of an active directories. +func (c *restClient) UpdateActiveDirectory(ctx context.Context, req *netapppb.UpdateActiveDirectoryRequest, opts ...gax.CallOption) (*UpdateActiveDirectoryOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetActiveDirectory() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetActiveDirectory().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "active_directory.name", url.QueryEscape(req.GetActiveDirectory().GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &UpdateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteActiveDirectory delete the active directory specified in the request. +func (c *restClient) DeleteActiveDirectory(ctx context.Context, req *netapppb.DeleteActiveDirectoryRequest, opts ...gax.CallOption) (*DeleteActiveDirectoryOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListKmsConfigs returns descriptions of all KMS configs owned by the caller. +func (c *restClient) ListKmsConfigs(ctx context.Context, req *netapppb.ListKmsConfigsRequest, opts ...gax.CallOption) *KmsConfigIterator { + it := &KmsConfigIterator{} + req = proto.Clone(req).(*netapppb.ListKmsConfigsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.KmsConfig, string, error) { + resp := &netapppb.ListKmsConfigsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/kmsConfigs", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetKmsConfigs(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreateKmsConfig creates a new KMS config. +func (c *restClient) CreateKmsConfig(ctx context.Context, req *netapppb.CreateKmsConfigRequest, opts ...gax.CallOption) (*CreateKmsConfigOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetKmsConfig() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/kmsConfigs", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("kmsConfigId", fmt.Sprintf("%v", req.GetKmsConfigId())) + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &CreateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetKmsConfig returns the description of the specified KMS config by kms_config_id. +func (c *restClient) GetKmsConfig(ctx context.Context, req *netapppb.GetKmsConfigRequest, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetKmsConfig[0:len((*c.CallOptions).GetKmsConfig):len((*c.CallOptions).GetKmsConfig)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &netapppb.KmsConfig{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// UpdateKmsConfig updates the Kms config properties with the full spec +func (c *restClient) UpdateKmsConfig(ctx context.Context, req *netapppb.UpdateKmsConfigRequest, opts ...gax.CallOption) (*UpdateKmsConfigOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetKmsConfig() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetKmsConfig().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "kms_config.name", url.QueryEscape(req.GetKmsConfig().GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &UpdateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// EncryptVolumes encrypt the existing volumes without CMEK encryption with the desired the +// KMS config for the whole region. +func (c *restClient) EncryptVolumes(ctx context.Context, req *netapppb.EncryptVolumesRequest, opts ...gax.CallOption) (*EncryptVolumesOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:encrypt", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &EncryptVolumesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// VerifyKmsConfig verifies KMS config reachability. +func (c *restClient) VerifyKmsConfig(ctx context.Context, req *netapppb.VerifyKmsConfigRequest, opts ...gax.CallOption) (*netapppb.VerifyKmsConfigResponse, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:verify", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).VerifyKmsConfig[0:len((*c.CallOptions).VerifyKmsConfig):len((*c.CallOptions).VerifyKmsConfig)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &netapppb.VerifyKmsConfigResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// DeleteKmsConfig warning! This operation will permanently delete the Kms config. +func (c *restClient) DeleteKmsConfig(ctx context.Context, req *netapppb.DeleteKmsConfigRequest, opts ...gax.CallOption) (*DeleteKmsConfigOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListReplications returns descriptions of all replications for a volume. +func (c *restClient) ListReplications(ctx context.Context, req *netapppb.ListReplicationsRequest, opts ...gax.CallOption) *ReplicationIterator { + it := &ReplicationIterator{} + req = proto.Clone(req).(*netapppb.ListReplicationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*netapppb.Replication, string, error) { + resp := &netapppb.ListReplicationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/replications", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + headers := buildHeaders(ctx, c.xGoogMetadata, metadata.Pairs("Content-Type", "application/json")) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetReplications(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetReplication describe a replication for a volume. +func (c *restClient) GetReplication(ctx context.Context, req *netapppb.GetReplicationRequest, opts ...gax.CallOption) (*netapppb.Replication, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + opts = append((*c.CallOptions).GetReplication[0:len((*c.CallOptions).GetReplication):len((*c.CallOptions).GetReplication)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &netapppb.Replication{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// CreateReplication create a new replication for a volume. +func (c *restClient) CreateReplication(ctx context.Context, req *netapppb.CreateReplicationRequest, opts ...gax.CallOption) (*CreateReplicationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetReplication() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/replications", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("replicationId", fmt.Sprintf("%v", req.GetReplicationId())) + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &CreateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteReplication deletes a replication. +func (c *restClient) DeleteReplication(ctx context.Context, req *netapppb.DeleteReplicationRequest, opts ...gax.CallOption) (*DeleteReplicationOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateReplication updates the settings of a specific replication. +func (c *restClient) UpdateReplication(ctx context.Context, req *netapppb.UpdateReplicationRequest, opts ...gax.CallOption) (*UpdateReplicationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetReplication() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetReplication().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "replication.name", url.QueryEscape(req.GetReplication().GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &UpdateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// StopReplication stop Cross Region Replication. +func (c *restClient) StopReplication(ctx context.Context, req *netapppb.StopReplicationRequest, opts ...gax.CallOption) (*StopReplicationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:stop", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &StopReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ResumeReplication resume Cross Region Replication. +func (c *restClient) ResumeReplication(ctx context.Context, req *netapppb.ResumeReplicationRequest, opts ...gax.CallOption) (*ResumeReplicationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:resume", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &ResumeReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ReverseReplicationDirection reverses direction of replication. Source becomes destination and +// destination becomes source. +func (c *restClient) ReverseReplicationDirection(ctx context.Context, req *netapppb.ReverseReplicationDirectionRequest, opts ...gax.CallOption) (*ReverseReplicationDirectionOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:reverseDirection", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + + headers := buildHeaders(ctx, c.xGoogMetadata, md, metadata.Pairs("Content-Type", "application/json")) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &ReverseReplicationDirectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CreateActiveDirectoryOperation manages a long-running operation from CreateActiveDirectory. +type CreateActiveDirectoryOperation struct { + lro *longrunning.Operation + pollPath string +} + +// CreateActiveDirectoryOperation returns a new CreateActiveDirectoryOperation from a given name. +// The name must be that of a previously created CreateActiveDirectoryOperation, possibly from a different process. +func (c *gRPCClient) CreateActiveDirectoryOperation(name string) *CreateActiveDirectoryOperation { + return &CreateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateActiveDirectoryOperation returns a new CreateActiveDirectoryOperation from a given name. +// The name must be that of a previously created CreateActiveDirectoryOperation, possibly from a different process. +func (c *restClient) CreateActiveDirectoryOperation(name string) *CreateActiveDirectoryOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateActiveDirectoryOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.ActiveDirectory, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.ActiveDirectory + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateActiveDirectoryOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.ActiveDirectory, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.ActiveDirectory + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateActiveDirectoryOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateActiveDirectoryOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateActiveDirectoryOperation) Name() string { + return op.lro.Name() +} + +// CreateKmsConfigOperation manages a long-running operation from CreateKmsConfig. +type CreateKmsConfigOperation struct { + lro *longrunning.Operation + pollPath string +} + +// CreateKmsConfigOperation returns a new CreateKmsConfigOperation from a given name. +// The name must be that of a previously created CreateKmsConfigOperation, possibly from a different process. +func (c *gRPCClient) CreateKmsConfigOperation(name string) *CreateKmsConfigOperation { + return &CreateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateKmsConfigOperation returns a new CreateKmsConfigOperation from a given name. +// The name must be that of a previously created CreateKmsConfigOperation, possibly from a different process. +func (c *restClient) CreateKmsConfigOperation(name string) *CreateKmsConfigOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateKmsConfigOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.KmsConfig + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateKmsConfigOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.KmsConfig + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateKmsConfigOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateKmsConfigOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateKmsConfigOperation) Name() string { + return op.lro.Name() +} + +// CreateReplicationOperation manages a long-running operation from CreateReplication. +type CreateReplicationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// CreateReplicationOperation returns a new CreateReplicationOperation from a given name. +// The name must be that of a previously created CreateReplicationOperation, possibly from a different process. +func (c *gRPCClient) CreateReplicationOperation(name string) *CreateReplicationOperation { + return &CreateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateReplicationOperation returns a new CreateReplicationOperation from a given name. +// The name must be that of a previously created CreateReplicationOperation, possibly from a different process. +func (c *restClient) CreateReplicationOperation(name string) *CreateReplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateReplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateReplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateReplicationOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateReplicationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateReplicationOperation) Name() string { + return op.lro.Name() +} + +// CreateSnapshotOperation manages a long-running operation from CreateSnapshot. +type CreateSnapshotOperation struct { + lro *longrunning.Operation + pollPath string +} + +// CreateSnapshotOperation returns a new CreateSnapshotOperation from a given name. +// The name must be that of a previously created CreateSnapshotOperation, possibly from a different process. +func (c *gRPCClient) CreateSnapshotOperation(name string) *CreateSnapshotOperation { + return &CreateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateSnapshotOperation returns a new CreateSnapshotOperation from a given name. +// The name must be that of a previously created CreateSnapshotOperation, possibly from a different process. +func (c *restClient) CreateSnapshotOperation(name string) *CreateSnapshotOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateSnapshotOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Snapshot, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Snapshot + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateSnapshotOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Snapshot, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Snapshot + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateSnapshotOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateSnapshotOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateSnapshotOperation) Name() string { + return op.lro.Name() +} + +// CreateStoragePoolOperation manages a long-running operation from CreateStoragePool. +type CreateStoragePoolOperation struct { + lro *longrunning.Operation + pollPath string +} + +// CreateStoragePoolOperation returns a new CreateStoragePoolOperation from a given name. +// The name must be that of a previously created CreateStoragePoolOperation, possibly from a different process. +func (c *gRPCClient) CreateStoragePoolOperation(name string) *CreateStoragePoolOperation { + return &CreateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateStoragePoolOperation returns a new CreateStoragePoolOperation from a given name. +// The name must be that of a previously created CreateStoragePoolOperation, possibly from a different process. +func (c *restClient) CreateStoragePoolOperation(name string) *CreateStoragePoolOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateStoragePoolOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.StoragePool, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.StoragePool + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateStoragePoolOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.StoragePool, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.StoragePool + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateStoragePoolOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateStoragePoolOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateStoragePoolOperation) Name() string { + return op.lro.Name() +} + +// CreateVolumeOperation manages a long-running operation from CreateVolume. +type CreateVolumeOperation struct { + lro *longrunning.Operation + pollPath string +} + +// CreateVolumeOperation returns a new CreateVolumeOperation from a given name. +// The name must be that of a previously created CreateVolumeOperation, possibly from a different process. +func (c *gRPCClient) CreateVolumeOperation(name string) *CreateVolumeOperation { + return &CreateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateVolumeOperation returns a new CreateVolumeOperation from a given name. +// The name must be that of a previously created CreateVolumeOperation, possibly from a different process. +func (c *restClient) CreateVolumeOperation(name string) *CreateVolumeOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateVolumeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Volume, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Volume + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateVolumeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Volume, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Volume + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateVolumeOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateVolumeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateVolumeOperation) Name() string { + return op.lro.Name() +} + +// DeleteActiveDirectoryOperation manages a long-running operation from DeleteActiveDirectory. +type DeleteActiveDirectoryOperation struct { + lro *longrunning.Operation + pollPath string +} + +// DeleteActiveDirectoryOperation returns a new DeleteActiveDirectoryOperation from a given name. +// The name must be that of a previously created DeleteActiveDirectoryOperation, possibly from a different process. +func (c *gRPCClient) DeleteActiveDirectoryOperation(name string) *DeleteActiveDirectoryOperation { + return &DeleteActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteActiveDirectoryOperation returns a new DeleteActiveDirectoryOperation from a given name. +// The name must be that of a previously created DeleteActiveDirectoryOperation, possibly from a different process. +func (c *restClient) DeleteActiveDirectoryOperation(name string) *DeleteActiveDirectoryOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteActiveDirectoryOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteActiveDirectoryOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteActiveDirectoryOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteActiveDirectoryOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteActiveDirectoryOperation) Name() string { + return op.lro.Name() +} + +// DeleteKmsConfigOperation manages a long-running operation from DeleteKmsConfig. +type DeleteKmsConfigOperation struct { + lro *longrunning.Operation + pollPath string +} + +// DeleteKmsConfigOperation returns a new DeleteKmsConfigOperation from a given name. +// The name must be that of a previously created DeleteKmsConfigOperation, possibly from a different process. +func (c *gRPCClient) DeleteKmsConfigOperation(name string) *DeleteKmsConfigOperation { + return &DeleteKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteKmsConfigOperation returns a new DeleteKmsConfigOperation from a given name. +// The name must be that of a previously created DeleteKmsConfigOperation, possibly from a different process. +func (c *restClient) DeleteKmsConfigOperation(name string) *DeleteKmsConfigOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteKmsConfigOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteKmsConfigOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteKmsConfigOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteKmsConfigOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteKmsConfigOperation) Name() string { + return op.lro.Name() +} + +// DeleteReplicationOperation manages a long-running operation from DeleteReplication. +type DeleteReplicationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// DeleteReplicationOperation returns a new DeleteReplicationOperation from a given name. +// The name must be that of a previously created DeleteReplicationOperation, possibly from a different process. +func (c *gRPCClient) DeleteReplicationOperation(name string) *DeleteReplicationOperation { + return &DeleteReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteReplicationOperation returns a new DeleteReplicationOperation from a given name. +// The name must be that of a previously created DeleteReplicationOperation, possibly from a different process. +func (c *restClient) DeleteReplicationOperation(name string) *DeleteReplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteReplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteReplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteReplicationOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteReplicationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteReplicationOperation) Name() string { + return op.lro.Name() +} + +// DeleteSnapshotOperation manages a long-running operation from DeleteSnapshot. +type DeleteSnapshotOperation struct { + lro *longrunning.Operation + pollPath string +} + +// DeleteSnapshotOperation returns a new DeleteSnapshotOperation from a given name. +// The name must be that of a previously created DeleteSnapshotOperation, possibly from a different process. +func (c *gRPCClient) DeleteSnapshotOperation(name string) *DeleteSnapshotOperation { + return &DeleteSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteSnapshotOperation returns a new DeleteSnapshotOperation from a given name. +// The name must be that of a previously created DeleteSnapshotOperation, possibly from a different process. +func (c *restClient) DeleteSnapshotOperation(name string) *DeleteSnapshotOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteSnapshotOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteSnapshotOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteSnapshotOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteSnapshotOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteSnapshotOperation) Name() string { + return op.lro.Name() +} + +// DeleteStoragePoolOperation manages a long-running operation from DeleteStoragePool. +type DeleteStoragePoolOperation struct { + lro *longrunning.Operation + pollPath string +} + +// DeleteStoragePoolOperation returns a new DeleteStoragePoolOperation from a given name. +// The name must be that of a previously created DeleteStoragePoolOperation, possibly from a different process. +func (c *gRPCClient) DeleteStoragePoolOperation(name string) *DeleteStoragePoolOperation { + return &DeleteStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteStoragePoolOperation returns a new DeleteStoragePoolOperation from a given name. +// The name must be that of a previously created DeleteStoragePoolOperation, possibly from a different process. +func (c *restClient) DeleteStoragePoolOperation(name string) *DeleteStoragePoolOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteStoragePoolOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteStoragePoolOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteStoragePoolOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteStoragePoolOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteStoragePoolOperation) Name() string { + return op.lro.Name() +} + +// DeleteVolumeOperation manages a long-running operation from DeleteVolume. +type DeleteVolumeOperation struct { + lro *longrunning.Operation + pollPath string +} + +// DeleteVolumeOperation returns a new DeleteVolumeOperation from a given name. +// The name must be that of a previously created DeleteVolumeOperation, possibly from a different process. +func (c *gRPCClient) DeleteVolumeOperation(name string) *DeleteVolumeOperation { + return &DeleteVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteVolumeOperation returns a new DeleteVolumeOperation from a given name. +// The name must be that of a previously created DeleteVolumeOperation, possibly from a different process. +func (c *restClient) DeleteVolumeOperation(name string) *DeleteVolumeOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteVolumeOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteVolumeOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteVolumeOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteVolumeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteVolumeOperation) Name() string { + return op.lro.Name() +} + +// EncryptVolumesOperation manages a long-running operation from EncryptVolumes. +type EncryptVolumesOperation struct { + lro *longrunning.Operation + pollPath string +} + +// EncryptVolumesOperation returns a new EncryptVolumesOperation from a given name. +// The name must be that of a previously created EncryptVolumesOperation, possibly from a different process. +func (c *gRPCClient) EncryptVolumesOperation(name string) *EncryptVolumesOperation { + return &EncryptVolumesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// EncryptVolumesOperation returns a new EncryptVolumesOperation from a given name. +// The name must be that of a previously created EncryptVolumesOperation, possibly from a different process. +func (c *restClient) EncryptVolumesOperation(name string) *EncryptVolumesOperation { + override := fmt.Sprintf("/v1/%s", name) + return &EncryptVolumesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *EncryptVolumesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.KmsConfig + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *EncryptVolumesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.KmsConfig + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *EncryptVolumesOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *EncryptVolumesOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *EncryptVolumesOperation) Name() string { + return op.lro.Name() +} + +// ResumeReplicationOperation manages a long-running operation from ResumeReplication. +type ResumeReplicationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// ResumeReplicationOperation returns a new ResumeReplicationOperation from a given name. +// The name must be that of a previously created ResumeReplicationOperation, possibly from a different process. +func (c *gRPCClient) ResumeReplicationOperation(name string) *ResumeReplicationOperation { + return &ResumeReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// ResumeReplicationOperation returns a new ResumeReplicationOperation from a given name. +// The name must be that of a previously created ResumeReplicationOperation, possibly from a different process. +func (c *restClient) ResumeReplicationOperation(name string) *ResumeReplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &ResumeReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *ResumeReplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *ResumeReplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *ResumeReplicationOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *ResumeReplicationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *ResumeReplicationOperation) Name() string { + return op.lro.Name() +} + +// ReverseReplicationDirectionOperation manages a long-running operation from ReverseReplicationDirection. +type ReverseReplicationDirectionOperation struct { + lro *longrunning.Operation + pollPath string +} + +// ReverseReplicationDirectionOperation returns a new ReverseReplicationDirectionOperation from a given name. +// The name must be that of a previously created ReverseReplicationDirectionOperation, possibly from a different process. +func (c *gRPCClient) ReverseReplicationDirectionOperation(name string) *ReverseReplicationDirectionOperation { + return &ReverseReplicationDirectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// ReverseReplicationDirectionOperation returns a new ReverseReplicationDirectionOperation from a given name. +// The name must be that of a previously created ReverseReplicationDirectionOperation, possibly from a different process. +func (c *restClient) ReverseReplicationDirectionOperation(name string) *ReverseReplicationDirectionOperation { + override := fmt.Sprintf("/v1/%s", name) + return &ReverseReplicationDirectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *ReverseReplicationDirectionOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *ReverseReplicationDirectionOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *ReverseReplicationDirectionOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *ReverseReplicationDirectionOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *ReverseReplicationDirectionOperation) Name() string { + return op.lro.Name() +} + +// RevertVolumeOperation manages a long-running operation from RevertVolume. +type RevertVolumeOperation struct { + lro *longrunning.Operation + pollPath string +} + +// RevertVolumeOperation returns a new RevertVolumeOperation from a given name. +// The name must be that of a previously created RevertVolumeOperation, possibly from a different process. +func (c *gRPCClient) RevertVolumeOperation(name string) *RevertVolumeOperation { + return &RevertVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// RevertVolumeOperation returns a new RevertVolumeOperation from a given name. +// The name must be that of a previously created RevertVolumeOperation, possibly from a different process. +func (c *restClient) RevertVolumeOperation(name string) *RevertVolumeOperation { + override := fmt.Sprintf("/v1/%s", name) + return &RevertVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *RevertVolumeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Volume, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Volume + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *RevertVolumeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Volume, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Volume + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *RevertVolumeOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *RevertVolumeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *RevertVolumeOperation) Name() string { + return op.lro.Name() +} + +// StopReplicationOperation manages a long-running operation from StopReplication. +type StopReplicationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// StopReplicationOperation returns a new StopReplicationOperation from a given name. +// The name must be that of a previously created StopReplicationOperation, possibly from a different process. +func (c *gRPCClient) StopReplicationOperation(name string) *StopReplicationOperation { + return &StopReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// StopReplicationOperation returns a new StopReplicationOperation from a given name. +// The name must be that of a previously created StopReplicationOperation, possibly from a different process. +func (c *restClient) StopReplicationOperation(name string) *StopReplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &StopReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *StopReplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *StopReplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *StopReplicationOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *StopReplicationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *StopReplicationOperation) Name() string { + return op.lro.Name() +} + +// UpdateActiveDirectoryOperation manages a long-running operation from UpdateActiveDirectory. +type UpdateActiveDirectoryOperation struct { + lro *longrunning.Operation + pollPath string +} + +// UpdateActiveDirectoryOperation returns a new UpdateActiveDirectoryOperation from a given name. +// The name must be that of a previously created UpdateActiveDirectoryOperation, possibly from a different process. +func (c *gRPCClient) UpdateActiveDirectoryOperation(name string) *UpdateActiveDirectoryOperation { + return &UpdateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateActiveDirectoryOperation returns a new UpdateActiveDirectoryOperation from a given name. +// The name must be that of a previously created UpdateActiveDirectoryOperation, possibly from a different process. +func (c *restClient) UpdateActiveDirectoryOperation(name string) *UpdateActiveDirectoryOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateActiveDirectoryOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateActiveDirectoryOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.ActiveDirectory, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.ActiveDirectory + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateActiveDirectoryOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.ActiveDirectory, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.ActiveDirectory + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateActiveDirectoryOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateActiveDirectoryOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateActiveDirectoryOperation) Name() string { + return op.lro.Name() +} + +// UpdateKmsConfigOperation manages a long-running operation from UpdateKmsConfig. +type UpdateKmsConfigOperation struct { + lro *longrunning.Operation + pollPath string +} + +// UpdateKmsConfigOperation returns a new UpdateKmsConfigOperation from a given name. +// The name must be that of a previously created UpdateKmsConfigOperation, possibly from a different process. +func (c *gRPCClient) UpdateKmsConfigOperation(name string) *UpdateKmsConfigOperation { + return &UpdateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateKmsConfigOperation returns a new UpdateKmsConfigOperation from a given name. +// The name must be that of a previously created UpdateKmsConfigOperation, possibly from a different process. +func (c *restClient) UpdateKmsConfigOperation(name string) *UpdateKmsConfigOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateKmsConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateKmsConfigOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.KmsConfig + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateKmsConfigOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.KmsConfig, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.KmsConfig + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateKmsConfigOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateKmsConfigOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateKmsConfigOperation) Name() string { + return op.lro.Name() +} + +// UpdateReplicationOperation manages a long-running operation from UpdateReplication. +type UpdateReplicationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// UpdateReplicationOperation returns a new UpdateReplicationOperation from a given name. +// The name must be that of a previously created UpdateReplicationOperation, possibly from a different process. +func (c *gRPCClient) UpdateReplicationOperation(name string) *UpdateReplicationOperation { + return &UpdateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateReplicationOperation returns a new UpdateReplicationOperation from a given name. +// The name must be that of a previously created UpdateReplicationOperation, possibly from a different process. +func (c *restClient) UpdateReplicationOperation(name string) *UpdateReplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateReplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateReplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateReplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Replication, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Replication + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateReplicationOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateReplicationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateReplicationOperation) Name() string { + return op.lro.Name() +} + +// UpdateSnapshotOperation manages a long-running operation from UpdateSnapshot. +type UpdateSnapshotOperation struct { + lro *longrunning.Operation + pollPath string +} + +// UpdateSnapshotOperation returns a new UpdateSnapshotOperation from a given name. +// The name must be that of a previously created UpdateSnapshotOperation, possibly from a different process. +func (c *gRPCClient) UpdateSnapshotOperation(name string) *UpdateSnapshotOperation { + return &UpdateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateSnapshotOperation returns a new UpdateSnapshotOperation from a given name. +// The name must be that of a previously created UpdateSnapshotOperation, possibly from a different process. +func (c *restClient) UpdateSnapshotOperation(name string) *UpdateSnapshotOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateSnapshotOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateSnapshotOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Snapshot, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Snapshot + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateSnapshotOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Snapshot, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Snapshot + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateSnapshotOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateSnapshotOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateSnapshotOperation) Name() string { + return op.lro.Name() +} + +// UpdateStoragePoolOperation manages a long-running operation from UpdateStoragePool. +type UpdateStoragePoolOperation struct { + lro *longrunning.Operation + pollPath string +} + +// UpdateStoragePoolOperation returns a new UpdateStoragePoolOperation from a given name. +// The name must be that of a previously created UpdateStoragePoolOperation, possibly from a different process. +func (c *gRPCClient) UpdateStoragePoolOperation(name string) *UpdateStoragePoolOperation { + return &UpdateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateStoragePoolOperation returns a new UpdateStoragePoolOperation from a given name. +// The name must be that of a previously created UpdateStoragePoolOperation, possibly from a different process. +func (c *restClient) UpdateStoragePoolOperation(name string) *UpdateStoragePoolOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateStoragePoolOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateStoragePoolOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.StoragePool, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.StoragePool + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateStoragePoolOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.StoragePool, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.StoragePool + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateStoragePoolOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateStoragePoolOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateStoragePoolOperation) Name() string { + return op.lro.Name() +} + +// UpdateVolumeOperation manages a long-running operation from UpdateVolume. +type UpdateVolumeOperation struct { + lro *longrunning.Operation + pollPath string +} + +// UpdateVolumeOperation returns a new UpdateVolumeOperation from a given name. +// The name must be that of a previously created UpdateVolumeOperation, possibly from a different process. +func (c *gRPCClient) UpdateVolumeOperation(name string) *UpdateVolumeOperation { + return &UpdateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateVolumeOperation returns a new UpdateVolumeOperation from a given name. +// The name must be that of a previously created UpdateVolumeOperation, possibly from a different process. +func (c *restClient) UpdateVolumeOperation(name string) *UpdateVolumeOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateVolumeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateVolumeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*netapppb.Volume, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Volume + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateVolumeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*netapppb.Volume, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp netapppb.Volume + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateVolumeOperation) Metadata() (*netapppb.OperationMetadata, error) { + var meta netapppb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateVolumeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateVolumeOperation) Name() string { + return op.lro.Name() +} + +// ActiveDirectoryIterator manages a stream of *netapppb.ActiveDirectory. +type ActiveDirectoryIterator struct { + items []*netapppb.ActiveDirectory + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*netapppb.ActiveDirectory, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ActiveDirectoryIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ActiveDirectoryIterator) Next() (*netapppb.ActiveDirectory, error) { + var item *netapppb.ActiveDirectory + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ActiveDirectoryIterator) bufLen() int { + return len(it.items) +} + +func (it *ActiveDirectoryIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// KmsConfigIterator manages a stream of *netapppb.KmsConfig. +type KmsConfigIterator struct { + items []*netapppb.KmsConfig + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*netapppb.KmsConfig, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *KmsConfigIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *KmsConfigIterator) Next() (*netapppb.KmsConfig, error) { + var item *netapppb.KmsConfig + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *KmsConfigIterator) bufLen() int { + return len(it.items) +} + +func (it *KmsConfigIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ReplicationIterator manages a stream of *netapppb.Replication. +type ReplicationIterator struct { + items []*netapppb.Replication + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*netapppb.Replication, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ReplicationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ReplicationIterator) Next() (*netapppb.Replication, error) { + var item *netapppb.Replication + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ReplicationIterator) bufLen() int { + return len(it.items) +} + +func (it *ReplicationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SnapshotIterator manages a stream of *netapppb.Snapshot. +type SnapshotIterator struct { + items []*netapppb.Snapshot + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*netapppb.Snapshot, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SnapshotIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *SnapshotIterator) Next() (*netapppb.Snapshot, error) { + var item *netapppb.Snapshot + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SnapshotIterator) bufLen() int { + return len(it.items) +} + +func (it *SnapshotIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// StoragePoolIterator manages a stream of *netapppb.StoragePool. +type StoragePoolIterator struct { + items []*netapppb.StoragePool + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*netapppb.StoragePool, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *StoragePoolIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *StoragePoolIterator) Next() (*netapppb.StoragePool, error) { + var item *netapppb.StoragePool + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *StoragePoolIterator) bufLen() int { + return len(it.items) +} + +func (it *StoragePoolIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// VolumeIterator manages a stream of *netapppb.Volume. +type VolumeIterator struct { + items []*netapppb.Volume + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*netapppb.Volume, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *VolumeIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *VolumeIterator) Next() (*netapppb.Volume, error) { + var item *netapppb.Volume + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *VolumeIterator) bufLen() int { + return len(it.items) +} + +func (it *VolumeIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/netapp/apiv1/net_app_client_example_test.go b/netapp/apiv1/net_app_client_example_test.go new file mode 100644 index 00000000000..beaffac49a7 --- /dev/null +++ b/netapp/apiv1/net_app_client_example_test.go @@ -0,0 +1,1098 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package netapp_test + +import ( + "context" + + netapp "cloud.google.com/go/netapp/apiv1" + netapppb "cloud.google.com/go/netapp/apiv1/netapppb" + "google.golang.org/api/iterator" +) + +func ExampleNewClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewRESTClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleClient_ListStoragePools() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListStoragePoolsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListStoragePoolsRequest. + } + it := c.ListStoragePools(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_CreateStoragePool() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateStoragePoolRequest. + } + op, err := c.CreateStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_GetStoragePool() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetStoragePoolRequest. + } + resp, err := c.GetStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_UpdateStoragePool() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateStoragePoolRequest. + } + op, err := c.UpdateStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteStoragePool() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteStoragePoolRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteStoragePoolRequest. + } + op, err := c.DeleteStoragePool(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_ListVolumes() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListVolumesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListVolumesRequest. + } + it := c.ListVolumes(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_GetVolume() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetVolumeRequest. + } + resp, err := c.GetVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_CreateVolume() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateVolumeRequest. + } + op, err := c.CreateVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_UpdateVolume() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateVolumeRequest. + } + op, err := c.UpdateVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteVolume() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteVolumeRequest. + } + op, err := c.DeleteVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_RevertVolume() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.RevertVolumeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#RevertVolumeRequest. + } + op, err := c.RevertVolume(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListSnapshots() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListSnapshotsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListSnapshotsRequest. + } + it := c.ListSnapshots(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_GetSnapshot() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetSnapshotRequest. + } + resp, err := c.GetSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_CreateSnapshot() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateSnapshotRequest. + } + op, err := c.CreateSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteSnapshot() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteSnapshotRequest. + } + op, err := c.DeleteSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_UpdateSnapshot() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateSnapshotRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateSnapshotRequest. + } + op, err := c.UpdateSnapshot(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListActiveDirectories() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListActiveDirectoriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListActiveDirectoriesRequest. + } + it := c.ListActiveDirectories(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_GetActiveDirectory() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetActiveDirectoryRequest. + } + resp, err := c.GetActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_CreateActiveDirectory() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateActiveDirectoryRequest. + } + op, err := c.CreateActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_UpdateActiveDirectory() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateActiveDirectoryRequest. + } + op, err := c.UpdateActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteActiveDirectory() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteActiveDirectoryRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteActiveDirectoryRequest. + } + op, err := c.DeleteActiveDirectory(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_ListKmsConfigs() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListKmsConfigsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListKmsConfigsRequest. + } + it := c.ListKmsConfigs(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_CreateKmsConfig() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateKmsConfigRequest. + } + op, err := c.CreateKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_GetKmsConfig() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetKmsConfigRequest. + } + resp, err := c.GetKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_UpdateKmsConfig() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateKmsConfigRequest. + } + op, err := c.UpdateKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_EncryptVolumes() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.EncryptVolumesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#EncryptVolumesRequest. + } + op, err := c.EncryptVolumes(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_VerifyKmsConfig() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.VerifyKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#VerifyKmsConfigRequest. + } + resp, err := c.VerifyKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteKmsConfig() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteKmsConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteKmsConfigRequest. + } + op, err := c.DeleteKmsConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_ListReplications() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ListReplicationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ListReplicationsRequest. + } + it := c.ListReplications(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_GetReplication() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.GetReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#GetReplicationRequest. + } + resp, err := c.GetReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_CreateReplication() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.CreateReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#CreateReplicationRequest. + } + op, err := c.CreateReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteReplication() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.DeleteReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#DeleteReplicationRequest. + } + op, err := c.DeleteReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_UpdateReplication() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.UpdateReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#UpdateReplicationRequest. + } + op, err := c.UpdateReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_StopReplication() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.StopReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#StopReplicationRequest. + } + op, err := c.StopReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ResumeReplication() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ResumeReplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ResumeReplicationRequest. + } + op, err := c.ResumeReplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ReverseReplicationDirection() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := netapp.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &netapppb.ReverseReplicationDirectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/netapp/apiv1/netapppb#ReverseReplicationDirectionRequest. + } + op, err := c.ReverseReplicationDirection(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} diff --git a/netapp/apiv1/netapppb/active_directory.pb.go b/netapp/apiv1/netapppb/active_directory.pb.go new file mode 100755 index 00000000000..38c86e4091e --- /dev/null +++ b/netapp/apiv1/netapppb/active_directory.pb.go @@ -0,0 +1,1048 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/active_directory.proto + +package netapppb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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) +) + +// The Active Directory States +type ActiveDirectory_State int32 + +const ( + // Unspecified Active Directory State + ActiveDirectory_STATE_UNSPECIFIED ActiveDirectory_State = 0 + // Active Directory State is Creating + ActiveDirectory_CREATING ActiveDirectory_State = 1 + // Active Directory State is Ready + ActiveDirectory_READY ActiveDirectory_State = 2 + // Active Directory State is Updating + ActiveDirectory_UPDATING ActiveDirectory_State = 3 + // Active Directory State is In use + ActiveDirectory_IN_USE ActiveDirectory_State = 4 + // Active Directory State is Deleting + ActiveDirectory_DELETING ActiveDirectory_State = 5 + // Active Directory State is Error + ActiveDirectory_ERROR ActiveDirectory_State = 6 +) + +// Enum value maps for ActiveDirectory_State. +var ( + ActiveDirectory_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "READY", + 3: "UPDATING", + 4: "IN_USE", + 5: "DELETING", + 6: "ERROR", + } + ActiveDirectory_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "READY": 2, + "UPDATING": 3, + "IN_USE": 4, + "DELETING": 5, + "ERROR": 6, + } +) + +func (x ActiveDirectory_State) Enum() *ActiveDirectory_State { + p := new(ActiveDirectory_State) + *p = x + return p +} + +func (x ActiveDirectory_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ActiveDirectory_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_active_directory_proto_enumTypes[0].Descriptor() +} + +func (ActiveDirectory_State) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_active_directory_proto_enumTypes[0] +} + +func (x ActiveDirectory_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ActiveDirectory_State.Descriptor instead. +func (ActiveDirectory_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{6, 0} +} + +// ListActiveDirectoriesRequest for requesting multiple active directories. +type ListActiveDirectoriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListActiveDirectoriesRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, the server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListActiveDirectoriesRequest) Reset() { + *x = ListActiveDirectoriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_active_directory_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListActiveDirectoriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListActiveDirectoriesRequest) ProtoMessage() {} + +func (x *ListActiveDirectoriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_active_directory_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 ListActiveDirectoriesRequest.ProtoReflect.Descriptor instead. +func (*ListActiveDirectoriesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{0} +} + +func (x *ListActiveDirectoriesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListActiveDirectoriesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListActiveDirectoriesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListActiveDirectoriesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListActiveDirectoriesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// ListActiveDirectoriesResponse contains all the active directories requested. +type ListActiveDirectoriesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of active directories. + ActiveDirectories []*ActiveDirectory `protobuf:"bytes,1,rep,name=active_directories,json=activeDirectories,proto3" json:"active_directories,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListActiveDirectoriesResponse) Reset() { + *x = ListActiveDirectoriesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_active_directory_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListActiveDirectoriesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListActiveDirectoriesResponse) ProtoMessage() {} + +func (x *ListActiveDirectoriesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_active_directory_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 ListActiveDirectoriesResponse.ProtoReflect.Descriptor instead. +func (*ListActiveDirectoriesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{1} +} + +func (x *ListActiveDirectoriesResponse) GetActiveDirectories() []*ActiveDirectory { + if x != nil { + return x.ActiveDirectories + } + return nil +} + +func (x *ListActiveDirectoriesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListActiveDirectoriesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// GetActiveDirectory for getting a single active directory. +type GetActiveDirectoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the active directory. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetActiveDirectoryRequest) Reset() { + *x = GetActiveDirectoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_active_directory_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetActiveDirectoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetActiveDirectoryRequest) ProtoMessage() {} + +func (x *GetActiveDirectoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_active_directory_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 GetActiveDirectoryRequest.ProtoReflect.Descriptor instead. +func (*GetActiveDirectoryRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{2} +} + +func (x *GetActiveDirectoryRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// CreateActiveDirectoryRequest for creating an active directory. +type CreateActiveDirectoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Fields of the to be created active directory. + ActiveDirectory *ActiveDirectory `protobuf:"bytes,2,opt,name=active_directory,json=activeDirectory,proto3" json:"active_directory,omitempty"` + // Required. ID of the active directory to create. + ActiveDirectoryId string `protobuf:"bytes,3,opt,name=active_directory_id,json=activeDirectoryId,proto3" json:"active_directory_id,omitempty"` +} + +func (x *CreateActiveDirectoryRequest) Reset() { + *x = CreateActiveDirectoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_active_directory_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateActiveDirectoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateActiveDirectoryRequest) ProtoMessage() {} + +func (x *CreateActiveDirectoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_active_directory_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 CreateActiveDirectoryRequest.ProtoReflect.Descriptor instead. +func (*CreateActiveDirectoryRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateActiveDirectoryRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateActiveDirectoryRequest) GetActiveDirectory() *ActiveDirectory { + if x != nil { + return x.ActiveDirectory + } + return nil +} + +func (x *CreateActiveDirectoryRequest) GetActiveDirectoryId() string { + if x != nil { + return x.ActiveDirectoryId + } + return "" +} + +// UpdateActiveDirectoryRequest for updating an active directory. +type UpdateActiveDirectoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Active Directory resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The volume being updated + ActiveDirectory *ActiveDirectory `protobuf:"bytes,2,opt,name=active_directory,json=activeDirectory,proto3" json:"active_directory,omitempty"` +} + +func (x *UpdateActiveDirectoryRequest) Reset() { + *x = UpdateActiveDirectoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_active_directory_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateActiveDirectoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateActiveDirectoryRequest) ProtoMessage() {} + +func (x *UpdateActiveDirectoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_active_directory_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 UpdateActiveDirectoryRequest.ProtoReflect.Descriptor instead. +func (*UpdateActiveDirectoryRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateActiveDirectoryRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateActiveDirectoryRequest) GetActiveDirectory() *ActiveDirectory { + if x != nil { + return x.ActiveDirectory + } + return nil +} + +// DeleteActiveDirectoryRequest for deleting a single active directory. +type DeleteActiveDirectoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the active directory. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteActiveDirectoryRequest) Reset() { + *x = DeleteActiveDirectoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_active_directory_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteActiveDirectoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteActiveDirectoryRequest) ProtoMessage() {} + +func (x *DeleteActiveDirectoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_active_directory_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 DeleteActiveDirectoryRequest.ProtoReflect.Descriptor instead. +func (*DeleteActiveDirectoryRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteActiveDirectoryRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// ActiveDirectory is the public representation of the active directory config. +type ActiveDirectory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The resource name of the active directory. + // Format: + // `projects/{project_number}/locations/{location_id}/activeDirectories/{active_directory_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Create time of the active directory. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The state of the AD. + State ActiveDirectory_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.netapp.v1.ActiveDirectory_State" json:"state,omitempty"` + // Required. Name of the Active Directory domain + Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"` + // The Active Directory site the service will limit Domain Controller + // discovery too. + Site string `protobuf:"bytes,5,opt,name=site,proto3" json:"site,omitempty"` + // Required. Comma separated list of DNS server IP addresses for the Active + // Directory domain. + Dns string `protobuf:"bytes,6,opt,name=dns,proto3" json:"dns,omitempty"` + // Required. NetBIOSPrefix is used as a prefix for SMB server name. + NetBiosPrefix string `protobuf:"bytes,7,opt,name=net_bios_prefix,json=netBiosPrefix,proto3" json:"net_bios_prefix,omitempty"` + // The Organizational Unit (OU) within the Windows Active Directory the user + // belongs to. + OrganizationalUnit string `protobuf:"bytes,8,opt,name=organizational_unit,json=organizationalUnit,proto3" json:"organizational_unit,omitempty"` + // If enabled, AES encryption will be enabled for SMB communication. + AesEncryption bool `protobuf:"varint,9,opt,name=aes_encryption,json=aesEncryption,proto3" json:"aes_encryption,omitempty"` + // Required. Username of the Active Directory domain administrator. + Username string `protobuf:"bytes,10,opt,name=username,proto3" json:"username,omitempty"` + // Required. Password of the Active Directory domain administrator. + Password string `protobuf:"bytes,11,opt,name=password,proto3" json:"password,omitempty"` + // Users to be added to the Built-in Backup Operator active directory group. + BackupOperators []string `protobuf:"bytes,12,rep,name=backup_operators,json=backupOperators,proto3" json:"backup_operators,omitempty"` + // Domain users to be given the SeSecurityPrivilege. + SecurityOperators []string `protobuf:"bytes,13,rep,name=security_operators,json=securityOperators,proto3" json:"security_operators,omitempty"` + // Name of the active directory machine. This optional parameter is used only + // while creating kerberos volume + KdcHostname string `protobuf:"bytes,14,opt,name=kdc_hostname,json=kdcHostname,proto3" json:"kdc_hostname,omitempty"` + // KDC server IP address for the active directory machine. + KdcIp string `protobuf:"bytes,15,opt,name=kdc_ip,json=kdcIp,proto3" json:"kdc_ip,omitempty"` + // If enabled, will allow access to local users and LDAP users. If access is + // needed for only LDAP users, it has to be disabled. + NfsUsersWithLdap bool `protobuf:"varint,16,opt,name=nfs_users_with_ldap,json=nfsUsersWithLdap,proto3" json:"nfs_users_with_ldap,omitempty"` + // Description of the active directory. + Description string `protobuf:"bytes,17,opt,name=description,proto3" json:"description,omitempty"` + // Specifies whether or not the LDAP traffic needs to be signed. + LdapSigning bool `protobuf:"varint,18,opt,name=ldap_signing,json=ldapSigning,proto3" json:"ldap_signing,omitempty"` + // If enabled, traffic between the SMB server to Domain Controller (DC) will + // be encrypted. + EncryptDcConnections bool `protobuf:"varint,19,opt,name=encrypt_dc_connections,json=encryptDcConnections,proto3" json:"encrypt_dc_connections,omitempty"` + // Labels for the active directory. + Labels map[string]string `protobuf:"bytes,20,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The state details of the Active Directory. + StateDetails string `protobuf:"bytes,21,opt,name=state_details,json=stateDetails,proto3" json:"state_details,omitempty"` +} + +func (x *ActiveDirectory) Reset() { + *x = ActiveDirectory{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_active_directory_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ActiveDirectory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActiveDirectory) ProtoMessage() {} + +func (x *ActiveDirectory) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_active_directory_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 ActiveDirectory.ProtoReflect.Descriptor instead. +func (*ActiveDirectory) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP(), []int{6} +} + +func (x *ActiveDirectory) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ActiveDirectory) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *ActiveDirectory) GetState() ActiveDirectory_State { + if x != nil { + return x.State + } + return ActiveDirectory_STATE_UNSPECIFIED +} + +func (x *ActiveDirectory) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *ActiveDirectory) GetSite() string { + if x != nil { + return x.Site + } + return "" +} + +func (x *ActiveDirectory) GetDns() string { + if x != nil { + return x.Dns + } + return "" +} + +func (x *ActiveDirectory) GetNetBiosPrefix() string { + if x != nil { + return x.NetBiosPrefix + } + return "" +} + +func (x *ActiveDirectory) GetOrganizationalUnit() string { + if x != nil { + return x.OrganizationalUnit + } + return "" +} + +func (x *ActiveDirectory) GetAesEncryption() bool { + if x != nil { + return x.AesEncryption + } + return false +} + +func (x *ActiveDirectory) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *ActiveDirectory) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *ActiveDirectory) GetBackupOperators() []string { + if x != nil { + return x.BackupOperators + } + return nil +} + +func (x *ActiveDirectory) GetSecurityOperators() []string { + if x != nil { + return x.SecurityOperators + } + return nil +} + +func (x *ActiveDirectory) GetKdcHostname() string { + if x != nil { + return x.KdcHostname + } + return "" +} + +func (x *ActiveDirectory) GetKdcIp() string { + if x != nil { + return x.KdcIp + } + return "" +} + +func (x *ActiveDirectory) GetNfsUsersWithLdap() bool { + if x != nil { + return x.NfsUsersWithLdap + } + return false +} + +func (x *ActiveDirectory) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ActiveDirectory) GetLdapSigning() bool { + if x != nil { + return x.LdapSigning + } + return false +} + +func (x *ActiveDirectory) GetEncryptDcConnections() bool { + if x != nil { + return x.EncryptDcConnections + } + return false +} + +func (x *ActiveDirectory) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *ActiveDirectory) GetStateDetails() string { + if x != nil { + return x.StateDetails + } + return "" +} + +var File_google_cloud_netapp_v1_active_directory_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_active_directory_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, + 0x25, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xc1, 0x01, + 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x56, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x5e, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xf3, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x22, 0xb9, 0x01, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x22, 0x61, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9b, 0x09, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x74, 0x65, + 0x12, 0x15, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x5f, 0x62, + 0x69, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x42, 0x69, 0x6f, 0x73, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x65, 0x73, 0x5f, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, + 0x65, 0x73, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x29, + 0x0a, 0x10, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6b, 0x64, 0x63, 0x5f, + 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6b, 0x64, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6b, + 0x64, 0x63, 0x5f, 0x69, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6b, 0x64, 0x63, + 0x49, 0x70, 0x12, 0x2d, 0x0a, 0x13, 0x6e, 0x66, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x64, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x10, 0x6e, 0x66, 0x73, 0x55, 0x73, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x64, 0x61, + 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x64, 0x61, 0x70, 0x5f, 0x73, 0x69, 0x67, 0x6e, + 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x64, 0x61, 0x70, 0x53, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x5f, 0x64, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x44, + 0x63, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x6a, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, + 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, + 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x3a, 0x78, 0xea, 0x41, 0x75, 0x0a, + 0x25, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, + 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x7d, 0x42, 0xb6, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x42, 0x14, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, + 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0xaa, + 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4e, + 0x65, 0x74, 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x5c, 0x56, + 0x31, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_active_directory_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_active_directory_proto_rawDescData = file_google_cloud_netapp_v1_active_directory_proto_rawDesc +) + +func file_google_cloud_netapp_v1_active_directory_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_active_directory_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_active_directory_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_active_directory_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_active_directory_proto_rawDescData +} + +var file_google_cloud_netapp_v1_active_directory_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_netapp_v1_active_directory_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_google_cloud_netapp_v1_active_directory_proto_goTypes = []interface{}{ + (ActiveDirectory_State)(0), // 0: google.cloud.netapp.v1.ActiveDirectory.State + (*ListActiveDirectoriesRequest)(nil), // 1: google.cloud.netapp.v1.ListActiveDirectoriesRequest + (*ListActiveDirectoriesResponse)(nil), // 2: google.cloud.netapp.v1.ListActiveDirectoriesResponse + (*GetActiveDirectoryRequest)(nil), // 3: google.cloud.netapp.v1.GetActiveDirectoryRequest + (*CreateActiveDirectoryRequest)(nil), // 4: google.cloud.netapp.v1.CreateActiveDirectoryRequest + (*UpdateActiveDirectoryRequest)(nil), // 5: google.cloud.netapp.v1.UpdateActiveDirectoryRequest + (*DeleteActiveDirectoryRequest)(nil), // 6: google.cloud.netapp.v1.DeleteActiveDirectoryRequest + (*ActiveDirectory)(nil), // 7: google.cloud.netapp.v1.ActiveDirectory + nil, // 8: google.cloud.netapp.v1.ActiveDirectory.LabelsEntry + (*fieldmaskpb.FieldMask)(nil), // 9: google.protobuf.FieldMask + (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp +} +var file_google_cloud_netapp_v1_active_directory_proto_depIdxs = []int32{ + 7, // 0: google.cloud.netapp.v1.ListActiveDirectoriesResponse.active_directories:type_name -> google.cloud.netapp.v1.ActiveDirectory + 7, // 1: google.cloud.netapp.v1.CreateActiveDirectoryRequest.active_directory:type_name -> google.cloud.netapp.v1.ActiveDirectory + 9, // 2: google.cloud.netapp.v1.UpdateActiveDirectoryRequest.update_mask:type_name -> google.protobuf.FieldMask + 7, // 3: google.cloud.netapp.v1.UpdateActiveDirectoryRequest.active_directory:type_name -> google.cloud.netapp.v1.ActiveDirectory + 10, // 4: google.cloud.netapp.v1.ActiveDirectory.create_time:type_name -> google.protobuf.Timestamp + 0, // 5: google.cloud.netapp.v1.ActiveDirectory.state:type_name -> google.cloud.netapp.v1.ActiveDirectory.State + 8, // 6: google.cloud.netapp.v1.ActiveDirectory.labels:type_name -> google.cloud.netapp.v1.ActiveDirectory.LabelsEntry + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_active_directory_proto_init() } +func file_google_cloud_netapp_v1_active_directory_proto_init() { + if File_google_cloud_netapp_v1_active_directory_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_netapp_v1_active_directory_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListActiveDirectoriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_active_directory_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListActiveDirectoriesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_active_directory_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetActiveDirectoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_active_directory_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateActiveDirectoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_active_directory_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateActiveDirectoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_active_directory_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteActiveDirectoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_active_directory_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActiveDirectory); 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_google_cloud_netapp_v1_active_directory_proto_rawDesc, + NumEnums: 1, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_netapp_v1_active_directory_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_active_directory_proto_depIdxs, + EnumInfos: file_google_cloud_netapp_v1_active_directory_proto_enumTypes, + MessageInfos: file_google_cloud_netapp_v1_active_directory_proto_msgTypes, + }.Build() + File_google_cloud_netapp_v1_active_directory_proto = out.File + file_google_cloud_netapp_v1_active_directory_proto_rawDesc = nil + file_google_cloud_netapp_v1_active_directory_proto_goTypes = nil + file_google_cloud_netapp_v1_active_directory_proto_depIdxs = nil +} diff --git a/netapp/apiv1/netapppb/cloud_netapp_service.pb.go b/netapp/apiv1/netapppb/cloud_netapp_service.pb.go new file mode 100755 index 00000000000..b80c498899a --- /dev/null +++ b/netapp/apiv1/netapppb/cloud_netapp_service.pb.go @@ -0,0 +1,2324 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/cloud_netapp_service.proto + +package netapppb + +import ( + context "context" + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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) +) + +// Represents the metadata of the long-running operation. +type OperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The time the operation was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the operation finished running. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. Server-defined resource path for the target of the operation. + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` + // Output only. Name of the verb executed by the operation. + Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"` + // Output only. Human-readable status of the operation, if any. + StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been canceled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"` + // Output only. API version used to start the operation. + ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` +} + +func (x *OperationMetadata) Reset() { + *x = OperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_cloud_netapp_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationMetadata) ProtoMessage() {} + +func (x *OperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_cloud_netapp_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 OperationMetadata.ProtoReflect.Descriptor instead. +func (*OperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescGZIP(), []int{0} +} + +func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *OperationMetadata) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *OperationMetadata) GetVerb() string { + if x != nil { + return x.Verb + } + return "" +} + +func (x *OperationMetadata) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *OperationMetadata) GetRequestedCancellation() bool { + if x != nil { + return x.RequestedCancellation + } + return false +} + +func (x *OperationMetadata) GetApiVersion() string { + if x != nil { + return x.ApiVersion + } + return "" +} + +var File_google_cloud_netapp_v1_cloud_netapp_service_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDesc = []byte{ + 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xd5, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x2a, 0x0a, + 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x16, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xf3, 0x3b, 0x0a, 0x06, + 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x12, 0xb8, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, + 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, + 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, + 0x73, 0x12, 0xf6, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x11, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x2c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x0c, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0xa5, 0x01, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x2d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x22, 0x3f, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, + 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xf8, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, 0xca, 0x41, 0x20, 0x0a, + 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x11, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, + 0x41, 0x18, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, + 0x3a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x32, 0x3d, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd2, 0x01, + 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, + 0x2a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xa4, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x09, 0x47, 0x65, + 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x22, 0x3a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, + 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcf, 0x01, + 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0xca, 0x41, 0x1b, 0x0a, + 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x2c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x06, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, + 0xd1, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x75, 0xca, 0x41, + 0x1b, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x12, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x32, + 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xc3, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x67, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb7, 0x01, 0x0a, 0x0c, 0x52, 0x65, + 0x76, 0x65, 0x72, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0xca, 0x41, 0x1b, 0x0a, 0x06, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x01, 0x2a, 0x22, + 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x76, + 0x65, 0x72, 0x74, 0x12, 0xb6, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x48, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0xa3, 0x01, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x46, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xe8, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x08, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x22, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0xd3, 0x01, + 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, + 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xea, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x14, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x4c, 0x3a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x32, 0x40, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xcc, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, + 0xb6, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x22, 0x44, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x37, 0x12, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x93, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x01, 0xca, 0x41, 0x24, 0x0a, 0x0f, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x2b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2c, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x95, + 0x02, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, + 0xca, 0x41, 0x24, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1c, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x3a, 0x10, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x32, 0x46, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x37, 0x2a, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb0, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, + 0x74, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0xda, 0x41, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, + 0x2f, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x0f, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, + 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x85, + 0x01, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x1f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6b, 0x6d, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x0a, 0x6b, 0x6d, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6b, 0x6d, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4b, 0x6d, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x6d, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xea, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0xca, 0x41, 0x1e, 0x0a, + 0x09, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x16, + 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x0a, 0x6b, 0x6d, + 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6b, + 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xc2, 0x01, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x62, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x4b, 0x6d, 0x73, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, + 0x22, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x12, 0xb4, 0x01, 0x0a, 0x0f, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x6d, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x6d, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, 0x2a, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6b, 0x6d, 0x73, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, + 0xcc, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x6a, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x2a, 0x2e, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc2, + 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0xaf, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xfd, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x96, 0x01, 0xca, + 0x41, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x0b, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0xca, 0x41, + 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x2a, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xff, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x98, 0x01, 0xca, 0x41, + 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x17, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x55, 0x3a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x46, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcf, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0xca, 0x41, 0x20, 0x0a, 0x0b, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x44, 0x3a, 0x01, 0x2a, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x12, 0xd5, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, + 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x6f, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x3a, 0x01, 0x2a, 0x22, 0x41, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, + 0x12, 0xf3, 0x01, 0x0a, 0x1b, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0xca, 0x41, 0x20, + 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, 0x01, 0x2a, 0x22, 0x4b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x42, 0x8a, 0x02, 0xea, 0x41, 0x4e, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x2c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x7d, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x42, 0x17, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, + 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x5c, + 0x56, 0x31, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescData = file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDesc +) + +func file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDescData +} + +var file_google_cloud_netapp_v1_cloud_netapp_service_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_cloud_netapp_v1_cloud_netapp_service_proto_goTypes = []interface{}{ + (*OperationMetadata)(nil), // 0: google.cloud.netapp.v1.OperationMetadata + (*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp + (*ListStoragePoolsRequest)(nil), // 2: google.cloud.netapp.v1.ListStoragePoolsRequest + (*CreateStoragePoolRequest)(nil), // 3: google.cloud.netapp.v1.CreateStoragePoolRequest + (*GetStoragePoolRequest)(nil), // 4: google.cloud.netapp.v1.GetStoragePoolRequest + (*UpdateStoragePoolRequest)(nil), // 5: google.cloud.netapp.v1.UpdateStoragePoolRequest + (*DeleteStoragePoolRequest)(nil), // 6: google.cloud.netapp.v1.DeleteStoragePoolRequest + (*ListVolumesRequest)(nil), // 7: google.cloud.netapp.v1.ListVolumesRequest + (*GetVolumeRequest)(nil), // 8: google.cloud.netapp.v1.GetVolumeRequest + (*CreateVolumeRequest)(nil), // 9: google.cloud.netapp.v1.CreateVolumeRequest + (*UpdateVolumeRequest)(nil), // 10: google.cloud.netapp.v1.UpdateVolumeRequest + (*DeleteVolumeRequest)(nil), // 11: google.cloud.netapp.v1.DeleteVolumeRequest + (*RevertVolumeRequest)(nil), // 12: google.cloud.netapp.v1.RevertVolumeRequest + (*ListSnapshotsRequest)(nil), // 13: google.cloud.netapp.v1.ListSnapshotsRequest + (*GetSnapshotRequest)(nil), // 14: google.cloud.netapp.v1.GetSnapshotRequest + (*CreateSnapshotRequest)(nil), // 15: google.cloud.netapp.v1.CreateSnapshotRequest + (*DeleteSnapshotRequest)(nil), // 16: google.cloud.netapp.v1.DeleteSnapshotRequest + (*UpdateSnapshotRequest)(nil), // 17: google.cloud.netapp.v1.UpdateSnapshotRequest + (*ListActiveDirectoriesRequest)(nil), // 18: google.cloud.netapp.v1.ListActiveDirectoriesRequest + (*GetActiveDirectoryRequest)(nil), // 19: google.cloud.netapp.v1.GetActiveDirectoryRequest + (*CreateActiveDirectoryRequest)(nil), // 20: google.cloud.netapp.v1.CreateActiveDirectoryRequest + (*UpdateActiveDirectoryRequest)(nil), // 21: google.cloud.netapp.v1.UpdateActiveDirectoryRequest + (*DeleteActiveDirectoryRequest)(nil), // 22: google.cloud.netapp.v1.DeleteActiveDirectoryRequest + (*ListKmsConfigsRequest)(nil), // 23: google.cloud.netapp.v1.ListKmsConfigsRequest + (*CreateKmsConfigRequest)(nil), // 24: google.cloud.netapp.v1.CreateKmsConfigRequest + (*GetKmsConfigRequest)(nil), // 25: google.cloud.netapp.v1.GetKmsConfigRequest + (*UpdateKmsConfigRequest)(nil), // 26: google.cloud.netapp.v1.UpdateKmsConfigRequest + (*EncryptVolumesRequest)(nil), // 27: google.cloud.netapp.v1.EncryptVolumesRequest + (*VerifyKmsConfigRequest)(nil), // 28: google.cloud.netapp.v1.VerifyKmsConfigRequest + (*DeleteKmsConfigRequest)(nil), // 29: google.cloud.netapp.v1.DeleteKmsConfigRequest + (*ListReplicationsRequest)(nil), // 30: google.cloud.netapp.v1.ListReplicationsRequest + (*GetReplicationRequest)(nil), // 31: google.cloud.netapp.v1.GetReplicationRequest + (*CreateReplicationRequest)(nil), // 32: google.cloud.netapp.v1.CreateReplicationRequest + (*DeleteReplicationRequest)(nil), // 33: google.cloud.netapp.v1.DeleteReplicationRequest + (*UpdateReplicationRequest)(nil), // 34: google.cloud.netapp.v1.UpdateReplicationRequest + (*StopReplicationRequest)(nil), // 35: google.cloud.netapp.v1.StopReplicationRequest + (*ResumeReplicationRequest)(nil), // 36: google.cloud.netapp.v1.ResumeReplicationRequest + (*ReverseReplicationDirectionRequest)(nil), // 37: google.cloud.netapp.v1.ReverseReplicationDirectionRequest + (*ListStoragePoolsResponse)(nil), // 38: google.cloud.netapp.v1.ListStoragePoolsResponse + (*longrunningpb.Operation)(nil), // 39: google.longrunning.Operation + (*StoragePool)(nil), // 40: google.cloud.netapp.v1.StoragePool + (*ListVolumesResponse)(nil), // 41: google.cloud.netapp.v1.ListVolumesResponse + (*Volume)(nil), // 42: google.cloud.netapp.v1.Volume + (*ListSnapshotsResponse)(nil), // 43: google.cloud.netapp.v1.ListSnapshotsResponse + (*Snapshot)(nil), // 44: google.cloud.netapp.v1.Snapshot + (*ListActiveDirectoriesResponse)(nil), // 45: google.cloud.netapp.v1.ListActiveDirectoriesResponse + (*ActiveDirectory)(nil), // 46: google.cloud.netapp.v1.ActiveDirectory + (*ListKmsConfigsResponse)(nil), // 47: google.cloud.netapp.v1.ListKmsConfigsResponse + (*KmsConfig)(nil), // 48: google.cloud.netapp.v1.KmsConfig + (*VerifyKmsConfigResponse)(nil), // 49: google.cloud.netapp.v1.VerifyKmsConfigResponse + (*ListReplicationsResponse)(nil), // 50: google.cloud.netapp.v1.ListReplicationsResponse + (*Replication)(nil), // 51: google.cloud.netapp.v1.Replication +} +var file_google_cloud_netapp_v1_cloud_netapp_service_proto_depIdxs = []int32{ + 1, // 0: google.cloud.netapp.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 1, // 1: google.cloud.netapp.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 2, // 2: google.cloud.netapp.v1.NetApp.ListStoragePools:input_type -> google.cloud.netapp.v1.ListStoragePoolsRequest + 3, // 3: google.cloud.netapp.v1.NetApp.CreateStoragePool:input_type -> google.cloud.netapp.v1.CreateStoragePoolRequest + 4, // 4: google.cloud.netapp.v1.NetApp.GetStoragePool:input_type -> google.cloud.netapp.v1.GetStoragePoolRequest + 5, // 5: google.cloud.netapp.v1.NetApp.UpdateStoragePool:input_type -> google.cloud.netapp.v1.UpdateStoragePoolRequest + 6, // 6: google.cloud.netapp.v1.NetApp.DeleteStoragePool:input_type -> google.cloud.netapp.v1.DeleteStoragePoolRequest + 7, // 7: google.cloud.netapp.v1.NetApp.ListVolumes:input_type -> google.cloud.netapp.v1.ListVolumesRequest + 8, // 8: google.cloud.netapp.v1.NetApp.GetVolume:input_type -> google.cloud.netapp.v1.GetVolumeRequest + 9, // 9: google.cloud.netapp.v1.NetApp.CreateVolume:input_type -> google.cloud.netapp.v1.CreateVolumeRequest + 10, // 10: google.cloud.netapp.v1.NetApp.UpdateVolume:input_type -> google.cloud.netapp.v1.UpdateVolumeRequest + 11, // 11: google.cloud.netapp.v1.NetApp.DeleteVolume:input_type -> google.cloud.netapp.v1.DeleteVolumeRequest + 12, // 12: google.cloud.netapp.v1.NetApp.RevertVolume:input_type -> google.cloud.netapp.v1.RevertVolumeRequest + 13, // 13: google.cloud.netapp.v1.NetApp.ListSnapshots:input_type -> google.cloud.netapp.v1.ListSnapshotsRequest + 14, // 14: google.cloud.netapp.v1.NetApp.GetSnapshot:input_type -> google.cloud.netapp.v1.GetSnapshotRequest + 15, // 15: google.cloud.netapp.v1.NetApp.CreateSnapshot:input_type -> google.cloud.netapp.v1.CreateSnapshotRequest + 16, // 16: google.cloud.netapp.v1.NetApp.DeleteSnapshot:input_type -> google.cloud.netapp.v1.DeleteSnapshotRequest + 17, // 17: google.cloud.netapp.v1.NetApp.UpdateSnapshot:input_type -> google.cloud.netapp.v1.UpdateSnapshotRequest + 18, // 18: google.cloud.netapp.v1.NetApp.ListActiveDirectories:input_type -> google.cloud.netapp.v1.ListActiveDirectoriesRequest + 19, // 19: google.cloud.netapp.v1.NetApp.GetActiveDirectory:input_type -> google.cloud.netapp.v1.GetActiveDirectoryRequest + 20, // 20: google.cloud.netapp.v1.NetApp.CreateActiveDirectory:input_type -> google.cloud.netapp.v1.CreateActiveDirectoryRequest + 21, // 21: google.cloud.netapp.v1.NetApp.UpdateActiveDirectory:input_type -> google.cloud.netapp.v1.UpdateActiveDirectoryRequest + 22, // 22: google.cloud.netapp.v1.NetApp.DeleteActiveDirectory:input_type -> google.cloud.netapp.v1.DeleteActiveDirectoryRequest + 23, // 23: google.cloud.netapp.v1.NetApp.ListKmsConfigs:input_type -> google.cloud.netapp.v1.ListKmsConfigsRequest + 24, // 24: google.cloud.netapp.v1.NetApp.CreateKmsConfig:input_type -> google.cloud.netapp.v1.CreateKmsConfigRequest + 25, // 25: google.cloud.netapp.v1.NetApp.GetKmsConfig:input_type -> google.cloud.netapp.v1.GetKmsConfigRequest + 26, // 26: google.cloud.netapp.v1.NetApp.UpdateKmsConfig:input_type -> google.cloud.netapp.v1.UpdateKmsConfigRequest + 27, // 27: google.cloud.netapp.v1.NetApp.EncryptVolumes:input_type -> google.cloud.netapp.v1.EncryptVolumesRequest + 28, // 28: google.cloud.netapp.v1.NetApp.VerifyKmsConfig:input_type -> google.cloud.netapp.v1.VerifyKmsConfigRequest + 29, // 29: google.cloud.netapp.v1.NetApp.DeleteKmsConfig:input_type -> google.cloud.netapp.v1.DeleteKmsConfigRequest + 30, // 30: google.cloud.netapp.v1.NetApp.ListReplications:input_type -> google.cloud.netapp.v1.ListReplicationsRequest + 31, // 31: google.cloud.netapp.v1.NetApp.GetReplication:input_type -> google.cloud.netapp.v1.GetReplicationRequest + 32, // 32: google.cloud.netapp.v1.NetApp.CreateReplication:input_type -> google.cloud.netapp.v1.CreateReplicationRequest + 33, // 33: google.cloud.netapp.v1.NetApp.DeleteReplication:input_type -> google.cloud.netapp.v1.DeleteReplicationRequest + 34, // 34: google.cloud.netapp.v1.NetApp.UpdateReplication:input_type -> google.cloud.netapp.v1.UpdateReplicationRequest + 35, // 35: google.cloud.netapp.v1.NetApp.StopReplication:input_type -> google.cloud.netapp.v1.StopReplicationRequest + 36, // 36: google.cloud.netapp.v1.NetApp.ResumeReplication:input_type -> google.cloud.netapp.v1.ResumeReplicationRequest + 37, // 37: google.cloud.netapp.v1.NetApp.ReverseReplicationDirection:input_type -> google.cloud.netapp.v1.ReverseReplicationDirectionRequest + 38, // 38: google.cloud.netapp.v1.NetApp.ListStoragePools:output_type -> google.cloud.netapp.v1.ListStoragePoolsResponse + 39, // 39: google.cloud.netapp.v1.NetApp.CreateStoragePool:output_type -> google.longrunning.Operation + 40, // 40: google.cloud.netapp.v1.NetApp.GetStoragePool:output_type -> google.cloud.netapp.v1.StoragePool + 39, // 41: google.cloud.netapp.v1.NetApp.UpdateStoragePool:output_type -> google.longrunning.Operation + 39, // 42: google.cloud.netapp.v1.NetApp.DeleteStoragePool:output_type -> google.longrunning.Operation + 41, // 43: google.cloud.netapp.v1.NetApp.ListVolumes:output_type -> google.cloud.netapp.v1.ListVolumesResponse + 42, // 44: google.cloud.netapp.v1.NetApp.GetVolume:output_type -> google.cloud.netapp.v1.Volume + 39, // 45: google.cloud.netapp.v1.NetApp.CreateVolume:output_type -> google.longrunning.Operation + 39, // 46: google.cloud.netapp.v1.NetApp.UpdateVolume:output_type -> google.longrunning.Operation + 39, // 47: google.cloud.netapp.v1.NetApp.DeleteVolume:output_type -> google.longrunning.Operation + 39, // 48: google.cloud.netapp.v1.NetApp.RevertVolume:output_type -> google.longrunning.Operation + 43, // 49: google.cloud.netapp.v1.NetApp.ListSnapshots:output_type -> google.cloud.netapp.v1.ListSnapshotsResponse + 44, // 50: google.cloud.netapp.v1.NetApp.GetSnapshot:output_type -> google.cloud.netapp.v1.Snapshot + 39, // 51: google.cloud.netapp.v1.NetApp.CreateSnapshot:output_type -> google.longrunning.Operation + 39, // 52: google.cloud.netapp.v1.NetApp.DeleteSnapshot:output_type -> google.longrunning.Operation + 39, // 53: google.cloud.netapp.v1.NetApp.UpdateSnapshot:output_type -> google.longrunning.Operation + 45, // 54: google.cloud.netapp.v1.NetApp.ListActiveDirectories:output_type -> google.cloud.netapp.v1.ListActiveDirectoriesResponse + 46, // 55: google.cloud.netapp.v1.NetApp.GetActiveDirectory:output_type -> google.cloud.netapp.v1.ActiveDirectory + 39, // 56: google.cloud.netapp.v1.NetApp.CreateActiveDirectory:output_type -> google.longrunning.Operation + 39, // 57: google.cloud.netapp.v1.NetApp.UpdateActiveDirectory:output_type -> google.longrunning.Operation + 39, // 58: google.cloud.netapp.v1.NetApp.DeleteActiveDirectory:output_type -> google.longrunning.Operation + 47, // 59: google.cloud.netapp.v1.NetApp.ListKmsConfigs:output_type -> google.cloud.netapp.v1.ListKmsConfigsResponse + 39, // 60: google.cloud.netapp.v1.NetApp.CreateKmsConfig:output_type -> google.longrunning.Operation + 48, // 61: google.cloud.netapp.v1.NetApp.GetKmsConfig:output_type -> google.cloud.netapp.v1.KmsConfig + 39, // 62: google.cloud.netapp.v1.NetApp.UpdateKmsConfig:output_type -> google.longrunning.Operation + 39, // 63: google.cloud.netapp.v1.NetApp.EncryptVolumes:output_type -> google.longrunning.Operation + 49, // 64: google.cloud.netapp.v1.NetApp.VerifyKmsConfig:output_type -> google.cloud.netapp.v1.VerifyKmsConfigResponse + 39, // 65: google.cloud.netapp.v1.NetApp.DeleteKmsConfig:output_type -> google.longrunning.Operation + 50, // 66: google.cloud.netapp.v1.NetApp.ListReplications:output_type -> google.cloud.netapp.v1.ListReplicationsResponse + 51, // 67: google.cloud.netapp.v1.NetApp.GetReplication:output_type -> google.cloud.netapp.v1.Replication + 39, // 68: google.cloud.netapp.v1.NetApp.CreateReplication:output_type -> google.longrunning.Operation + 39, // 69: google.cloud.netapp.v1.NetApp.DeleteReplication:output_type -> google.longrunning.Operation + 39, // 70: google.cloud.netapp.v1.NetApp.UpdateReplication:output_type -> google.longrunning.Operation + 39, // 71: google.cloud.netapp.v1.NetApp.StopReplication:output_type -> google.longrunning.Operation + 39, // 72: google.cloud.netapp.v1.NetApp.ResumeReplication:output_type -> google.longrunning.Operation + 39, // 73: google.cloud.netapp.v1.NetApp.ReverseReplicationDirection:output_type -> google.longrunning.Operation + 38, // [38:74] is the sub-list for method output_type + 2, // [2:38] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_cloud_netapp_service_proto_init() } +func file_google_cloud_netapp_v1_cloud_netapp_service_proto_init() { + if File_google_cloud_netapp_v1_cloud_netapp_service_proto != nil { + return + } + file_google_cloud_netapp_v1_active_directory_proto_init() + file_google_cloud_netapp_v1_kms_proto_init() + file_google_cloud_netapp_v1_replication_proto_init() + file_google_cloud_netapp_v1_snapshot_proto_init() + file_google_cloud_netapp_v1_storage_pool_proto_init() + file_google_cloud_netapp_v1_volume_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_netapp_v1_cloud_netapp_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperationMetadata); 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_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_netapp_v1_cloud_netapp_service_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_cloud_netapp_service_proto_depIdxs, + MessageInfos: file_google_cloud_netapp_v1_cloud_netapp_service_proto_msgTypes, + }.Build() + File_google_cloud_netapp_v1_cloud_netapp_service_proto = out.File + file_google_cloud_netapp_v1_cloud_netapp_service_proto_rawDesc = nil + file_google_cloud_netapp_v1_cloud_netapp_service_proto_goTypes = nil + file_google_cloud_netapp_v1_cloud_netapp_service_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// NetAppClient is the client API for NetApp service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NetAppClient interface { + // Returns descriptions of all storage pools owned by the caller. + ListStoragePools(ctx context.Context, in *ListStoragePoolsRequest, opts ...grpc.CallOption) (*ListStoragePoolsResponse, error) + // Creates a new storage pool. + CreateStoragePool(ctx context.Context, in *CreateStoragePoolRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Returns the description of the specified storage pool by poolId. + GetStoragePool(ctx context.Context, in *GetStoragePoolRequest, opts ...grpc.CallOption) (*StoragePool, error) + // Updates the storage pool properties with the full spec + UpdateStoragePool(ctx context.Context, in *UpdateStoragePoolRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Warning! This operation will permanently delete the storage pool. + DeleteStoragePool(ctx context.Context, in *DeleteStoragePoolRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Volumes in a given project. + ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) + // Gets details of a single Volume. + GetVolume(ctx context.Context, in *GetVolumeRequest, opts ...grpc.CallOption) (*Volume, error) + // Creates a new Volume in a given project and location. + CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Volume. + UpdateVolume(ctx context.Context, in *UpdateVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Volume. + DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Revert an existing volume to a specified snapshot. + // Warning! This operation will permanently revert all changes made after the + // snapshot was created. + RevertVolume(ctx context.Context, in *RevertVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Returns descriptions of all snapshots for a volume. + ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) + // Describe a snapshot for a volume. + GetSnapshot(ctx context.Context, in *GetSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) + // Create a new snapshot for a volume. + CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a snapshot. + DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the settings of a specific snapshot. + UpdateSnapshot(ctx context.Context, in *UpdateSnapshotRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists active directories. + ListActiveDirectories(ctx context.Context, in *ListActiveDirectoriesRequest, opts ...grpc.CallOption) (*ListActiveDirectoriesResponse, error) + // Describes a specified active directory. + GetActiveDirectory(ctx context.Context, in *GetActiveDirectoryRequest, opts ...grpc.CallOption) (*ActiveDirectory, error) + // CreateActiveDirectory + // Creates the active directory specified in the request. + CreateActiveDirectory(ctx context.Context, in *CreateActiveDirectoryRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Update the parameters of an active directories. + UpdateActiveDirectory(ctx context.Context, in *UpdateActiveDirectoryRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Delete the active directory specified in the request. + DeleteActiveDirectory(ctx context.Context, in *DeleteActiveDirectoryRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Returns descriptions of all KMS configs owned by the caller. + ListKmsConfigs(ctx context.Context, in *ListKmsConfigsRequest, opts ...grpc.CallOption) (*ListKmsConfigsResponse, error) + // Creates a new KMS config. + CreateKmsConfig(ctx context.Context, in *CreateKmsConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Returns the description of the specified KMS config by kms_config_id. + GetKmsConfig(ctx context.Context, in *GetKmsConfigRequest, opts ...grpc.CallOption) (*KmsConfig, error) + // Updates the Kms config properties with the full spec + UpdateKmsConfig(ctx context.Context, in *UpdateKmsConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Encrypt the existing volumes without CMEK encryption with the desired the + // KMS config for the whole region. + EncryptVolumes(ctx context.Context, in *EncryptVolumesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Verifies KMS config reachability. + VerifyKmsConfig(ctx context.Context, in *VerifyKmsConfigRequest, opts ...grpc.CallOption) (*VerifyKmsConfigResponse, error) + // Warning! This operation will permanently delete the Kms config. + DeleteKmsConfig(ctx context.Context, in *DeleteKmsConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Returns descriptions of all replications for a volume. + ListReplications(ctx context.Context, in *ListReplicationsRequest, opts ...grpc.CallOption) (*ListReplicationsResponse, error) + // Describe a replication for a volume. + GetReplication(ctx context.Context, in *GetReplicationRequest, opts ...grpc.CallOption) (*Replication, error) + // Create a new replication for a volume. + CreateReplication(ctx context.Context, in *CreateReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a replication. + DeleteReplication(ctx context.Context, in *DeleteReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the settings of a specific replication. + UpdateReplication(ctx context.Context, in *UpdateReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Stop Cross Region Replication. + StopReplication(ctx context.Context, in *StopReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Resume Cross Region Replication. + ResumeReplication(ctx context.Context, in *ResumeReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Reverses direction of replication. Source becomes destination and + // destination becomes source. + ReverseReplicationDirection(ctx context.Context, in *ReverseReplicationDirectionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type netAppClient struct { + cc grpc.ClientConnInterface +} + +func NewNetAppClient(cc grpc.ClientConnInterface) NetAppClient { + return &netAppClient{cc} +} + +func (c *netAppClient) ListStoragePools(ctx context.Context, in *ListStoragePoolsRequest, opts ...grpc.CallOption) (*ListStoragePoolsResponse, error) { + out := new(ListStoragePoolsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ListStoragePools", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) CreateStoragePool(ctx context.Context, in *CreateStoragePoolRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/CreateStoragePool", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) GetStoragePool(ctx context.Context, in *GetStoragePoolRequest, opts ...grpc.CallOption) (*StoragePool, error) { + out := new(StoragePool) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/GetStoragePool", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) UpdateStoragePool(ctx context.Context, in *UpdateStoragePoolRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/UpdateStoragePool", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) DeleteStoragePool(ctx context.Context, in *DeleteStoragePoolRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/DeleteStoragePool", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { + out := new(ListVolumesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ListVolumes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) GetVolume(ctx context.Context, in *GetVolumeRequest, opts ...grpc.CallOption) (*Volume, error) { + out := new(Volume) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/GetVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/CreateVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) UpdateVolume(ctx context.Context, in *UpdateVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/UpdateVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/DeleteVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) RevertVolume(ctx context.Context, in *RevertVolumeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/RevertVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) { + out := new(ListSnapshotsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ListSnapshots", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) GetSnapshot(ctx context.Context, in *GetSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) { + out := new(Snapshot) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/GetSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/CreateSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/DeleteSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) UpdateSnapshot(ctx context.Context, in *UpdateSnapshotRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/UpdateSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) ListActiveDirectories(ctx context.Context, in *ListActiveDirectoriesRequest, opts ...grpc.CallOption) (*ListActiveDirectoriesResponse, error) { + out := new(ListActiveDirectoriesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ListActiveDirectories", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) GetActiveDirectory(ctx context.Context, in *GetActiveDirectoryRequest, opts ...grpc.CallOption) (*ActiveDirectory, error) { + out := new(ActiveDirectory) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/GetActiveDirectory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) CreateActiveDirectory(ctx context.Context, in *CreateActiveDirectoryRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/CreateActiveDirectory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) UpdateActiveDirectory(ctx context.Context, in *UpdateActiveDirectoryRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/UpdateActiveDirectory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) DeleteActiveDirectory(ctx context.Context, in *DeleteActiveDirectoryRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/DeleteActiveDirectory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) ListKmsConfigs(ctx context.Context, in *ListKmsConfigsRequest, opts ...grpc.CallOption) (*ListKmsConfigsResponse, error) { + out := new(ListKmsConfigsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ListKmsConfigs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) CreateKmsConfig(ctx context.Context, in *CreateKmsConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/CreateKmsConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) GetKmsConfig(ctx context.Context, in *GetKmsConfigRequest, opts ...grpc.CallOption) (*KmsConfig, error) { + out := new(KmsConfig) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/GetKmsConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) UpdateKmsConfig(ctx context.Context, in *UpdateKmsConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/UpdateKmsConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) EncryptVolumes(ctx context.Context, in *EncryptVolumesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/EncryptVolumes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) VerifyKmsConfig(ctx context.Context, in *VerifyKmsConfigRequest, opts ...grpc.CallOption) (*VerifyKmsConfigResponse, error) { + out := new(VerifyKmsConfigResponse) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/VerifyKmsConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) DeleteKmsConfig(ctx context.Context, in *DeleteKmsConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/DeleteKmsConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) ListReplications(ctx context.Context, in *ListReplicationsRequest, opts ...grpc.CallOption) (*ListReplicationsResponse, error) { + out := new(ListReplicationsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ListReplications", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) GetReplication(ctx context.Context, in *GetReplicationRequest, opts ...grpc.CallOption) (*Replication, error) { + out := new(Replication) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/GetReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) CreateReplication(ctx context.Context, in *CreateReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/CreateReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) DeleteReplication(ctx context.Context, in *DeleteReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/DeleteReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) UpdateReplication(ctx context.Context, in *UpdateReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/UpdateReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) StopReplication(ctx context.Context, in *StopReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/StopReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) ResumeReplication(ctx context.Context, in *ResumeReplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ResumeReplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *netAppClient) ReverseReplicationDirection(ctx context.Context, in *ReverseReplicationDirectionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.netapp.v1.NetApp/ReverseReplicationDirection", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NetAppServer is the server API for NetApp service. +type NetAppServer interface { + // Returns descriptions of all storage pools owned by the caller. + ListStoragePools(context.Context, *ListStoragePoolsRequest) (*ListStoragePoolsResponse, error) + // Creates a new storage pool. + CreateStoragePool(context.Context, *CreateStoragePoolRequest) (*longrunningpb.Operation, error) + // Returns the description of the specified storage pool by poolId. + GetStoragePool(context.Context, *GetStoragePoolRequest) (*StoragePool, error) + // Updates the storage pool properties with the full spec + UpdateStoragePool(context.Context, *UpdateStoragePoolRequest) (*longrunningpb.Operation, error) + // Warning! This operation will permanently delete the storage pool. + DeleteStoragePool(context.Context, *DeleteStoragePoolRequest) (*longrunningpb.Operation, error) + // Lists Volumes in a given project. + ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) + // Gets details of a single Volume. + GetVolume(context.Context, *GetVolumeRequest) (*Volume, error) + // Creates a new Volume in a given project and location. + CreateVolume(context.Context, *CreateVolumeRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Volume. + UpdateVolume(context.Context, *UpdateVolumeRequest) (*longrunningpb.Operation, error) + // Deletes a single Volume. + DeleteVolume(context.Context, *DeleteVolumeRequest) (*longrunningpb.Operation, error) + // Revert an existing volume to a specified snapshot. + // Warning! This operation will permanently revert all changes made after the + // snapshot was created. + RevertVolume(context.Context, *RevertVolumeRequest) (*longrunningpb.Operation, error) + // Returns descriptions of all snapshots for a volume. + ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) + // Describe a snapshot for a volume. + GetSnapshot(context.Context, *GetSnapshotRequest) (*Snapshot, error) + // Create a new snapshot for a volume. + CreateSnapshot(context.Context, *CreateSnapshotRequest) (*longrunningpb.Operation, error) + // Deletes a snapshot. + DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*longrunningpb.Operation, error) + // Updates the settings of a specific snapshot. + UpdateSnapshot(context.Context, *UpdateSnapshotRequest) (*longrunningpb.Operation, error) + // Lists active directories. + ListActiveDirectories(context.Context, *ListActiveDirectoriesRequest) (*ListActiveDirectoriesResponse, error) + // Describes a specified active directory. + GetActiveDirectory(context.Context, *GetActiveDirectoryRequest) (*ActiveDirectory, error) + // CreateActiveDirectory + // Creates the active directory specified in the request. + CreateActiveDirectory(context.Context, *CreateActiveDirectoryRequest) (*longrunningpb.Operation, error) + // Update the parameters of an active directories. + UpdateActiveDirectory(context.Context, *UpdateActiveDirectoryRequest) (*longrunningpb.Operation, error) + // Delete the active directory specified in the request. + DeleteActiveDirectory(context.Context, *DeleteActiveDirectoryRequest) (*longrunningpb.Operation, error) + // Returns descriptions of all KMS configs owned by the caller. + ListKmsConfigs(context.Context, *ListKmsConfigsRequest) (*ListKmsConfigsResponse, error) + // Creates a new KMS config. + CreateKmsConfig(context.Context, *CreateKmsConfigRequest) (*longrunningpb.Operation, error) + // Returns the description of the specified KMS config by kms_config_id. + GetKmsConfig(context.Context, *GetKmsConfigRequest) (*KmsConfig, error) + // Updates the Kms config properties with the full spec + UpdateKmsConfig(context.Context, *UpdateKmsConfigRequest) (*longrunningpb.Operation, error) + // Encrypt the existing volumes without CMEK encryption with the desired the + // KMS config for the whole region. + EncryptVolumes(context.Context, *EncryptVolumesRequest) (*longrunningpb.Operation, error) + // Verifies KMS config reachability. + VerifyKmsConfig(context.Context, *VerifyKmsConfigRequest) (*VerifyKmsConfigResponse, error) + // Warning! This operation will permanently delete the Kms config. + DeleteKmsConfig(context.Context, *DeleteKmsConfigRequest) (*longrunningpb.Operation, error) + // Returns descriptions of all replications for a volume. + ListReplications(context.Context, *ListReplicationsRequest) (*ListReplicationsResponse, error) + // Describe a replication for a volume. + GetReplication(context.Context, *GetReplicationRequest) (*Replication, error) + // Create a new replication for a volume. + CreateReplication(context.Context, *CreateReplicationRequest) (*longrunningpb.Operation, error) + // Deletes a replication. + DeleteReplication(context.Context, *DeleteReplicationRequest) (*longrunningpb.Operation, error) + // Updates the settings of a specific replication. + UpdateReplication(context.Context, *UpdateReplicationRequest) (*longrunningpb.Operation, error) + // Stop Cross Region Replication. + StopReplication(context.Context, *StopReplicationRequest) (*longrunningpb.Operation, error) + // Resume Cross Region Replication. + ResumeReplication(context.Context, *ResumeReplicationRequest) (*longrunningpb.Operation, error) + // Reverses direction of replication. Source becomes destination and + // destination becomes source. + ReverseReplicationDirection(context.Context, *ReverseReplicationDirectionRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedNetAppServer can be embedded to have forward compatible implementations. +type UnimplementedNetAppServer struct { +} + +func (*UnimplementedNetAppServer) ListStoragePools(context.Context, *ListStoragePoolsRequest) (*ListStoragePoolsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListStoragePools not implemented") +} +func (*UnimplementedNetAppServer) CreateStoragePool(context.Context, *CreateStoragePoolRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateStoragePool not implemented") +} +func (*UnimplementedNetAppServer) GetStoragePool(context.Context, *GetStoragePoolRequest) (*StoragePool, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStoragePool not implemented") +} +func (*UnimplementedNetAppServer) UpdateStoragePool(context.Context, *UpdateStoragePoolRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateStoragePool not implemented") +} +func (*UnimplementedNetAppServer) DeleteStoragePool(context.Context, *DeleteStoragePoolRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteStoragePool not implemented") +} +func (*UnimplementedNetAppServer) ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListVolumes not implemented") +} +func (*UnimplementedNetAppServer) GetVolume(context.Context, *GetVolumeRequest) (*Volume, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVolume not implemented") +} +func (*UnimplementedNetAppServer) CreateVolume(context.Context, *CreateVolumeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateVolume not implemented") +} +func (*UnimplementedNetAppServer) UpdateVolume(context.Context, *UpdateVolumeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateVolume not implemented") +} +func (*UnimplementedNetAppServer) DeleteVolume(context.Context, *DeleteVolumeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteVolume not implemented") +} +func (*UnimplementedNetAppServer) RevertVolume(context.Context, *RevertVolumeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method RevertVolume not implemented") +} +func (*UnimplementedNetAppServer) ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSnapshots not implemented") +} +func (*UnimplementedNetAppServer) GetSnapshot(context.Context, *GetSnapshotRequest) (*Snapshot, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSnapshot not implemented") +} +func (*UnimplementedNetAppServer) CreateSnapshot(context.Context, *CreateSnapshotRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSnapshot not implemented") +} +func (*UnimplementedNetAppServer) DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSnapshot not implemented") +} +func (*UnimplementedNetAppServer) UpdateSnapshot(context.Context, *UpdateSnapshotRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSnapshot not implemented") +} +func (*UnimplementedNetAppServer) ListActiveDirectories(context.Context, *ListActiveDirectoriesRequest) (*ListActiveDirectoriesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListActiveDirectories not implemented") +} +func (*UnimplementedNetAppServer) GetActiveDirectory(context.Context, *GetActiveDirectoryRequest) (*ActiveDirectory, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetActiveDirectory not implemented") +} +func (*UnimplementedNetAppServer) CreateActiveDirectory(context.Context, *CreateActiveDirectoryRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateActiveDirectory not implemented") +} +func (*UnimplementedNetAppServer) UpdateActiveDirectory(context.Context, *UpdateActiveDirectoryRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateActiveDirectory not implemented") +} +func (*UnimplementedNetAppServer) DeleteActiveDirectory(context.Context, *DeleteActiveDirectoryRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteActiveDirectory not implemented") +} +func (*UnimplementedNetAppServer) ListKmsConfigs(context.Context, *ListKmsConfigsRequest) (*ListKmsConfigsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListKmsConfigs not implemented") +} +func (*UnimplementedNetAppServer) CreateKmsConfig(context.Context, *CreateKmsConfigRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateKmsConfig not implemented") +} +func (*UnimplementedNetAppServer) GetKmsConfig(context.Context, *GetKmsConfigRequest) (*KmsConfig, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetKmsConfig not implemented") +} +func (*UnimplementedNetAppServer) UpdateKmsConfig(context.Context, *UpdateKmsConfigRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateKmsConfig not implemented") +} +func (*UnimplementedNetAppServer) EncryptVolumes(context.Context, *EncryptVolumesRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method EncryptVolumes not implemented") +} +func (*UnimplementedNetAppServer) VerifyKmsConfig(context.Context, *VerifyKmsConfigRequest) (*VerifyKmsConfigResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method VerifyKmsConfig not implemented") +} +func (*UnimplementedNetAppServer) DeleteKmsConfig(context.Context, *DeleteKmsConfigRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteKmsConfig not implemented") +} +func (*UnimplementedNetAppServer) ListReplications(context.Context, *ListReplicationsRequest) (*ListReplicationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListReplications not implemented") +} +func (*UnimplementedNetAppServer) GetReplication(context.Context, *GetReplicationRequest) (*Replication, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetReplication not implemented") +} +func (*UnimplementedNetAppServer) CreateReplication(context.Context, *CreateReplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateReplication not implemented") +} +func (*UnimplementedNetAppServer) DeleteReplication(context.Context, *DeleteReplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteReplication not implemented") +} +func (*UnimplementedNetAppServer) UpdateReplication(context.Context, *UpdateReplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateReplication not implemented") +} +func (*UnimplementedNetAppServer) StopReplication(context.Context, *StopReplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method StopReplication not implemented") +} +func (*UnimplementedNetAppServer) ResumeReplication(context.Context, *ResumeReplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResumeReplication not implemented") +} +func (*UnimplementedNetAppServer) ReverseReplicationDirection(context.Context, *ReverseReplicationDirectionRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReverseReplicationDirection not implemented") +} + +func RegisterNetAppServer(s *grpc.Server, srv NetAppServer) { + s.RegisterService(&_NetApp_serviceDesc, srv) +} + +func _NetApp_ListStoragePools_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListStoragePoolsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ListStoragePools(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ListStoragePools", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ListStoragePools(ctx, req.(*ListStoragePoolsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_CreateStoragePool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateStoragePoolRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).CreateStoragePool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/CreateStoragePool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).CreateStoragePool(ctx, req.(*CreateStoragePoolRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_GetStoragePool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStoragePoolRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).GetStoragePool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/GetStoragePool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).GetStoragePool(ctx, req.(*GetStoragePoolRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_UpdateStoragePool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateStoragePoolRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).UpdateStoragePool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/UpdateStoragePool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).UpdateStoragePool(ctx, req.(*UpdateStoragePoolRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_DeleteStoragePool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteStoragePoolRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).DeleteStoragePool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/DeleteStoragePool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).DeleteStoragePool(ctx, req.(*DeleteStoragePoolRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ListVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ListVolumes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ListVolumes(ctx, req.(*ListVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_GetVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).GetVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/GetVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).GetVolume(ctx, req.(*GetVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).CreateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/CreateVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_UpdateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).UpdateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/UpdateVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).UpdateVolume(ctx, req.(*UpdateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).DeleteVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/DeleteVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).DeleteVolume(ctx, req.(*DeleteVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_RevertVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RevertVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).RevertVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/RevertVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).RevertVolume(ctx, req.(*RevertVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSnapshotsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ListSnapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ListSnapshots", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ListSnapshots(ctx, req.(*ListSnapshotsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_GetSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).GetSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/GetSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).GetSnapshot(ctx, req.(*GetSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_CreateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).CreateSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/CreateSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).CreateSnapshot(ctx, req.(*CreateSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_DeleteSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).DeleteSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/DeleteSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).DeleteSnapshot(ctx, req.(*DeleteSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_UpdateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).UpdateSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/UpdateSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).UpdateSnapshot(ctx, req.(*UpdateSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_ListActiveDirectories_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListActiveDirectoriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ListActiveDirectories(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ListActiveDirectories", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ListActiveDirectories(ctx, req.(*ListActiveDirectoriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_GetActiveDirectory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetActiveDirectoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).GetActiveDirectory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/GetActiveDirectory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).GetActiveDirectory(ctx, req.(*GetActiveDirectoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_CreateActiveDirectory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateActiveDirectoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).CreateActiveDirectory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/CreateActiveDirectory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).CreateActiveDirectory(ctx, req.(*CreateActiveDirectoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_UpdateActiveDirectory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateActiveDirectoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).UpdateActiveDirectory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/UpdateActiveDirectory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).UpdateActiveDirectory(ctx, req.(*UpdateActiveDirectoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_DeleteActiveDirectory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteActiveDirectoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).DeleteActiveDirectory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/DeleteActiveDirectory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).DeleteActiveDirectory(ctx, req.(*DeleteActiveDirectoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_ListKmsConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListKmsConfigsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ListKmsConfigs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ListKmsConfigs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ListKmsConfigs(ctx, req.(*ListKmsConfigsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_CreateKmsConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateKmsConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).CreateKmsConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/CreateKmsConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).CreateKmsConfig(ctx, req.(*CreateKmsConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_GetKmsConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKmsConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).GetKmsConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/GetKmsConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).GetKmsConfig(ctx, req.(*GetKmsConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_UpdateKmsConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateKmsConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).UpdateKmsConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/UpdateKmsConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).UpdateKmsConfig(ctx, req.(*UpdateKmsConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_EncryptVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EncryptVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).EncryptVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/EncryptVolumes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).EncryptVolumes(ctx, req.(*EncryptVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_VerifyKmsConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VerifyKmsConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).VerifyKmsConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/VerifyKmsConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).VerifyKmsConfig(ctx, req.(*VerifyKmsConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_DeleteKmsConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteKmsConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).DeleteKmsConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/DeleteKmsConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).DeleteKmsConfig(ctx, req.(*DeleteKmsConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_ListReplications_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListReplicationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ListReplications(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ListReplications", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ListReplications(ctx, req.(*ListReplicationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_GetReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).GetReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/GetReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).GetReplication(ctx, req.(*GetReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_CreateReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).CreateReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/CreateReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).CreateReplication(ctx, req.(*CreateReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_DeleteReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).DeleteReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/DeleteReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).DeleteReplication(ctx, req.(*DeleteReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_UpdateReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).UpdateReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/UpdateReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).UpdateReplication(ctx, req.(*UpdateReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_StopReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StopReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).StopReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/StopReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).StopReplication(ctx, req.(*StopReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_ResumeReplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResumeReplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ResumeReplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ResumeReplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ResumeReplication(ctx, req.(*ResumeReplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _NetApp_ReverseReplicationDirection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReverseReplicationDirectionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NetAppServer).ReverseReplicationDirection(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.netapp.v1.NetApp/ReverseReplicationDirection", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NetAppServer).ReverseReplicationDirection(ctx, req.(*ReverseReplicationDirectionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _NetApp_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.netapp.v1.NetApp", + HandlerType: (*NetAppServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListStoragePools", + Handler: _NetApp_ListStoragePools_Handler, + }, + { + MethodName: "CreateStoragePool", + Handler: _NetApp_CreateStoragePool_Handler, + }, + { + MethodName: "GetStoragePool", + Handler: _NetApp_GetStoragePool_Handler, + }, + { + MethodName: "UpdateStoragePool", + Handler: _NetApp_UpdateStoragePool_Handler, + }, + { + MethodName: "DeleteStoragePool", + Handler: _NetApp_DeleteStoragePool_Handler, + }, + { + MethodName: "ListVolumes", + Handler: _NetApp_ListVolumes_Handler, + }, + { + MethodName: "GetVolume", + Handler: _NetApp_GetVolume_Handler, + }, + { + MethodName: "CreateVolume", + Handler: _NetApp_CreateVolume_Handler, + }, + { + MethodName: "UpdateVolume", + Handler: _NetApp_UpdateVolume_Handler, + }, + { + MethodName: "DeleteVolume", + Handler: _NetApp_DeleteVolume_Handler, + }, + { + MethodName: "RevertVolume", + Handler: _NetApp_RevertVolume_Handler, + }, + { + MethodName: "ListSnapshots", + Handler: _NetApp_ListSnapshots_Handler, + }, + { + MethodName: "GetSnapshot", + Handler: _NetApp_GetSnapshot_Handler, + }, + { + MethodName: "CreateSnapshot", + Handler: _NetApp_CreateSnapshot_Handler, + }, + { + MethodName: "DeleteSnapshot", + Handler: _NetApp_DeleteSnapshot_Handler, + }, + { + MethodName: "UpdateSnapshot", + Handler: _NetApp_UpdateSnapshot_Handler, + }, + { + MethodName: "ListActiveDirectories", + Handler: _NetApp_ListActiveDirectories_Handler, + }, + { + MethodName: "GetActiveDirectory", + Handler: _NetApp_GetActiveDirectory_Handler, + }, + { + MethodName: "CreateActiveDirectory", + Handler: _NetApp_CreateActiveDirectory_Handler, + }, + { + MethodName: "UpdateActiveDirectory", + Handler: _NetApp_UpdateActiveDirectory_Handler, + }, + { + MethodName: "DeleteActiveDirectory", + Handler: _NetApp_DeleteActiveDirectory_Handler, + }, + { + MethodName: "ListKmsConfigs", + Handler: _NetApp_ListKmsConfigs_Handler, + }, + { + MethodName: "CreateKmsConfig", + Handler: _NetApp_CreateKmsConfig_Handler, + }, + { + MethodName: "GetKmsConfig", + Handler: _NetApp_GetKmsConfig_Handler, + }, + { + MethodName: "UpdateKmsConfig", + Handler: _NetApp_UpdateKmsConfig_Handler, + }, + { + MethodName: "EncryptVolumes", + Handler: _NetApp_EncryptVolumes_Handler, + }, + { + MethodName: "VerifyKmsConfig", + Handler: _NetApp_VerifyKmsConfig_Handler, + }, + { + MethodName: "DeleteKmsConfig", + Handler: _NetApp_DeleteKmsConfig_Handler, + }, + { + MethodName: "ListReplications", + Handler: _NetApp_ListReplications_Handler, + }, + { + MethodName: "GetReplication", + Handler: _NetApp_GetReplication_Handler, + }, + { + MethodName: "CreateReplication", + Handler: _NetApp_CreateReplication_Handler, + }, + { + MethodName: "DeleteReplication", + Handler: _NetApp_DeleteReplication_Handler, + }, + { + MethodName: "UpdateReplication", + Handler: _NetApp_UpdateReplication_Handler, + }, + { + MethodName: "StopReplication", + Handler: _NetApp_StopReplication_Handler, + }, + { + MethodName: "ResumeReplication", + Handler: _NetApp_ResumeReplication_Handler, + }, + { + MethodName: "ReverseReplicationDirection", + Handler: _NetApp_ReverseReplicationDirection_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/netapp/v1/cloud_netapp_service.proto", +} diff --git a/netapp/apiv1/netapppb/common.pb.go b/netapp/apiv1/netapppb/common.pb.go new file mode 100755 index 00000000000..ced65607431 --- /dev/null +++ b/netapp/apiv1/netapppb/common.pb.go @@ -0,0 +1,225 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/common.proto + +package netapppb + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +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) +) + +// The service levels - Storage Pool, Volumes +type ServiceLevel int32 + +const ( + ServiceLevel_SERVICE_LEVEL_UNSPECIFIED ServiceLevel = 0 + ServiceLevel_PREMIUM ServiceLevel = 1 + ServiceLevel_EXTREME ServiceLevel = 2 + // Standard (Software offering) + ServiceLevel_STANDARD ServiceLevel = 3 +) + +// Enum value maps for ServiceLevel. +var ( + ServiceLevel_name = map[int32]string{ + 0: "SERVICE_LEVEL_UNSPECIFIED", + 1: "PREMIUM", + 2: "EXTREME", + 3: "STANDARD", + } + ServiceLevel_value = map[string]int32{ + "SERVICE_LEVEL_UNSPECIFIED": 0, + "PREMIUM": 1, + "EXTREME": 2, + "STANDARD": 3, + } +) + +func (x ServiceLevel) Enum() *ServiceLevel { + p := new(ServiceLevel) + *p = x + return p +} + +func (x ServiceLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ServiceLevel) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_common_proto_enumTypes[0].Descriptor() +} + +func (ServiceLevel) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_common_proto_enumTypes[0] +} + +func (x ServiceLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ServiceLevel.Descriptor instead. +func (ServiceLevel) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_common_proto_rawDescGZIP(), []int{0} +} + +// Defined the current volume encryption key source. +type EncryptionType int32 + +const ( + // The source of encryption key is not specified. + EncryptionType_ENCRYPTION_TYPE_UNSPECIFIED EncryptionType = 0 + // Google managed encryption key. + EncryptionType_SERVICE_MANAGED EncryptionType = 1 + // Customer managed encryption key, which is stored in KMS. + EncryptionType_CLOUD_KMS EncryptionType = 2 +) + +// Enum value maps for EncryptionType. +var ( + EncryptionType_name = map[int32]string{ + 0: "ENCRYPTION_TYPE_UNSPECIFIED", + 1: "SERVICE_MANAGED", + 2: "CLOUD_KMS", + } + EncryptionType_value = map[string]int32{ + "ENCRYPTION_TYPE_UNSPECIFIED": 0, + "SERVICE_MANAGED": 1, + "CLOUD_KMS": 2, + } +) + +func (x EncryptionType) Enum() *EncryptionType { + p := new(EncryptionType) + *p = x + return p +} + +func (x EncryptionType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EncryptionType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_common_proto_enumTypes[1].Descriptor() +} + +func (EncryptionType) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_common_proto_enumTypes[1] +} + +func (x EncryptionType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use EncryptionType.Descriptor instead. +func (EncryptionType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_common_proto_rawDescGZIP(), []int{1} +} + +var File_google_cloud_netapp_v1_common_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_common_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2a, 0x55, 0x0a, + 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1d, 0x0a, + 0x19, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x54, + 0x52, 0x45, 0x4d, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, + 0x52, 0x44, 0x10, 0x03, 0x2a, 0x55, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x49, + 0x43, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x4b, 0x4d, 0x53, 0x10, 0x02, 0x42, 0xad, 0x01, 0x0a, 0x1a, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0xaa, 0x02, 0x16, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4e, 0x65, 0x74, + 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x5c, 0x56, 0x31, 0xea, + 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_common_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_common_proto_rawDescData = file_google_cloud_netapp_v1_common_proto_rawDesc +) + +func file_google_cloud_netapp_v1_common_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_common_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_common_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_common_proto_rawDescData +} + +var file_google_cloud_netapp_v1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_netapp_v1_common_proto_goTypes = []interface{}{ + (ServiceLevel)(0), // 0: google.cloud.netapp.v1.ServiceLevel + (EncryptionType)(0), // 1: google.cloud.netapp.v1.EncryptionType +} +var file_google_cloud_netapp_v1_common_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_common_proto_init() } +func file_google_cloud_netapp_v1_common_proto_init() { + if File_google_cloud_netapp_v1_common_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_netapp_v1_common_proto_rawDesc, + NumEnums: 2, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_netapp_v1_common_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_common_proto_depIdxs, + EnumInfos: file_google_cloud_netapp_v1_common_proto_enumTypes, + }.Build() + File_google_cloud_netapp_v1_common_proto = out.File + file_google_cloud_netapp_v1_common_proto_rawDesc = nil + file_google_cloud_netapp_v1_common_proto_goTypes = nil + file_google_cloud_netapp_v1_common_proto_depIdxs = nil +} diff --git a/netapp/apiv1/netapppb/kms.pb.go b/netapp/apiv1/netapppb/kms.pb.go new file mode 100755 index 00000000000..57183c0b65f --- /dev/null +++ b/netapp/apiv1/netapppb/kms.pb.go @@ -0,0 +1,1147 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/kms.proto + +package netapppb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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) +) + +// The KmsConfig States +type KmsConfig_State int32 + +const ( + // Unspecified KmsConfig State + KmsConfig_STATE_UNSPECIFIED KmsConfig_State = 0 + // KmsConfig State is Ready + KmsConfig_READY KmsConfig_State = 1 + // KmsConfig State is Creating + KmsConfig_CREATING KmsConfig_State = 2 + // KmsConfig State is Deleting + KmsConfig_DELETING KmsConfig_State = 3 + // KmsConfig State is Updating + KmsConfig_UPDATING KmsConfig_State = 4 + // KmsConfig State is In Use. + KmsConfig_IN_USE KmsConfig_State = 5 + // KmsConfig State is Error + KmsConfig_ERROR KmsConfig_State = 6 + // KmsConfig State is Pending to verify crypto key access. + KmsConfig_KEY_CHECK_PENDING KmsConfig_State = 7 + // KmsConfig State is Not accessbile by the SDE service account to the + // crypto key. + KmsConfig_KEY_NOT_REACHABLE KmsConfig_State = 8 + // KmsConfig State is Disabling. + KmsConfig_DISABLING KmsConfig_State = 9 + // KmsConfig State is Disabled. + KmsConfig_DISABLED KmsConfig_State = 10 + // KmsConfig State is Migrating. + // The existing volumes are migrating from SMEK to CMEK. + KmsConfig_MIGRATING KmsConfig_State = 11 +) + +// Enum value maps for KmsConfig_State. +var ( + KmsConfig_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "READY", + 2: "CREATING", + 3: "DELETING", + 4: "UPDATING", + 5: "IN_USE", + 6: "ERROR", + 7: "KEY_CHECK_PENDING", + 8: "KEY_NOT_REACHABLE", + 9: "DISABLING", + 10: "DISABLED", + 11: "MIGRATING", + } + KmsConfig_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "READY": 1, + "CREATING": 2, + "DELETING": 3, + "UPDATING": 4, + "IN_USE": 5, + "ERROR": 6, + "KEY_CHECK_PENDING": 7, + "KEY_NOT_REACHABLE": 8, + "DISABLING": 9, + "DISABLED": 10, + "MIGRATING": 11, + } +) + +func (x KmsConfig_State) Enum() *KmsConfig_State { + p := new(KmsConfig_State) + *p = x + return p +} + +func (x KmsConfig_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (KmsConfig_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_kms_proto_enumTypes[0].Descriptor() +} + +func (KmsConfig_State) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_kms_proto_enumTypes[0] +} + +func (x KmsConfig_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use KmsConfig_State.Descriptor instead. +func (KmsConfig_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{9, 0} +} + +type GetKmsConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the KmsConfig + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetKmsConfigRequest) Reset() { + *x = GetKmsConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetKmsConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetKmsConfigRequest) ProtoMessage() {} + +func (x *GetKmsConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 GetKmsConfigRequest.ProtoReflect.Descriptor instead. +func (*GetKmsConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{0} +} + +func (x *GetKmsConfigRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type ListKmsConfigsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of items to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The next_page_token value to use if there are additional + // results to retrieve for this list request. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Sort results. Supported values are "name", "name desc" or "" (unsorted). + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // List filter. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListKmsConfigsRequest) Reset() { + *x = ListKmsConfigsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListKmsConfigsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListKmsConfigsRequest) ProtoMessage() {} + +func (x *ListKmsConfigsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 ListKmsConfigsRequest.ProtoReflect.Descriptor instead. +func (*ListKmsConfigsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{1} +} + +func (x *ListKmsConfigsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListKmsConfigsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListKmsConfigsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListKmsConfigsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListKmsConfigsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +type ListKmsConfigsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of KmsConfigs + KmsConfigs []*KmsConfig `protobuf:"bytes,1,rep,name=kms_configs,json=kmsConfigs,proto3" json:"kms_configs,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListKmsConfigsResponse) Reset() { + *x = ListKmsConfigsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListKmsConfigsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListKmsConfigsResponse) ProtoMessage() {} + +func (x *ListKmsConfigsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 ListKmsConfigsResponse.ProtoReflect.Descriptor instead. +func (*ListKmsConfigsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{2} +} + +func (x *ListKmsConfigsResponse) GetKmsConfigs() []*KmsConfig { + if x != nil { + return x.KmsConfigs + } + return nil +} + +func (x *ListKmsConfigsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListKmsConfigsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +type CreateKmsConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting KmsConfig + // If auto-generating Id server-side, remove this field and + // id from the method_signature of Create RPC + KmsConfigId string `protobuf:"bytes,2,opt,name=kms_config_id,json=kmsConfigId,proto3" json:"kms_config_id,omitempty"` + // Required. The required parameters to create a new KmsConfig. + KmsConfig *KmsConfig `protobuf:"bytes,3,opt,name=kms_config,json=kmsConfig,proto3" json:"kms_config,omitempty"` +} + +func (x *CreateKmsConfigRequest) Reset() { + *x = CreateKmsConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateKmsConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateKmsConfigRequest) ProtoMessage() {} + +func (x *CreateKmsConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 CreateKmsConfigRequest.ProtoReflect.Descriptor instead. +func (*CreateKmsConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateKmsConfigRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateKmsConfigRequest) GetKmsConfigId() string { + if x != nil { + return x.KmsConfigId + } + return "" +} + +func (x *CreateKmsConfigRequest) GetKmsConfig() *KmsConfig { + if x != nil { + return x.KmsConfig + } + return nil +} + +type UpdateKmsConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // KmsConfig resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The KmsConfig being updated + KmsConfig *KmsConfig `protobuf:"bytes,2,opt,name=kms_config,json=kmsConfig,proto3" json:"kms_config,omitempty"` +} + +func (x *UpdateKmsConfigRequest) Reset() { + *x = UpdateKmsConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateKmsConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateKmsConfigRequest) ProtoMessage() {} + +func (x *UpdateKmsConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 UpdateKmsConfigRequest.ProtoReflect.Descriptor instead. +func (*UpdateKmsConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateKmsConfigRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateKmsConfigRequest) GetKmsConfig() *KmsConfig { + if x != nil { + return x.KmsConfig + } + return nil +} + +type DeleteKmsConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the KmsConfig. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteKmsConfigRequest) Reset() { + *x = DeleteKmsConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteKmsConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteKmsConfigRequest) ProtoMessage() {} + +func (x *DeleteKmsConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 DeleteKmsConfigRequest.ProtoReflect.Descriptor instead. +func (*DeleteKmsConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteKmsConfigRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// EncryptVolumesRequest specifies the KMS config to encrypt existing volumes. +type EncryptVolumesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the KmsConfig. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *EncryptVolumesRequest) Reset() { + *x = EncryptVolumesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EncryptVolumesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EncryptVolumesRequest) ProtoMessage() {} + +func (x *EncryptVolumesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 EncryptVolumesRequest.ProtoReflect.Descriptor instead. +func (*EncryptVolumesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{6} +} + +func (x *EncryptVolumesRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// VerifyKmsConfigRequest specifies the KMS config to be validated. +type VerifyKmsConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the KMS Config to be verified. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *VerifyKmsConfigRequest) Reset() { + *x = VerifyKmsConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VerifyKmsConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VerifyKmsConfigRequest) ProtoMessage() {} + +func (x *VerifyKmsConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 VerifyKmsConfigRequest.ProtoReflect.Descriptor instead. +func (*VerifyKmsConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{7} +} + +func (x *VerifyKmsConfigRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// VerifyKmsConfigResponse contains the information if the config is correctly +// and error message. +type VerifyKmsConfigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. If the customer key configured correctly to the encrypt + // volume. + Healthy bool `protobuf:"varint,1,opt,name=healthy,proto3" json:"healthy,omitempty"` + // Output only. Error message if config is not healthy. + HealthError string `protobuf:"bytes,2,opt,name=health_error,json=healthError,proto3" json:"health_error,omitempty"` + // Output only. Instructions for the customers to provide the access to the + // encryption key. + Instructions string `protobuf:"bytes,3,opt,name=instructions,proto3" json:"instructions,omitempty"` +} + +func (x *VerifyKmsConfigResponse) Reset() { + *x = VerifyKmsConfigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VerifyKmsConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VerifyKmsConfigResponse) ProtoMessage() {} + +func (x *VerifyKmsConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 VerifyKmsConfigResponse.ProtoReflect.Descriptor instead. +func (*VerifyKmsConfigResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{8} +} + +func (x *VerifyKmsConfigResponse) GetHealthy() bool { + if x != nil { + return x.Healthy + } + return false +} + +func (x *VerifyKmsConfigResponse) GetHealthError() string { + if x != nil { + return x.HealthError + } + return "" +} + +func (x *VerifyKmsConfigResponse) GetInstructions() string { + if x != nil { + return x.Instructions + } + return "" +} + +// KmsConfig is the customer managed encryption key(CMEK) configuration. +type KmsConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Name of the KmsConfig. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. Customer managed crypto key resource full name. Format: + // projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}. + CryptoKeyName string `protobuf:"bytes,2,opt,name=crypto_key_name,json=cryptoKeyName,proto3" json:"crypto_key_name,omitempty"` + // Output only. State of the KmsConfig. + State KmsConfig_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.netapp.v1.KmsConfig_State" json:"state,omitempty"` + // Output only. State details of the KmsConfig. + StateDetails string `protobuf:"bytes,4,opt,name=state_details,json=stateDetails,proto3" json:"state_details,omitempty"` + // Output only. Create time of the KmsConfig. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Description of the KmsConfig. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + // Labels as key value pairs + Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. Instructions to provide the access to the customer provided + // encryption key. + Instructions string `protobuf:"bytes,8,opt,name=instructions,proto3" json:"instructions,omitempty"` + // Output only. The Service account which will have access to the customer + // provided encryption key. + ServiceAccount string `protobuf:"bytes,9,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` +} + +func (x *KmsConfig) Reset() { + *x = KmsConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_kms_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KmsConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KmsConfig) ProtoMessage() {} + +func (x *KmsConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_kms_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 KmsConfig.ProtoReflect.Descriptor instead. +func (*KmsConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_kms_proto_rawDescGZIP(), []int{9} +} + +func (x *KmsConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *KmsConfig) GetCryptoKeyName() string { + if x != nil { + return x.CryptoKeyName + } + return "" +} + +func (x *KmsConfig) GetState() KmsConfig_State { + if x != nil { + return x.State + } + return KmsConfig_STATE_UNSPECIFIED +} + +func (x *KmsConfig) GetStateDetails() string { + if x != nil { + return x.StateDetails + } + return "" +} + +func (x *KmsConfig) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *KmsConfig) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *KmsConfig) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *KmsConfig) GetInstructions() string { + if x != nil { + return x.Instructions + } + return "" +} + +func (x *KmsConfig) GetServiceAccount() string { + if x != nil { + return x.ServiceAccount + } + return "" +} + +var File_google_cloud_netapp_v1_kms_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_kms_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x52, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc7, 0x01, + 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, + 0x1f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, + 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x22, 0xc9, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, 0x73, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0d, + 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0a, 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, + 0x76, 0x31, 0x2e, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x09, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa1, 0x01, 0x0a, + 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x45, 0x0a, 0x0a, 0x6b, 0x6d, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x22, 0x55, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, + 0x0a, 0x1f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x15, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x55, 0x0a, + 0x16, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4b, + 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1d, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, + 0x26, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0xaa, 0x06, 0x0a, 0x09, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x6d, 0x73, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, + 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x27, 0x0a, + 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, + 0xc4, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, + 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, + 0x4b, 0x45, 0x59, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, + 0x47, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x4b, 0x45, 0x59, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, + 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x49, + 0x53, 0x41, 0x42, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, + 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x49, 0x47, 0x52, 0x41, + 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0b, 0x3a, 0x65, 0xea, 0x41, 0x62, 0x0a, 0x1f, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x2f, 0x7b, 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x7d, 0x42, 0xaa, 0x01, + 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x4b, 0x6d, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0xaa, 0x02, 0x16, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x41, + 0x70, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x5c, 0x56, 0x31, 0xea, 0x02, + 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, + 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_kms_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_kms_proto_rawDescData = file_google_cloud_netapp_v1_kms_proto_rawDesc +) + +func file_google_cloud_netapp_v1_kms_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_kms_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_kms_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_kms_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_kms_proto_rawDescData +} + +var file_google_cloud_netapp_v1_kms_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_netapp_v1_kms_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_google_cloud_netapp_v1_kms_proto_goTypes = []interface{}{ + (KmsConfig_State)(0), // 0: google.cloud.netapp.v1.KmsConfig.State + (*GetKmsConfigRequest)(nil), // 1: google.cloud.netapp.v1.GetKmsConfigRequest + (*ListKmsConfigsRequest)(nil), // 2: google.cloud.netapp.v1.ListKmsConfigsRequest + (*ListKmsConfigsResponse)(nil), // 3: google.cloud.netapp.v1.ListKmsConfigsResponse + (*CreateKmsConfigRequest)(nil), // 4: google.cloud.netapp.v1.CreateKmsConfigRequest + (*UpdateKmsConfigRequest)(nil), // 5: google.cloud.netapp.v1.UpdateKmsConfigRequest + (*DeleteKmsConfigRequest)(nil), // 6: google.cloud.netapp.v1.DeleteKmsConfigRequest + (*EncryptVolumesRequest)(nil), // 7: google.cloud.netapp.v1.EncryptVolumesRequest + (*VerifyKmsConfigRequest)(nil), // 8: google.cloud.netapp.v1.VerifyKmsConfigRequest + (*VerifyKmsConfigResponse)(nil), // 9: google.cloud.netapp.v1.VerifyKmsConfigResponse + (*KmsConfig)(nil), // 10: google.cloud.netapp.v1.KmsConfig + nil, // 11: google.cloud.netapp.v1.KmsConfig.LabelsEntry + (*fieldmaskpb.FieldMask)(nil), // 12: google.protobuf.FieldMask + (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp +} +var file_google_cloud_netapp_v1_kms_proto_depIdxs = []int32{ + 10, // 0: google.cloud.netapp.v1.ListKmsConfigsResponse.kms_configs:type_name -> google.cloud.netapp.v1.KmsConfig + 10, // 1: google.cloud.netapp.v1.CreateKmsConfigRequest.kms_config:type_name -> google.cloud.netapp.v1.KmsConfig + 12, // 2: google.cloud.netapp.v1.UpdateKmsConfigRequest.update_mask:type_name -> google.protobuf.FieldMask + 10, // 3: google.cloud.netapp.v1.UpdateKmsConfigRequest.kms_config:type_name -> google.cloud.netapp.v1.KmsConfig + 0, // 4: google.cloud.netapp.v1.KmsConfig.state:type_name -> google.cloud.netapp.v1.KmsConfig.State + 13, // 5: google.cloud.netapp.v1.KmsConfig.create_time:type_name -> google.protobuf.Timestamp + 11, // 6: google.cloud.netapp.v1.KmsConfig.labels:type_name -> google.cloud.netapp.v1.KmsConfig.LabelsEntry + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_kms_proto_init() } +func file_google_cloud_netapp_v1_kms_proto_init() { + if File_google_cloud_netapp_v1_kms_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_netapp_v1_kms_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetKmsConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListKmsConfigsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListKmsConfigsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateKmsConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateKmsConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteKmsConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EncryptVolumesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyKmsConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyKmsConfigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_kms_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KmsConfig); 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_google_cloud_netapp_v1_kms_proto_rawDesc, + NumEnums: 1, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_netapp_v1_kms_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_kms_proto_depIdxs, + EnumInfos: file_google_cloud_netapp_v1_kms_proto_enumTypes, + MessageInfos: file_google_cloud_netapp_v1_kms_proto_msgTypes, + }.Build() + File_google_cloud_netapp_v1_kms_proto = out.File + file_google_cloud_netapp_v1_kms_proto_rawDesc = nil + file_google_cloud_netapp_v1_kms_proto_goTypes = nil + file_google_cloud_netapp_v1_kms_proto_depIdxs = nil +} diff --git a/netapp/apiv1/netapppb/replication.pb.go b/netapp/apiv1/netapppb/replication.pb.go new file mode 100755 index 00000000000..8db0ceb54f8 --- /dev/null +++ b/netapp/apiv1/netapppb/replication.pb.go @@ -0,0 +1,1709 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/replication.proto + +package netapppb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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) +) + +// The replication states +// New enum values may be added in future to indicate possible new states. +type Replication_State int32 + +const ( + // Unspecified replication State + Replication_STATE_UNSPECIFIED Replication_State = 0 + // Replication is creating. + Replication_CREATING Replication_State = 1 + // Replication is ready. + Replication_READY Replication_State = 2 + // Replication is updating. + Replication_UPDATING Replication_State = 3 + // Replication is deleting. + Replication_DELETING Replication_State = 5 + // Replication is in error state. + Replication_ERROR Replication_State = 6 +) + +// Enum value maps for Replication_State. +var ( + Replication_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "READY", + 3: "UPDATING", + 5: "DELETING", + 6: "ERROR", + } + Replication_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "READY": 2, + "UPDATING": 3, + "DELETING": 5, + "ERROR": 6, + } +) + +func (x Replication_State) Enum() *Replication_State { + p := new(Replication_State) + *p = x + return p +} + +func (x Replication_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Replication_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_replication_proto_enumTypes[0].Descriptor() +} + +func (Replication_State) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_replication_proto_enumTypes[0] +} + +func (x Replication_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Replication_State.Descriptor instead. +func (Replication_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{1, 0} +} + +// New enum values may be added in future to support different replication +// topology. +type Replication_ReplicationRole int32 + +const ( + // Unspecified replication role + Replication_REPLICATION_ROLE_UNSPECIFIED Replication_ReplicationRole = 0 + // Indicates Source volume. + Replication_SOURCE Replication_ReplicationRole = 1 + // Indicates Destination volume. + Replication_DESTINATION Replication_ReplicationRole = 2 +) + +// Enum value maps for Replication_ReplicationRole. +var ( + Replication_ReplicationRole_name = map[int32]string{ + 0: "REPLICATION_ROLE_UNSPECIFIED", + 1: "SOURCE", + 2: "DESTINATION", + } + Replication_ReplicationRole_value = map[string]int32{ + "REPLICATION_ROLE_UNSPECIFIED": 0, + "SOURCE": 1, + "DESTINATION": 2, + } +) + +func (x Replication_ReplicationRole) Enum() *Replication_ReplicationRole { + p := new(Replication_ReplicationRole) + *p = x + return p +} + +func (x Replication_ReplicationRole) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Replication_ReplicationRole) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_replication_proto_enumTypes[1].Descriptor() +} + +func (Replication_ReplicationRole) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_replication_proto_enumTypes[1] +} + +func (x Replication_ReplicationRole) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Replication_ReplicationRole.Descriptor instead. +func (Replication_ReplicationRole) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{1, 1} +} + +// Schedule for Replication. +// New enum values may be added in future to support different frequency of +// replication. +type Replication_ReplicationSchedule int32 + +const ( + // Unspecified ReplicationSchedule + Replication_REPLICATION_SCHEDULE_UNSPECIFIED Replication_ReplicationSchedule = 0 + // Replication happens once every 10 minutes. + Replication_EVERY_10_MINUTES Replication_ReplicationSchedule = 1 + // Replication happens once every hour. + Replication_HOURLY Replication_ReplicationSchedule = 2 + // Replication happens once every day. + Replication_DAILY Replication_ReplicationSchedule = 3 +) + +// Enum value maps for Replication_ReplicationSchedule. +var ( + Replication_ReplicationSchedule_name = map[int32]string{ + 0: "REPLICATION_SCHEDULE_UNSPECIFIED", + 1: "EVERY_10_MINUTES", + 2: "HOURLY", + 3: "DAILY", + } + Replication_ReplicationSchedule_value = map[string]int32{ + "REPLICATION_SCHEDULE_UNSPECIFIED": 0, + "EVERY_10_MINUTES": 1, + "HOURLY": 2, + "DAILY": 3, + } +) + +func (x Replication_ReplicationSchedule) Enum() *Replication_ReplicationSchedule { + p := new(Replication_ReplicationSchedule) + *p = x + return p +} + +func (x Replication_ReplicationSchedule) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Replication_ReplicationSchedule) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_replication_proto_enumTypes[2].Descriptor() +} + +func (Replication_ReplicationSchedule) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_replication_proto_enumTypes[2] +} + +func (x Replication_ReplicationSchedule) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Replication_ReplicationSchedule.Descriptor instead. +func (Replication_ReplicationSchedule) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{1, 2} +} + +// Mirroring states. +// No new value is expected to be added in future. +type Replication_MirrorState int32 + +const ( + // Unspecified MirrorState + Replication_MIRROR_STATE_UNSPECIFIED Replication_MirrorState = 0 + // Destination volume is being prepared. + Replication_PREPARING Replication_MirrorState = 1 + // Destination volume has been initialized and is ready to receive + // replication transfers. + Replication_MIRRORED Replication_MirrorState = 2 + // Destination volume is not receiving replication transfers. + Replication_STOPPED Replication_MirrorState = 3 + // Replication is in progress. + Replication_TRANSFERRING Replication_MirrorState = 4 +) + +// Enum value maps for Replication_MirrorState. +var ( + Replication_MirrorState_name = map[int32]string{ + 0: "MIRROR_STATE_UNSPECIFIED", + 1: "PREPARING", + 2: "MIRRORED", + 3: "STOPPED", + 4: "TRANSFERRING", + } + Replication_MirrorState_value = map[string]int32{ + "MIRROR_STATE_UNSPECIFIED": 0, + "PREPARING": 1, + "MIRRORED": 2, + "STOPPED": 3, + "TRANSFERRING": 4, + } +) + +func (x Replication_MirrorState) Enum() *Replication_MirrorState { + p := new(Replication_MirrorState) + *p = x + return p +} + +func (x Replication_MirrorState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Replication_MirrorState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_replication_proto_enumTypes[3].Descriptor() +} + +func (Replication_MirrorState) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_replication_proto_enumTypes[3] +} + +func (x Replication_MirrorState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Replication_MirrorState.Descriptor instead. +func (Replication_MirrorState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{1, 3} +} + +// TransferStats reports all statistics related to replication transfer. +type TransferStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // bytes trasferred so far in current transfer. + TransferBytes *int64 `protobuf:"varint,1,opt,name=transfer_bytes,json=transferBytes,proto3,oneof" json:"transfer_bytes,omitempty"` + // Total time taken during transfer. + TotalTransferDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=total_transfer_duration,json=totalTransferDuration,proto3,oneof" json:"total_transfer_duration,omitempty"` + // Last transfer size in bytes. + LastTransferBytes *int64 `protobuf:"varint,3,opt,name=last_transfer_bytes,json=lastTransferBytes,proto3,oneof" json:"last_transfer_bytes,omitempty"` + // Time taken during last transfer. + LastTransferDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=last_transfer_duration,json=lastTransferDuration,proto3,oneof" json:"last_transfer_duration,omitempty"` + // Lag duration indicates the duration by which Destination region volume + // content lags behind the primary region volume content. + LagDuration *durationpb.Duration `protobuf:"bytes,5,opt,name=lag_duration,json=lagDuration,proto3,oneof" json:"lag_duration,omitempty"` + // Time when progress was updated last. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3,oneof" json:"update_time,omitempty"` + // Time when last transfer completed. + LastTransferEndTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=last_transfer_end_time,json=lastTransferEndTime,proto3,oneof" json:"last_transfer_end_time,omitempty"` + // A message describing the cause of the last transfer failure. + LastTransferError *string `protobuf:"bytes,8,opt,name=last_transfer_error,json=lastTransferError,proto3,oneof" json:"last_transfer_error,omitempty"` +} + +func (x *TransferStats) Reset() { + *x = TransferStats{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransferStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransferStats) ProtoMessage() {} + +func (x *TransferStats) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 TransferStats.ProtoReflect.Descriptor instead. +func (*TransferStats) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{0} +} + +func (x *TransferStats) GetTransferBytes() int64 { + if x != nil && x.TransferBytes != nil { + return *x.TransferBytes + } + return 0 +} + +func (x *TransferStats) GetTotalTransferDuration() *durationpb.Duration { + if x != nil { + return x.TotalTransferDuration + } + return nil +} + +func (x *TransferStats) GetLastTransferBytes() int64 { + if x != nil && x.LastTransferBytes != nil { + return *x.LastTransferBytes + } + return 0 +} + +func (x *TransferStats) GetLastTransferDuration() *durationpb.Duration { + if x != nil { + return x.LastTransferDuration + } + return nil +} + +func (x *TransferStats) GetLagDuration() *durationpb.Duration { + if x != nil { + return x.LagDuration + } + return nil +} + +func (x *TransferStats) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *TransferStats) GetLastTransferEndTime() *timestamppb.Timestamp { + if x != nil { + return x.LastTransferEndTime + } + return nil +} + +func (x *TransferStats) GetLastTransferError() string { + if x != nil && x.LastTransferError != nil { + return *x.LastTransferError + } + return "" +} + +// Replication is a nested resource under Volume, that describes a +// cross-region replication relationship between 2 volumes in different +// regions. +type Replication struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The resource name of the Replication. + // Format: + // `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. State of the replication. + State Replication_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.netapp.v1.Replication_State" json:"state,omitempty"` + // Output only. State details of the replication. + StateDetails string `protobuf:"bytes,3,opt,name=state_details,json=stateDetails,proto3" json:"state_details,omitempty"` + // Output only. Indicates whether this points to source or destination. + Role Replication_ReplicationRole `protobuf:"varint,4,opt,name=role,proto3,enum=google.cloud.netapp.v1.Replication_ReplicationRole" json:"role,omitempty"` + // Required. Indicates the schedule for replication. + ReplicationSchedule Replication_ReplicationSchedule `protobuf:"varint,5,opt,name=replication_schedule,json=replicationSchedule,proto3,enum=google.cloud.netapp.v1.Replication_ReplicationSchedule" json:"replication_schedule,omitempty"` + // Output only. Indicates the state of mirroring. + MirrorState Replication_MirrorState `protobuf:"varint,6,opt,name=mirror_state,json=mirrorState,proto3,enum=google.cloud.netapp.v1.Replication_MirrorState" json:"mirror_state,omitempty"` + // Output only. Condition of the relationship. Can be one of the following: + // - true: The replication relationship is healthy. It has not missed the most + // recent scheduled transfer. + // - false: The replication relationship is not healthy. It has missed the + // most recent scheduled transfer. + Healthy *bool `protobuf:"varint,8,opt,name=healthy,proto3,oneof" json:"healthy,omitempty"` + // Output only. Replication create time. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Full name of destination volume resource. + // Example : "projects/{project}/locations/{location}/volumes/{volume_id}" + DestinationVolume string `protobuf:"bytes,10,opt,name=destination_volume,json=destinationVolume,proto3" json:"destination_volume,omitempty"` + // Output only. Replication transfer statistics. + TransferStats *TransferStats `protobuf:"bytes,11,opt,name=transfer_stats,json=transferStats,proto3" json:"transfer_stats,omitempty"` + // Resource labels to represent user provided metadata. + Labels map[string]string `protobuf:"bytes,12,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // A description about this replication relationship. + Description *string `protobuf:"bytes,13,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Required. Input only. Destination volume parameters + DestinationVolumeParameters *DestinationVolumeParameters `protobuf:"bytes,14,opt,name=destination_volume_parameters,json=destinationVolumeParameters,proto3" json:"destination_volume_parameters,omitempty"` + // Output only. Full name of source volume resource. + // Example : "projects/{project}/locations/{location}/volumes/{volume_id}" + SourceVolume string `protobuf:"bytes,15,opt,name=source_volume,json=sourceVolume,proto3" json:"source_volume,omitempty"` +} + +func (x *Replication) Reset() { + *x = Replication{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Replication) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Replication) ProtoMessage() {} + +func (x *Replication) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 Replication.ProtoReflect.Descriptor instead. +func (*Replication) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{1} +} + +func (x *Replication) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Replication) GetState() Replication_State { + if x != nil { + return x.State + } + return Replication_STATE_UNSPECIFIED +} + +func (x *Replication) GetStateDetails() string { + if x != nil { + return x.StateDetails + } + return "" +} + +func (x *Replication) GetRole() Replication_ReplicationRole { + if x != nil { + return x.Role + } + return Replication_REPLICATION_ROLE_UNSPECIFIED +} + +func (x *Replication) GetReplicationSchedule() Replication_ReplicationSchedule { + if x != nil { + return x.ReplicationSchedule + } + return Replication_REPLICATION_SCHEDULE_UNSPECIFIED +} + +func (x *Replication) GetMirrorState() Replication_MirrorState { + if x != nil { + return x.MirrorState + } + return Replication_MIRROR_STATE_UNSPECIFIED +} + +func (x *Replication) GetHealthy() bool { + if x != nil && x.Healthy != nil { + return *x.Healthy + } + return false +} + +func (x *Replication) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Replication) GetDestinationVolume() string { + if x != nil { + return x.DestinationVolume + } + return "" +} + +func (x *Replication) GetTransferStats() *TransferStats { + if x != nil { + return x.TransferStats + } + return nil +} + +func (x *Replication) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Replication) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Replication) GetDestinationVolumeParameters() *DestinationVolumeParameters { + if x != nil { + return x.DestinationVolumeParameters + } + return nil +} + +func (x *Replication) GetSourceVolume() string { + if x != nil { + return x.SourceVolume + } + return "" +} + +// ListReplications lists replications. +type ListReplicationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The volume for which to retrieve replication information, + // in the format + // `projects/{project_id}/locations/{location}/volumes/{volume_id}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of items to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The next_page_token value to use if there are additional + // results to retrieve for this list request. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Sort results. Supported values are "name", "name desc" or "" (unsorted). + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // List filter. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListReplicationsRequest) Reset() { + *x = ListReplicationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListReplicationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListReplicationsRequest) ProtoMessage() {} + +func (x *ListReplicationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 ListReplicationsRequest.ProtoReflect.Descriptor instead. +func (*ListReplicationsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{2} +} + +func (x *ListReplicationsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListReplicationsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListReplicationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListReplicationsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListReplicationsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// ListReplicationsResponse is the result of ListReplicationsRequest. +type ListReplicationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of replications in the project for the specified volume. + Replications []*Replication `protobuf:"bytes,1,rep,name=replications,proto3" json:"replications,omitempty"` + // The token you can use to retrieve the next page of results. Not returned + // if there are no more results in the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListReplicationsResponse) Reset() { + *x = ListReplicationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListReplicationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListReplicationsResponse) ProtoMessage() {} + +func (x *ListReplicationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 ListReplicationsResponse.ProtoReflect.Descriptor instead. +func (*ListReplicationsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{3} +} + +func (x *ListReplicationsResponse) GetReplications() []*Replication { + if x != nil { + return x.Replications + } + return nil +} + +func (x *ListReplicationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListReplicationsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// GetReplicationRequest gets the state of a replication. +type GetReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The replication resource name, in the format + // `projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetReplicationRequest) Reset() { + *x = GetReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetReplicationRequest) ProtoMessage() {} + +func (x *GetReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 GetReplicationRequest.ProtoReflect.Descriptor instead. +func (*GetReplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{4} +} + +func (x *GetReplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// DestinationVolumeParameters specify input parameters used for creating +// destination volume. +type DestinationVolumeParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Existing destination StoragePool name. + StoragePool string `protobuf:"bytes,1,opt,name=storage_pool,json=storagePool,proto3" json:"storage_pool,omitempty"` + // Desired destination volume resource id. If not specified, source volume's + // resource id will be used. + // This value must start with a lowercase letter followed by up to 62 + // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Destination volume's share name. If not specified, source volume's share + // name will be used. + ShareName string `protobuf:"bytes,3,opt,name=share_name,json=shareName,proto3" json:"share_name,omitempty"` + // Description for the destination volume. + Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` +} + +func (x *DestinationVolumeParameters) Reset() { + *x = DestinationVolumeParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestinationVolumeParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestinationVolumeParameters) ProtoMessage() {} + +func (x *DestinationVolumeParameters) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 DestinationVolumeParameters.ProtoReflect.Descriptor instead. +func (*DestinationVolumeParameters) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{5} +} + +func (x *DestinationVolumeParameters) GetStoragePool() string { + if x != nil { + return x.StoragePool + } + return "" +} + +func (x *DestinationVolumeParameters) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *DestinationVolumeParameters) GetShareName() string { + if x != nil { + return x.ShareName + } + return "" +} + +func (x *DestinationVolumeParameters) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +// CreateReplicationRequest creates a replication. +type CreateReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The NetApp volume to create the replications of, in the format + // `projects/{project_id}/locations/{location}/volumes/{volume_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. A replication resource + Replication *Replication `protobuf:"bytes,2,opt,name=replication,proto3" json:"replication,omitempty"` + // Required. ID of the replication to create. + // This value must start with a lowercase letter followed by up to 62 + // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + ReplicationId string `protobuf:"bytes,3,opt,name=replication_id,json=replicationId,proto3" json:"replication_id,omitempty"` +} + +func (x *CreateReplicationRequest) Reset() { + *x = CreateReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateReplicationRequest) ProtoMessage() {} + +func (x *CreateReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 CreateReplicationRequest.ProtoReflect.Descriptor instead. +func (*CreateReplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{6} +} + +func (x *CreateReplicationRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateReplicationRequest) GetReplication() *Replication { + if x != nil { + return x.Replication + } + return nil +} + +func (x *CreateReplicationRequest) GetReplicationId() string { + if x != nil { + return x.ReplicationId + } + return "" +} + +// DeleteReplicationRequest deletes a replication. +type DeleteReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The replication resource name, in the format + // `projects/*/locations/*/volumes/*/replications/{replication_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteReplicationRequest) Reset() { + *x = DeleteReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteReplicationRequest) ProtoMessage() {} + +func (x *DeleteReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 DeleteReplicationRequest.ProtoReflect.Descriptor instead. +func (*DeleteReplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{7} +} + +func (x *DeleteReplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// UpdateReplicationRequest updates description and/or labels for a replication. +type UpdateReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Mask of fields to update. At least one path must be supplied in + // this field. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. A replication resource + Replication *Replication `protobuf:"bytes,2,opt,name=replication,proto3" json:"replication,omitempty"` +} + +func (x *UpdateReplicationRequest) Reset() { + *x = UpdateReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateReplicationRequest) ProtoMessage() {} + +func (x *UpdateReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 UpdateReplicationRequest.ProtoReflect.Descriptor instead. +func (*UpdateReplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{8} +} + +func (x *UpdateReplicationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateReplicationRequest) GetReplication() *Replication { + if x != nil { + return x.Replication + } + return nil +} + +// StopReplicationRequest stops a replication until resumed. +type StopReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the replication, in the format of + // projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Indicates whether to stop replication forcefully while data transfer is in + // progress. + // Warning! if force is true, this will abort any current transfers + // and can lead to data loss due to partial transfer. + // If force is false, stop replication will fail while data transfer is in + // progress and you will need to retry later. + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` +} + +func (x *StopReplicationRequest) Reset() { + *x = StopReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopReplicationRequest) ProtoMessage() {} + +func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_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 StopReplicationRequest.ProtoReflect.Descriptor instead. +func (*StopReplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{9} +} + +func (x *StopReplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *StopReplicationRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +// ResumeReplicationRequest resumes a stopped replication. +type ResumeReplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the replication, in the format of + // projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ResumeReplicationRequest) Reset() { + *x = ResumeReplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResumeReplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResumeReplicationRequest) ProtoMessage() {} + +func (x *ResumeReplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_replication_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 ResumeReplicationRequest.ProtoReflect.Descriptor instead. +func (*ResumeReplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{10} +} + +func (x *ResumeReplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// ReverseReplicationDirectionRequest reverses direction of replication. Source +// becomes destination and destination becomes source. +type ReverseReplicationDirectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the replication, in the format of + // projects/{project_id}/locations/{location}/volumes/{volume_id}/replications/{replication_id}. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ReverseReplicationDirectionRequest) Reset() { + *x = ReverseReplicationDirectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_replication_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReverseReplicationDirectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReverseReplicationDirectionRequest) ProtoMessage() {} + +func (x *ReverseReplicationDirectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_replication_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 ReverseReplicationDirectionRequest.ProtoReflect.Descriptor instead. +func (*ReverseReplicationDirectionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_replication_proto_rawDescGZIP(), []int{11} +} + +func (x *ReverseReplicationDirectionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +var File_google_cloud_netapp_v1_replication_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_replication_proto_rawDesc = []byte{ + 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, + 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xe4, 0x05, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x56, 0x0a, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x15, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x16, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0c, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x06, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x11, 0x6c, 0x61, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xd1, 0x0c, 0x0a, 0x0b, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x4c, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, + 0x6f, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x69, 0x72, 0x72, + 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6d, 0x69, + 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x07, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, + 0x00, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x53, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x03, + 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x7f, 0x0a, 0x1d, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x42, 0x06, 0xe0, 0x41, 0x04, 0xe0, 0x41, 0x02, 0x52, 0x1b, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x24, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x5e, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, + 0x47, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x22, 0x50, + 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, + 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x01, 0x12, + 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, + 0x22, 0x68, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x45, 0x50, 0x4c, 0x49, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, + 0x10, 0x45, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x31, 0x30, 0x5f, 0x4d, 0x49, 0x4e, 0x55, 0x54, 0x45, + 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x4f, 0x55, 0x52, 0x4c, 0x59, 0x10, 0x02, 0x12, + 0x09, 0x0a, 0x05, 0x44, 0x41, 0x49, 0x4c, 0x59, 0x10, 0x03, 0x22, 0x67, 0x0a, 0x0b, 0x4d, 0x69, + 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x49, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x45, 0x50, 0x41, + 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x52, 0x52, 0x4f, 0x52, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, + 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x52, 0x49, 0x4e, + 0x47, 0x10, 0x04, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcb, 0x01, 0x0a, + 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, + 0x12, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xad, 0x01, 0x0a, 0x18, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x56, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, + 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, + 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xd5, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x12, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x18, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x4a, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x6d, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x23, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x22, 0x59, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x23, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x63, 0x0a, 0x22, 0x52, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0xb2, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x42, + 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, + 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0x3b, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, + 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x41, 0x70, + 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_replication_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_replication_proto_rawDescData = file_google_cloud_netapp_v1_replication_proto_rawDesc +) + +func file_google_cloud_netapp_v1_replication_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_replication_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_replication_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_replication_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_replication_proto_rawDescData +} + +var file_google_cloud_netapp_v1_replication_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_google_cloud_netapp_v1_replication_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_google_cloud_netapp_v1_replication_proto_goTypes = []interface{}{ + (Replication_State)(0), // 0: google.cloud.netapp.v1.Replication.State + (Replication_ReplicationRole)(0), // 1: google.cloud.netapp.v1.Replication.ReplicationRole + (Replication_ReplicationSchedule)(0), // 2: google.cloud.netapp.v1.Replication.ReplicationSchedule + (Replication_MirrorState)(0), // 3: google.cloud.netapp.v1.Replication.MirrorState + (*TransferStats)(nil), // 4: google.cloud.netapp.v1.TransferStats + (*Replication)(nil), // 5: google.cloud.netapp.v1.Replication + (*ListReplicationsRequest)(nil), // 6: google.cloud.netapp.v1.ListReplicationsRequest + (*ListReplicationsResponse)(nil), // 7: google.cloud.netapp.v1.ListReplicationsResponse + (*GetReplicationRequest)(nil), // 8: google.cloud.netapp.v1.GetReplicationRequest + (*DestinationVolumeParameters)(nil), // 9: google.cloud.netapp.v1.DestinationVolumeParameters + (*CreateReplicationRequest)(nil), // 10: google.cloud.netapp.v1.CreateReplicationRequest + (*DeleteReplicationRequest)(nil), // 11: google.cloud.netapp.v1.DeleteReplicationRequest + (*UpdateReplicationRequest)(nil), // 12: google.cloud.netapp.v1.UpdateReplicationRequest + (*StopReplicationRequest)(nil), // 13: google.cloud.netapp.v1.StopReplicationRequest + (*ResumeReplicationRequest)(nil), // 14: google.cloud.netapp.v1.ResumeReplicationRequest + (*ReverseReplicationDirectionRequest)(nil), // 15: google.cloud.netapp.v1.ReverseReplicationDirectionRequest + nil, // 16: google.cloud.netapp.v1.Replication.LabelsEntry + (*durationpb.Duration)(nil), // 17: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 19: google.protobuf.FieldMask +} +var file_google_cloud_netapp_v1_replication_proto_depIdxs = []int32{ + 17, // 0: google.cloud.netapp.v1.TransferStats.total_transfer_duration:type_name -> google.protobuf.Duration + 17, // 1: google.cloud.netapp.v1.TransferStats.last_transfer_duration:type_name -> google.protobuf.Duration + 17, // 2: google.cloud.netapp.v1.TransferStats.lag_duration:type_name -> google.protobuf.Duration + 18, // 3: google.cloud.netapp.v1.TransferStats.update_time:type_name -> google.protobuf.Timestamp + 18, // 4: google.cloud.netapp.v1.TransferStats.last_transfer_end_time:type_name -> google.protobuf.Timestamp + 0, // 5: google.cloud.netapp.v1.Replication.state:type_name -> google.cloud.netapp.v1.Replication.State + 1, // 6: google.cloud.netapp.v1.Replication.role:type_name -> google.cloud.netapp.v1.Replication.ReplicationRole + 2, // 7: google.cloud.netapp.v1.Replication.replication_schedule:type_name -> google.cloud.netapp.v1.Replication.ReplicationSchedule + 3, // 8: google.cloud.netapp.v1.Replication.mirror_state:type_name -> google.cloud.netapp.v1.Replication.MirrorState + 18, // 9: google.cloud.netapp.v1.Replication.create_time:type_name -> google.protobuf.Timestamp + 4, // 10: google.cloud.netapp.v1.Replication.transfer_stats:type_name -> google.cloud.netapp.v1.TransferStats + 16, // 11: google.cloud.netapp.v1.Replication.labels:type_name -> google.cloud.netapp.v1.Replication.LabelsEntry + 9, // 12: google.cloud.netapp.v1.Replication.destination_volume_parameters:type_name -> google.cloud.netapp.v1.DestinationVolumeParameters + 5, // 13: google.cloud.netapp.v1.ListReplicationsResponse.replications:type_name -> google.cloud.netapp.v1.Replication + 5, // 14: google.cloud.netapp.v1.CreateReplicationRequest.replication:type_name -> google.cloud.netapp.v1.Replication + 19, // 15: google.cloud.netapp.v1.UpdateReplicationRequest.update_mask:type_name -> google.protobuf.FieldMask + 5, // 16: google.cloud.netapp.v1.UpdateReplicationRequest.replication:type_name -> google.cloud.netapp.v1.Replication + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_replication_proto_init() } +func file_google_cloud_netapp_v1_replication_proto_init() { + if File_google_cloud_netapp_v1_replication_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_netapp_v1_replication_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Replication); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListReplicationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListReplicationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestinationVolumeParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StopReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResumeReplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReverseReplicationDirectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_netapp_v1_replication_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_replication_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_replication_proto_msgTypes[5].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_netapp_v1_replication_proto_rawDesc, + NumEnums: 4, + NumMessages: 13, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_netapp_v1_replication_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_replication_proto_depIdxs, + EnumInfos: file_google_cloud_netapp_v1_replication_proto_enumTypes, + MessageInfos: file_google_cloud_netapp_v1_replication_proto_msgTypes, + }.Build() + File_google_cloud_netapp_v1_replication_proto = out.File + file_google_cloud_netapp_v1_replication_proto_rawDesc = nil + file_google_cloud_netapp_v1_replication_proto_goTypes = nil + file_google_cloud_netapp_v1_replication_proto_depIdxs = nil +} diff --git a/netapp/apiv1/netapppb/snapshot.pb.go b/netapp/apiv1/netapppb/snapshot.pb.go new file mode 100755 index 00000000000..17d7b1b7ab4 --- /dev/null +++ b/netapp/apiv1/netapppb/snapshot.pb.go @@ -0,0 +1,876 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/snapshot.proto + +package netapppb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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) +) + +// The Snapshot States +type Snapshot_State int32 + +const ( + // Unspecified Snapshot State + Snapshot_STATE_UNSPECIFIED Snapshot_State = 0 + // Snapshot State is Ready + Snapshot_READY Snapshot_State = 1 + // Snapshot State is Creating + Snapshot_CREATING Snapshot_State = 2 + // Snapshot State is Deleting + Snapshot_DELETING Snapshot_State = 3 + // Snapshot State is Updating + Snapshot_UPDATING Snapshot_State = 4 + // Snapshot State is Disabled + Snapshot_DISABLED Snapshot_State = 5 + // Snapshot State is Error + Snapshot_ERROR Snapshot_State = 6 +) + +// Enum value maps for Snapshot_State. +var ( + Snapshot_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "READY", + 2: "CREATING", + 3: "DELETING", + 4: "UPDATING", + 5: "DISABLED", + 6: "ERROR", + } + Snapshot_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "READY": 1, + "CREATING": 2, + "DELETING": 3, + "UPDATING": 4, + "DISABLED": 5, + "ERROR": 6, + } +) + +func (x Snapshot_State) Enum() *Snapshot_State { + p := new(Snapshot_State) + *p = x + return p +} + +func (x Snapshot_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Snapshot_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_snapshot_proto_enumTypes[0].Descriptor() +} + +func (Snapshot_State) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_snapshot_proto_enumTypes[0] +} + +func (x Snapshot_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Snapshot_State.Descriptor instead. +func (Snapshot_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{6, 0} +} + +// ListSnapshotsRequest lists snapshots. +type ListSnapshotsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The volume for which to retrieve snapshot information, + // in the format + // `projects/{project_id}/locations/{location}/volumes/{volume_id}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of items to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The next_page_token value to use if there are additional + // results to retrieve for this list request. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Sort results. Supported values are "name", "name desc" or "" (unsorted). + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // List filter. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListSnapshotsRequest) Reset() { + *x = ListSnapshotsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_snapshot_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSnapshotsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSnapshotsRequest) ProtoMessage() {} + +func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_snapshot_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 ListSnapshotsRequest.ProtoReflect.Descriptor instead. +func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{0} +} + +func (x *ListSnapshotsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSnapshotsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSnapshotsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSnapshotsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListSnapshotsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// ListSnapshotsResponse is the result of ListSnapshotsRequest. +type ListSnapshotsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of snapshots in the project for the specified volume. + Snapshots []*Snapshot `protobuf:"bytes,1,rep,name=snapshots,proto3" json:"snapshots,omitempty"` + // The token you can use to retrieve the next page of results. Not returned + // if there are no more results in the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListSnapshotsResponse) Reset() { + *x = ListSnapshotsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_snapshot_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSnapshotsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSnapshotsResponse) ProtoMessage() {} + +func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_snapshot_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 ListSnapshotsResponse.ProtoReflect.Descriptor instead. +func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{1} +} + +func (x *ListSnapshotsResponse) GetSnapshots() []*Snapshot { + if x != nil { + return x.Snapshots + } + return nil +} + +func (x *ListSnapshotsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListSnapshotsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// GetSnapshotRequest gets the state of a snapshot. +type GetSnapshotRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The snapshot resource name, in the format + // `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSnapshotRequest) Reset() { + *x = GetSnapshotRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_snapshot_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSnapshotRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSnapshotRequest) ProtoMessage() {} + +func (x *GetSnapshotRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_snapshot_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 GetSnapshotRequest.ProtoReflect.Descriptor instead. +func (*GetSnapshotRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{2} +} + +func (x *GetSnapshotRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// CreateSnapshotRequest creates a snapshot. +type CreateSnapshotRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The NetApp volume to create the snapshots of, in the format + // `projects/{project_id}/locations/{location}/volumes/{volume_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. A snapshot resource + Snapshot *Snapshot `protobuf:"bytes,2,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + // Required. ID of the snapshot to create. + // This value must start with a lowercase letter followed by up to 62 + // lowercase letters, numbers, or hyphens, and cannot end with a hyphen. + SnapshotId string `protobuf:"bytes,3,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` +} + +func (x *CreateSnapshotRequest) Reset() { + *x = CreateSnapshotRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_snapshot_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSnapshotRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSnapshotRequest) ProtoMessage() {} + +func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_snapshot_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 CreateSnapshotRequest.ProtoReflect.Descriptor instead. +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateSnapshotRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSnapshotRequest) GetSnapshot() *Snapshot { + if x != nil { + return x.Snapshot + } + return nil +} + +func (x *CreateSnapshotRequest) GetSnapshotId() string { + if x != nil { + return x.SnapshotId + } + return "" +} + +// DeleteSnapshotRequest deletes a snapshot. +type DeleteSnapshotRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The snapshot resource name, in the format + // `projects/*/locations/*/volumes/*/snapshots/{snapshot_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteSnapshotRequest) Reset() { + *x = DeleteSnapshotRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_snapshot_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSnapshotRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSnapshotRequest) ProtoMessage() {} + +func (x *DeleteSnapshotRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_snapshot_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 DeleteSnapshotRequest.ProtoReflect.Descriptor instead. +func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{4} +} + +func (x *DeleteSnapshotRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// UpdateSnapshotRequest updates description and/or labels for a snapshot. +type UpdateSnapshotRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Mask of fields to update. At least one path must be supplied in + // this field. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. A snapshot resource + Snapshot *Snapshot `protobuf:"bytes,2,opt,name=snapshot,proto3" json:"snapshot,omitempty"` +} + +func (x *UpdateSnapshotRequest) Reset() { + *x = UpdateSnapshotRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_snapshot_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateSnapshotRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSnapshotRequest) ProtoMessage() {} + +func (x *UpdateSnapshotRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_snapshot_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 UpdateSnapshotRequest.ProtoReflect.Descriptor instead. +func (*UpdateSnapshotRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateSnapshotRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateSnapshotRequest) GetSnapshot() *Snapshot { + if x != nil { + return x.Snapshot + } + return nil +} + +type Snapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The resource name of the snapshot. + // Format: + // `projects/{project_id}/locations/{location}/volumes/{volume_id}/snapshots/{snapshot_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The snapshot state. + State Snapshot_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.netapp.v1.Snapshot_State" json:"state,omitempty"` + // Output only. State details of the storage pool + StateDetails string `protobuf:"bytes,3,opt,name=state_details,json=stateDetails,proto3" json:"state_details,omitempty"` + // A description of the snapshot with 2048 characters or less. + // Requests with longer descriptions will be rejected. + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + // Output only. Current storage usage for the snapshot in bytes. + UsedBytes float64 `protobuf:"fixed64,5,opt,name=used_bytes,json=usedBytes,proto3" json:"used_bytes,omitempty"` + // Output only. The time when the snapshot was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Resource labels to represent user provided metadata. + Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Snapshot) Reset() { + *x = Snapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_snapshot_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Snapshot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Snapshot) ProtoMessage() {} + +func (x *Snapshot) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_snapshot_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 Snapshot.ProtoReflect.Descriptor instead. +func (*Snapshot) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP(), []int{6} +} + +func (x *Snapshot) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Snapshot) GetState() Snapshot_State { + if x != nil { + return x.State + } + return Snapshot_STATE_UNSPECIFIED +} + +func (x *Snapshot) GetStateDetails() string { + if x != nil { + return x.StateDetails + } + return "" +} + +func (x *Snapshot) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Snapshot) GetUsedBytes() float64 { + if x != nil { + return x.UsedBytes + } + return 0 +} + +func (x *Snapshot) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Snapshot) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +var File_google_cloud_netapp_v1_snapshot_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_snapshot_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc5, + 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x12, + 0x1e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x16, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x50, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x12, 0x1e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x22, + 0x53, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x12, 0x41, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x22, 0xfb, 0x04, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, + 0x6c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, + 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, + 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, + 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x3a, 0x72, 0xea, + 0x41, 0x6f, 0x0a, 0x1e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x12, 0x4d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x7d, 0x42, 0xaf, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x42, 0x0d, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x32, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x70, 0x62, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, + 0x74, 0x41, 0x70, 0x70, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_snapshot_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_snapshot_proto_rawDescData = file_google_cloud_netapp_v1_snapshot_proto_rawDesc +) + +func file_google_cloud_netapp_v1_snapshot_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_snapshot_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_snapshot_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_snapshot_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_snapshot_proto_rawDescData +} + +var file_google_cloud_netapp_v1_snapshot_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_netapp_v1_snapshot_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_google_cloud_netapp_v1_snapshot_proto_goTypes = []interface{}{ + (Snapshot_State)(0), // 0: google.cloud.netapp.v1.Snapshot.State + (*ListSnapshotsRequest)(nil), // 1: google.cloud.netapp.v1.ListSnapshotsRequest + (*ListSnapshotsResponse)(nil), // 2: google.cloud.netapp.v1.ListSnapshotsResponse + (*GetSnapshotRequest)(nil), // 3: google.cloud.netapp.v1.GetSnapshotRequest + (*CreateSnapshotRequest)(nil), // 4: google.cloud.netapp.v1.CreateSnapshotRequest + (*DeleteSnapshotRequest)(nil), // 5: google.cloud.netapp.v1.DeleteSnapshotRequest + (*UpdateSnapshotRequest)(nil), // 6: google.cloud.netapp.v1.UpdateSnapshotRequest + (*Snapshot)(nil), // 7: google.cloud.netapp.v1.Snapshot + nil, // 8: google.cloud.netapp.v1.Snapshot.LabelsEntry + (*fieldmaskpb.FieldMask)(nil), // 9: google.protobuf.FieldMask + (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp +} +var file_google_cloud_netapp_v1_snapshot_proto_depIdxs = []int32{ + 7, // 0: google.cloud.netapp.v1.ListSnapshotsResponse.snapshots:type_name -> google.cloud.netapp.v1.Snapshot + 7, // 1: google.cloud.netapp.v1.CreateSnapshotRequest.snapshot:type_name -> google.cloud.netapp.v1.Snapshot + 9, // 2: google.cloud.netapp.v1.UpdateSnapshotRequest.update_mask:type_name -> google.protobuf.FieldMask + 7, // 3: google.cloud.netapp.v1.UpdateSnapshotRequest.snapshot:type_name -> google.cloud.netapp.v1.Snapshot + 0, // 4: google.cloud.netapp.v1.Snapshot.state:type_name -> google.cloud.netapp.v1.Snapshot.State + 10, // 5: google.cloud.netapp.v1.Snapshot.create_time:type_name -> google.protobuf.Timestamp + 8, // 6: google.cloud.netapp.v1.Snapshot.labels:type_name -> google.cloud.netapp.v1.Snapshot.LabelsEntry + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_snapshot_proto_init() } +func file_google_cloud_netapp_v1_snapshot_proto_init() { + if File_google_cloud_netapp_v1_snapshot_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_netapp_v1_snapshot_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSnapshotsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_snapshot_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSnapshotsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_snapshot_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSnapshotRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_snapshot_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSnapshotRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_snapshot_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSnapshotRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_snapshot_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSnapshotRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_snapshot_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Snapshot); 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_google_cloud_netapp_v1_snapshot_proto_rawDesc, + NumEnums: 1, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_netapp_v1_snapshot_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_snapshot_proto_depIdxs, + EnumInfos: file_google_cloud_netapp_v1_snapshot_proto_enumTypes, + MessageInfos: file_google_cloud_netapp_v1_snapshot_proto_msgTypes, + }.Build() + File_google_cloud_netapp_v1_snapshot_proto = out.File + file_google_cloud_netapp_v1_snapshot_proto_rawDesc = nil + file_google_cloud_netapp_v1_snapshot_proto_goTypes = nil + file_google_cloud_netapp_v1_snapshot_proto_depIdxs = nil +} diff --git a/netapp/apiv1/netapppb/storage_pool.pb.go b/netapp/apiv1/netapppb/storage_pool.pb.go new file mode 100755 index 00000000000..e80fb41b272 --- /dev/null +++ b/netapp/apiv1/netapppb/storage_pool.pb.go @@ -0,0 +1,1017 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/storage_pool.proto + +package netapppb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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) +) + +// The Storage Pool States +type StoragePool_State int32 + +const ( + // Unspecified Storage Pool State + StoragePool_STATE_UNSPECIFIED StoragePool_State = 0 + // Storage Pool State is Ready + StoragePool_READY StoragePool_State = 1 + // Storage Pool State is Creating + StoragePool_CREATING StoragePool_State = 2 + // Storage Pool State is Deleting + StoragePool_DELETING StoragePool_State = 3 + // Storage Pool State is Updating + StoragePool_UPDATING StoragePool_State = 4 + // Storage Pool State is Restoring + StoragePool_RESTORING StoragePool_State = 5 + // Storage Pool State is Disabled + StoragePool_DISABLED StoragePool_State = 6 + // Storage Pool State is Error + StoragePool_ERROR StoragePool_State = 7 +) + +// Enum value maps for StoragePool_State. +var ( + StoragePool_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "READY", + 2: "CREATING", + 3: "DELETING", + 4: "UPDATING", + 5: "RESTORING", + 6: "DISABLED", + 7: "ERROR", + } + StoragePool_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "READY": 1, + "CREATING": 2, + "DELETING": 3, + "UPDATING": 4, + "RESTORING": 5, + "DISABLED": 6, + "ERROR": 7, + } +) + +func (x StoragePool_State) Enum() *StoragePool_State { + p := new(StoragePool_State) + *p = x + return p +} + +func (x StoragePool_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StoragePool_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_storage_pool_proto_enumTypes[0].Descriptor() +} + +func (StoragePool_State) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_storage_pool_proto_enumTypes[0] +} + +func (x StoragePool_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StoragePool_State.Descriptor instead. +func (StoragePool_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{6, 0} +} + +type GetStoragePoolRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the storage pool + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetStoragePoolRequest) Reset() { + *x = GetStoragePoolRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStoragePoolRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStoragePoolRequest) ProtoMessage() {} + +func (x *GetStoragePoolRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_storage_pool_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 GetStoragePoolRequest.ProtoReflect.Descriptor instead. +func (*GetStoragePoolRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{0} +} + +func (x *GetStoragePoolRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type ListStoragePoolsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of items to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The next_page_token value to use if there are additional + // results to retrieve for this list request. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Sort results. Supported values are "name", "name desc" or "" (unsorted). + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // List filter. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListStoragePoolsRequest) Reset() { + *x = ListStoragePoolsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListStoragePoolsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListStoragePoolsRequest) ProtoMessage() {} + +func (x *ListStoragePoolsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_storage_pool_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 ListStoragePoolsRequest.ProtoReflect.Descriptor instead. +func (*ListStoragePoolsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{1} +} + +func (x *ListStoragePoolsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListStoragePoolsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListStoragePoolsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListStoragePoolsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListStoragePoolsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +type ListStoragePoolsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of StoragePools + StoragePools []*StoragePool `protobuf:"bytes,1,rep,name=storage_pools,json=storagePools,proto3" json:"storage_pools,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListStoragePoolsResponse) Reset() { + *x = ListStoragePoolsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListStoragePoolsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListStoragePoolsResponse) ProtoMessage() {} + +func (x *ListStoragePoolsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_storage_pool_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 ListStoragePoolsResponse.ProtoReflect.Descriptor instead. +func (*ListStoragePoolsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{2} +} + +func (x *ListStoragePoolsResponse) GetStoragePools() []*StoragePool { + if x != nil { + return x.StoragePools + } + return nil +} + +func (x *ListStoragePoolsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListStoragePoolsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +type CreateStoragePoolRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting storage pool + // If auto-generating Id server-side, remove this field and + // id from the method_signature of Create RPC + StoragePoolId string `protobuf:"bytes,2,opt,name=storage_pool_id,json=storagePoolId,proto3" json:"storage_pool_id,omitempty"` + // Required. The required parameters to create a new storage pool. + StoragePool *StoragePool `protobuf:"bytes,3,opt,name=storage_pool,json=storagePool,proto3" json:"storage_pool,omitempty"` +} + +func (x *CreateStoragePoolRequest) Reset() { + *x = CreateStoragePoolRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateStoragePoolRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateStoragePoolRequest) ProtoMessage() {} + +func (x *CreateStoragePoolRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_storage_pool_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 CreateStoragePoolRequest.ProtoReflect.Descriptor instead. +func (*CreateStoragePoolRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateStoragePoolRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateStoragePoolRequest) GetStoragePoolId() string { + if x != nil { + return x.StoragePoolId + } + return "" +} + +func (x *CreateStoragePoolRequest) GetStoragePool() *StoragePool { + if x != nil { + return x.StoragePool + } + return nil +} + +type UpdateStoragePoolRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // StoragePool resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The pool being updated + StoragePool *StoragePool `protobuf:"bytes,2,opt,name=storage_pool,json=storagePool,proto3" json:"storage_pool,omitempty"` +} + +func (x *UpdateStoragePoolRequest) Reset() { + *x = UpdateStoragePoolRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateStoragePoolRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateStoragePoolRequest) ProtoMessage() {} + +func (x *UpdateStoragePoolRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_storage_pool_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 UpdateStoragePoolRequest.ProtoReflect.Descriptor instead. +func (*UpdateStoragePoolRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateStoragePoolRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateStoragePoolRequest) GetStoragePool() *StoragePool { + if x != nil { + return x.StoragePool + } + return nil +} + +type DeleteStoragePoolRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the storage pool + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteStoragePoolRequest) Reset() { + *x = DeleteStoragePoolRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteStoragePoolRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteStoragePoolRequest) ProtoMessage() {} + +func (x *DeleteStoragePoolRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_storage_pool_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 DeleteStoragePoolRequest.ProtoReflect.Descriptor instead. +func (*DeleteStoragePoolRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteStoragePoolRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// StoragePool is a container for volumes with a service level and capacity. +// Volumes can be created in a pool of sufficient available capacity. +// StoragePool capacity is what you are billed for. +type StoragePool struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Name of the storage pool + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. Service level of the storage pool + ServiceLevel ServiceLevel `protobuf:"varint,2,opt,name=service_level,json=serviceLevel,proto3,enum=google.cloud.netapp.v1.ServiceLevel" json:"service_level,omitempty"` + // Required. Capacity in GIB of the pool + CapacityGib int64 `protobuf:"varint,3,opt,name=capacity_gib,json=capacityGib,proto3" json:"capacity_gib,omitempty"` + // Output only. Allocated size of all volumes in GIB in the storage pool + VolumeCapacityGib int64 `protobuf:"varint,4,opt,name=volume_capacity_gib,json=volumeCapacityGib,proto3" json:"volume_capacity_gib,omitempty"` + // Output only. Volume count of the storage pool + VolumeCount int32 `protobuf:"varint,5,opt,name=volume_count,json=volumeCount,proto3" json:"volume_count,omitempty"` + // Output only. State of the storage pool + State StoragePool_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.netapp.v1.StoragePool_State" json:"state,omitempty"` + // Output only. State details of the storage pool + StateDetails string `protobuf:"bytes,7,opt,name=state_details,json=stateDetails,proto3" json:"state_details,omitempty"` + // Output only. Create time of the storage pool + CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Description of the storage pool + Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` + // Labels as key value pairs + Labels map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Required. VPC Network name. + // Format: projects/{project}/global/networks/{network} + Network string `protobuf:"bytes,11,opt,name=network,proto3" json:"network,omitempty"` + // Specifies the Active Directory to be used for creating a SMB volume. + ActiveDirectory string `protobuf:"bytes,12,opt,name=active_directory,json=activeDirectory,proto3" json:"active_directory,omitempty"` + // Specifies the KMS config to be used for volume encryption. + KmsConfig string `protobuf:"bytes,13,opt,name=kms_config,json=kmsConfig,proto3" json:"kms_config,omitempty"` + // Flag indicating if the pool is NFS LDAP enabled or not. + LdapEnabled bool `protobuf:"varint,14,opt,name=ldap_enabled,json=ldapEnabled,proto3" json:"ldap_enabled,omitempty"` + // Name of the Private Service Access allocated range. If + // not provided, any available range will be chosen. + PsaRange string `protobuf:"bytes,15,opt,name=psa_range,json=psaRange,proto3" json:"psa_range,omitempty"` + // Output only. Specifies the current pool encryption key source. + EncryptionType EncryptionType `protobuf:"varint,16,opt,name=encryption_type,json=encryptionType,proto3,enum=google.cloud.netapp.v1.EncryptionType" json:"encryption_type,omitempty"` + // Optional. Allows SO pool to access AD or DNS server from other regions. + GlobalAccessAllowed *bool `protobuf:"varint,17,opt,name=global_access_allowed,json=globalAccessAllowed,proto3,oneof" json:"global_access_allowed,omitempty"` +} + +func (x *StoragePool) Reset() { + *x = StoragePool{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StoragePool) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StoragePool) ProtoMessage() {} + +func (x *StoragePool) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_storage_pool_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 StoragePool.ProtoReflect.Descriptor instead. +func (*StoragePool) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP(), []int{6} +} + +func (x *StoragePool) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *StoragePool) GetServiceLevel() ServiceLevel { + if x != nil { + return x.ServiceLevel + } + return ServiceLevel_SERVICE_LEVEL_UNSPECIFIED +} + +func (x *StoragePool) GetCapacityGib() int64 { + if x != nil { + return x.CapacityGib + } + return 0 +} + +func (x *StoragePool) GetVolumeCapacityGib() int64 { + if x != nil { + return x.VolumeCapacityGib + } + return 0 +} + +func (x *StoragePool) GetVolumeCount() int32 { + if x != nil { + return x.VolumeCount + } + return 0 +} + +func (x *StoragePool) GetState() StoragePool_State { + if x != nil { + return x.State + } + return StoragePool_STATE_UNSPECIFIED +} + +func (x *StoragePool) GetStateDetails() string { + if x != nil { + return x.StateDetails + } + return "" +} + +func (x *StoragePool) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *StoragePool) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *StoragePool) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *StoragePool) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *StoragePool) GetActiveDirectory() string { + if x != nil { + return x.ActiveDirectory + } + return "" +} + +func (x *StoragePool) GetKmsConfig() string { + if x != nil { + return x.KmsConfig + } + return "" +} + +func (x *StoragePool) GetLdapEnabled() bool { + if x != nil { + return x.LdapEnabled + } + return false +} + +func (x *StoragePool) GetPsaRange() string { + if x != nil { + return x.PsaRange + } + return "" +} + +func (x *StoragePool) GetEncryptionType() EncryptionType { + if x != nil { + return x.EncryptionType + } + return EncryptionType_ENCRYPTION_TYPE_UNSPECIFIED +} + +func (x *StoragePool) GetGlobalAccessAllowed() bool { + if x != nil && x.GlobalAccessAllowed != nil { + return *x.GlobalAccessAllowed + } + return false +} + +var File_google_cloud_netapp_v1_storage_pool_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_storage_pool_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x56, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xcb, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x23, 0x12, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xae, 0x01, + 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xd7, + 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x23, 0x12, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2b, + 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x0c, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0xa9, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, + 0x6f, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x59, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x89, 0x0a, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, + 0x63, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x69, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x47, 0x69, 0x62, + 0x12, 0x33, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, + 0x69, 0x74, 0x79, 0x5f, 0x67, 0x69, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, + 0x74, 0x79, 0x47, 0x69, 0x62, 0x12, 0x26, 0x0a, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x44, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x40, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x55, 0x0a, 0x10, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x0a, 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x6b, + 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x64, 0x61, 0x70, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x6c, 0x64, 0x61, 0x70, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x73, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x73, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, + 0x0a, 0x15, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x00, 0x52, 0x13, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0b, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x7b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, + 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, + 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x44, + 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x10, 0x07, 0x3a, 0x6b, 0xea, 0x41, 0x68, 0x0a, 0x21, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x43, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x7d, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x42, 0xb2, 0x01, 0x0a, 0x1a, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x70, 0x62, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x41, 0x70, + 0x70, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_storage_pool_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_storage_pool_proto_rawDescData = file_google_cloud_netapp_v1_storage_pool_proto_rawDesc +) + +func file_google_cloud_netapp_v1_storage_pool_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_storage_pool_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_storage_pool_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_storage_pool_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_storage_pool_proto_rawDescData +} + +var file_google_cloud_netapp_v1_storage_pool_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_netapp_v1_storage_pool_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_google_cloud_netapp_v1_storage_pool_proto_goTypes = []interface{}{ + (StoragePool_State)(0), // 0: google.cloud.netapp.v1.StoragePool.State + (*GetStoragePoolRequest)(nil), // 1: google.cloud.netapp.v1.GetStoragePoolRequest + (*ListStoragePoolsRequest)(nil), // 2: google.cloud.netapp.v1.ListStoragePoolsRequest + (*ListStoragePoolsResponse)(nil), // 3: google.cloud.netapp.v1.ListStoragePoolsResponse + (*CreateStoragePoolRequest)(nil), // 4: google.cloud.netapp.v1.CreateStoragePoolRequest + (*UpdateStoragePoolRequest)(nil), // 5: google.cloud.netapp.v1.UpdateStoragePoolRequest + (*DeleteStoragePoolRequest)(nil), // 6: google.cloud.netapp.v1.DeleteStoragePoolRequest + (*StoragePool)(nil), // 7: google.cloud.netapp.v1.StoragePool + nil, // 8: google.cloud.netapp.v1.StoragePool.LabelsEntry + (*fieldmaskpb.FieldMask)(nil), // 9: google.protobuf.FieldMask + (ServiceLevel)(0), // 10: google.cloud.netapp.v1.ServiceLevel + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (EncryptionType)(0), // 12: google.cloud.netapp.v1.EncryptionType +} +var file_google_cloud_netapp_v1_storage_pool_proto_depIdxs = []int32{ + 7, // 0: google.cloud.netapp.v1.ListStoragePoolsResponse.storage_pools:type_name -> google.cloud.netapp.v1.StoragePool + 7, // 1: google.cloud.netapp.v1.CreateStoragePoolRequest.storage_pool:type_name -> google.cloud.netapp.v1.StoragePool + 9, // 2: google.cloud.netapp.v1.UpdateStoragePoolRequest.update_mask:type_name -> google.protobuf.FieldMask + 7, // 3: google.cloud.netapp.v1.UpdateStoragePoolRequest.storage_pool:type_name -> google.cloud.netapp.v1.StoragePool + 10, // 4: google.cloud.netapp.v1.StoragePool.service_level:type_name -> google.cloud.netapp.v1.ServiceLevel + 0, // 5: google.cloud.netapp.v1.StoragePool.state:type_name -> google.cloud.netapp.v1.StoragePool.State + 11, // 6: google.cloud.netapp.v1.StoragePool.create_time:type_name -> google.protobuf.Timestamp + 8, // 7: google.cloud.netapp.v1.StoragePool.labels:type_name -> google.cloud.netapp.v1.StoragePool.LabelsEntry + 12, // 8: google.cloud.netapp.v1.StoragePool.encryption_type:type_name -> google.cloud.netapp.v1.EncryptionType + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_storage_pool_proto_init() } +func file_google_cloud_netapp_v1_storage_pool_proto_init() { + if File_google_cloud_netapp_v1_storage_pool_proto != nil { + return + } + file_google_cloud_netapp_v1_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStoragePoolRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListStoragePoolsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListStoragePoolsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateStoragePoolRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateStoragePoolRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteStoragePoolRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StoragePool); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_netapp_v1_storage_pool_proto_msgTypes[6].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_netapp_v1_storage_pool_proto_rawDesc, + NumEnums: 1, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_netapp_v1_storage_pool_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_storage_pool_proto_depIdxs, + EnumInfos: file_google_cloud_netapp_v1_storage_pool_proto_enumTypes, + MessageInfos: file_google_cloud_netapp_v1_storage_pool_proto_msgTypes, + }.Build() + File_google_cloud_netapp_v1_storage_pool_proto = out.File + file_google_cloud_netapp_v1_storage_pool_proto_rawDesc = nil + file_google_cloud_netapp_v1_storage_pool_proto_goTypes = nil + file_google_cloud_netapp_v1_storage_pool_proto_depIdxs = nil +} diff --git a/netapp/apiv1/netapppb/volume.pb.go b/netapp/apiv1/netapppb/volume.pb.go new file mode 100755 index 00000000000..e2d410268b4 --- /dev/null +++ b/netapp/apiv1/netapppb/volume.pb.go @@ -0,0 +1,2557 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.23.2 +// source: google/cloud/netapp/v1/volume.proto + +package netapppb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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 Protocols int32 + +const ( + // Unspecified protocol + Protocols_PROTOCOLS_UNSPECIFIED Protocols = 0 + // NFS V3 protocol + Protocols_NFSV3 Protocols = 1 + // NFS V4 protocol + Protocols_NFSV4 Protocols = 2 + // SMB protocol + Protocols_SMB Protocols = 3 +) + +// Enum value maps for Protocols. +var ( + Protocols_name = map[int32]string{ + 0: "PROTOCOLS_UNSPECIFIED", + 1: "NFSV3", + 2: "NFSV4", + 3: "SMB", + } + Protocols_value = map[string]int32{ + "PROTOCOLS_UNSPECIFIED": 0, + "NFSV3": 1, + "NFSV4": 2, + "SMB": 3, + } +) + +func (x Protocols) Enum() *Protocols { + p := new(Protocols) + *p = x + return p +} + +func (x Protocols) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Protocols) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_volume_proto_enumTypes[0].Descriptor() +} + +func (Protocols) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_volume_proto_enumTypes[0] +} + +func (x Protocols) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Protocols.Descriptor instead. +func (Protocols) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{0} +} + +type AccessType int32 + +const ( + // Unspecified Access Type + AccessType_ACCESS_TYPE_UNSPECIFIED AccessType = 0 + // Read Only + AccessType_READ_ONLY AccessType = 1 + // Read Write + AccessType_READ_WRITE AccessType = 2 + // None + AccessType_READ_NONE AccessType = 3 +) + +// Enum value maps for AccessType. +var ( + AccessType_name = map[int32]string{ + 0: "ACCESS_TYPE_UNSPECIFIED", + 1: "READ_ONLY", + 2: "READ_WRITE", + 3: "READ_NONE", + } + AccessType_value = map[string]int32{ + "ACCESS_TYPE_UNSPECIFIED": 0, + "READ_ONLY": 1, + "READ_WRITE": 2, + "READ_NONE": 3, + } +) + +func (x AccessType) Enum() *AccessType { + p := new(AccessType) + *p = x + return p +} + +func (x AccessType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AccessType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_volume_proto_enumTypes[1].Descriptor() +} + +func (AccessType) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_volume_proto_enumTypes[1] +} + +func (x AccessType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AccessType.Descriptor instead. +func (AccessType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{1} +} + +// SMBSettings +// Modifies the behaviour of a SMB volume. +type SMBSettings int32 + +const ( + // Unspecified default option + SMBSettings_SMB_SETTINGS_UNSPECIFIED SMBSettings = 0 + // SMB setting encrypt data + SMBSettings_ENCRYPT_DATA SMBSettings = 1 + // SMB setting browsable + SMBSettings_BROWSABLE SMBSettings = 2 + // SMB setting notify change + SMBSettings_CHANGE_NOTIFY SMBSettings = 3 + // SMB setting not to notify change + SMBSettings_NON_BROWSABLE SMBSettings = 4 + // SMB setting oplocks + SMBSettings_OPLOCKS SMBSettings = 5 + // SMB setting to show snapshots + SMBSettings_SHOW_SNAPSHOT SMBSettings = 6 + // SMB setting to show previous versions + SMBSettings_SHOW_PREVIOUS_VERSIONS SMBSettings = 7 + // SMB setting to access volume based on enumerartion + SMBSettings_ACCESS_BASED_ENUMERATION SMBSettings = 8 + // Continuously available enumeration + SMBSettings_CONTINUOUSLY_AVAILABLE SMBSettings = 9 +) + +// Enum value maps for SMBSettings. +var ( + SMBSettings_name = map[int32]string{ + 0: "SMB_SETTINGS_UNSPECIFIED", + 1: "ENCRYPT_DATA", + 2: "BROWSABLE", + 3: "CHANGE_NOTIFY", + 4: "NON_BROWSABLE", + 5: "OPLOCKS", + 6: "SHOW_SNAPSHOT", + 7: "SHOW_PREVIOUS_VERSIONS", + 8: "ACCESS_BASED_ENUMERATION", + 9: "CONTINUOUSLY_AVAILABLE", + } + SMBSettings_value = map[string]int32{ + "SMB_SETTINGS_UNSPECIFIED": 0, + "ENCRYPT_DATA": 1, + "BROWSABLE": 2, + "CHANGE_NOTIFY": 3, + "NON_BROWSABLE": 4, + "OPLOCKS": 5, + "SHOW_SNAPSHOT": 6, + "SHOW_PREVIOUS_VERSIONS": 7, + "ACCESS_BASED_ENUMERATION": 8, + "CONTINUOUSLY_AVAILABLE": 9, + } +) + +func (x SMBSettings) Enum() *SMBSettings { + p := new(SMBSettings) + *p = x + return p +} + +func (x SMBSettings) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SMBSettings) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_volume_proto_enumTypes[2].Descriptor() +} + +func (SMBSettings) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_volume_proto_enumTypes[2] +} + +func (x SMBSettings) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SMBSettings.Descriptor instead. +func (SMBSettings) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{2} +} + +// The security style of the volume, can be either UNIX or NTFS. +type SecurityStyle int32 + +const ( + // SecurityStyle is unspecified + SecurityStyle_SECURITY_STYLE_UNSPECIFIED SecurityStyle = 0 + // SecurityStyle uses NTFS + SecurityStyle_NTFS SecurityStyle = 1 + // SecurityStyle uses NTFS + SecurityStyle_UNIX SecurityStyle = 2 +) + +// Enum value maps for SecurityStyle. +var ( + SecurityStyle_name = map[int32]string{ + 0: "SECURITY_STYLE_UNSPECIFIED", + 1: "NTFS", + 2: "UNIX", + } + SecurityStyle_value = map[string]int32{ + "SECURITY_STYLE_UNSPECIFIED": 0, + "NTFS": 1, + "UNIX": 2, + } +) + +func (x SecurityStyle) Enum() *SecurityStyle { + p := new(SecurityStyle) + *p = x + return p +} + +func (x SecurityStyle) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SecurityStyle) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_volume_proto_enumTypes[3].Descriptor() +} + +func (SecurityStyle) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_volume_proto_enumTypes[3] +} + +func (x SecurityStyle) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SecurityStyle.Descriptor instead. +func (SecurityStyle) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{3} +} + +// The volume states +type Volume_State int32 + +const ( + // Unspecified Volume State + Volume_STATE_UNSPECIFIED Volume_State = 0 + // Volume State is Ready + Volume_READY Volume_State = 1 + // Volume State is Creating + Volume_CREATING Volume_State = 2 + // Volume State is Deleting + Volume_DELETING Volume_State = 3 + // Volume State is Updating + Volume_UPDATING Volume_State = 4 + // Volume State is Restoring + Volume_RESTORING Volume_State = 5 + // Volume State is Disabled + Volume_DISABLED Volume_State = 6 + // Volume State is Error + Volume_ERROR Volume_State = 7 +) + +// Enum value maps for Volume_State. +var ( + Volume_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "READY", + 2: "CREATING", + 3: "DELETING", + 4: "UPDATING", + 5: "RESTORING", + 6: "DISABLED", + 7: "ERROR", + } + Volume_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "READY": 1, + "CREATING": 2, + "DELETING": 3, + "UPDATING": 4, + "RESTORING": 5, + "DISABLED": 6, + "ERROR": 7, + } +) + +func (x Volume_State) Enum() *Volume_State { + p := new(Volume_State) + *p = x + return p +} + +func (x Volume_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Volume_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_netapp_v1_volume_proto_enumTypes[4].Descriptor() +} + +func (Volume_State) Type() protoreflect.EnumType { + return &file_google_cloud_netapp_v1_volume_proto_enumTypes[4] +} + +func (x Volume_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Volume_State.Descriptor instead. +func (Volume_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{7, 0} +} + +// Message for requesting list of Volumes +type ListVolumesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListVolumesRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, the server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListVolumesRequest) Reset() { + *x = ListVolumesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListVolumesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesRequest) ProtoMessage() {} + +func (x *ListVolumesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 ListVolumesRequest.ProtoReflect.Descriptor instead. +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{0} +} + +func (x *ListVolumesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListVolumesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListVolumesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListVolumesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListVolumesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Volumes +type ListVolumesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Volume + Volumes []*Volume `protobuf:"bytes,1,rep,name=volumes,proto3" json:"volumes,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListVolumesResponse) Reset() { + *x = ListVolumesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListVolumesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesResponse) ProtoMessage() {} + +func (x *ListVolumesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 ListVolumesResponse.ProtoReflect.Descriptor instead. +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{1} +} + +func (x *ListVolumesResponse) GetVolumes() []*Volume { + if x != nil { + return x.Volumes + } + return nil +} + +func (x *ListVolumesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListVolumesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Volume +type GetVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the volume + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetVolumeRequest) Reset() { + *x = GetVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVolumeRequest) ProtoMessage() {} + +func (x *GetVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 GetVolumeRequest.ProtoReflect.Descriptor instead. +func (*GetVolumeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{2} +} + +func (x *GetVolumeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Volume +type CreateVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting volume + // If auto-generating Id server-side, remove this field and + // Id from the method_signature of Create RPC + VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Required. The volume being created. + Volume *Volume `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"` +} + +func (x *CreateVolumeRequest) Reset() { + *x = CreateVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateVolumeRequest) ProtoMessage() {} + +func (x *CreateVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 CreateVolumeRequest.ProtoReflect.Descriptor instead. +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateVolumeRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *CreateVolumeRequest) GetVolume() *Volume { + if x != nil { + return x.Volume + } + return nil +} + +// Message for updating a Volume +type UpdateVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Volume resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The volume being updated + Volume *Volume `protobuf:"bytes,2,opt,name=volume,proto3" json:"volume,omitempty"` +} + +func (x *UpdateVolumeRequest) Reset() { + *x = UpdateVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateVolumeRequest) ProtoMessage() {} + +func (x *UpdateVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 UpdateVolumeRequest.ProtoReflect.Descriptor instead. +func (*UpdateVolumeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateVolumeRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateVolumeRequest) GetVolume() *Volume { + if x != nil { + return x.Volume + } + return nil +} + +// Message for deleting a Volume +type DeleteVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the volume + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If this field is set as true, CCFE will not block the volume resource + // deletion even if it has any snapshots resource. (Otherwise, the request + // will only work if the volume has no snapshots.) + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` +} + +func (x *DeleteVolumeRequest) Reset() { + *x = DeleteVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteVolumeRequest) ProtoMessage() {} + +func (x *DeleteVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 DeleteVolumeRequest.ProtoReflect.Descriptor instead. +func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteVolumeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteVolumeRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +// RevertVolumeRequest reverts the given volume to the specified snapshot. +type RevertVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the volume, in the format of + // projects/{project_id}/locations/{location}/volumes/{volume_id}. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The snapshot resource ID, in the format 'my-snapshot', where the + // specified ID is the {snapshot_id} of the fully qualified name like + // projects/{project_id}/locations/{location_id}/volumes/{volume_id}/snapshots/{snapshot_id} + SnapshotId string `protobuf:"bytes,2,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` +} + +func (x *RevertVolumeRequest) Reset() { + *x = RevertVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RevertVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevertVolumeRequest) ProtoMessage() {} + +func (x *RevertVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 RevertVolumeRequest.ProtoReflect.Descriptor instead. +func (*RevertVolumeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{6} +} + +func (x *RevertVolumeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RevertVolumeRequest) GetSnapshotId() string { + if x != nil { + return x.SnapshotId + } + return "" +} + +// Volume provides a filesystem that you can mount. +type Volume struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Name of the volume + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. State of the volume + State Volume_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.netapp.v1.Volume_State" json:"state,omitempty"` + // Output only. State details of the volume + StateDetails string `protobuf:"bytes,3,opt,name=state_details,json=stateDetails,proto3" json:"state_details,omitempty"` + // Output only. Create time of the volume + CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Required. Share name of the volume + ShareName string `protobuf:"bytes,5,opt,name=share_name,json=shareName,proto3" json:"share_name,omitempty"` + // Output only. Name of the Private Service Access allocated range. This is + // optional. If not provided, any available range will be chosen. + PsaRange string `protobuf:"bytes,6,opt,name=psa_range,json=psaRange,proto3" json:"psa_range,omitempty"` + // Required. StoragePool name of the volume + StoragePool string `protobuf:"bytes,7,opt,name=storage_pool,json=storagePool,proto3" json:"storage_pool,omitempty"` + // Output only. VPC Network name. + // Format: projects/{project}/global/networks/{network} + Network string `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"` + // Output only. Service level of the volume + ServiceLevel ServiceLevel `protobuf:"varint,9,opt,name=service_level,json=serviceLevel,proto3,enum=google.cloud.netapp.v1.ServiceLevel" json:"service_level,omitempty"` + // Required. Capacity in GIB of the volume + CapacityGib int64 `protobuf:"varint,10,opt,name=capacity_gib,json=capacityGib,proto3" json:"capacity_gib,omitempty"` + // Optional. Export policy of the volume + ExportPolicy *ExportPolicy `protobuf:"bytes,11,opt,name=export_policy,json=exportPolicy,proto3" json:"export_policy,omitempty"` + // Required. Protocols required for the volume + Protocols []Protocols `protobuf:"varint,12,rep,packed,name=protocols,proto3,enum=google.cloud.netapp.v1.Protocols" json:"protocols,omitempty"` + // Optional. SMB share settings for the volume. + SmbSettings []SMBSettings `protobuf:"varint,13,rep,packed,name=smb_settings,json=smbSettings,proto3,enum=google.cloud.netapp.v1.SMBSettings" json:"smb_settings,omitempty"` + // Output only. Mount options of this volume + MountOptions []*MountOption `protobuf:"bytes,14,rep,name=mount_options,json=mountOptions,proto3" json:"mount_options,omitempty"` + // Optional. Default unix style permission (e.g. 777) the mount point will be + // created with. Applicable for NFS protocol types only. + UnixPermissions string `protobuf:"bytes,15,opt,name=unix_permissions,json=unixPermissions,proto3" json:"unix_permissions,omitempty"` + // Optional. Labels as key value pairs + Labels map[string]string `protobuf:"bytes,16,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Description of the volume + Description string `protobuf:"bytes,17,opt,name=description,proto3" json:"description,omitempty"` + // Optional. SnapshotPolicy for a volume. + SnapshotPolicy *SnapshotPolicy `protobuf:"bytes,18,opt,name=snapshot_policy,json=snapshotPolicy,proto3" json:"snapshot_policy,omitempty"` + // Optional. Snap_reserve specifies percentage of volume storage reserved for + // snapshot storage. Default is 0 percent. + SnapReserve float64 `protobuf:"fixed64,19,opt,name=snap_reserve,json=snapReserve,proto3" json:"snap_reserve,omitempty"` + // Optional. Snapshot_directory if enabled (true) the volume will contain a + // read-only .snapshot directory which provides access to each of the volume's + // snapshots. + SnapshotDirectory bool `protobuf:"varint,20,opt,name=snapshot_directory,json=snapshotDirectory,proto3" json:"snapshot_directory,omitempty"` + // Output only. Used capacity in GIB of the volume. This is computed + // periodically and it does not represent the realtime usage. + UsedGib int64 `protobuf:"varint,21,opt,name=used_gib,json=usedGib,proto3" json:"used_gib,omitempty"` + // Optional. Security Style of the Volume + SecurityStyle SecurityStyle `protobuf:"varint,22,opt,name=security_style,json=securityStyle,proto3,enum=google.cloud.netapp.v1.SecurityStyle" json:"security_style,omitempty"` + // Optional. Flag indicating if the volume is a kerberos volume or not, export + // policy rules control kerberos security modes (krb5, krb5i, krb5p). + KerberosEnabled bool `protobuf:"varint,23,opt,name=kerberos_enabled,json=kerberosEnabled,proto3" json:"kerberos_enabled,omitempty"` + // Output only. Flag indicating if the volume is NFS LDAP enabled or not. + LdapEnabled bool `protobuf:"varint,24,opt,name=ldap_enabled,json=ldapEnabled,proto3" json:"ldap_enabled,omitempty"` + // Output only. Specifies the ActiveDirectory name of a SMB volume. + ActiveDirectory string `protobuf:"bytes,25,opt,name=active_directory,json=activeDirectory,proto3" json:"active_directory,omitempty"` + // Optional. Specifies the source of the volume to be created from. + RestoreParameters *RestoreParameters `protobuf:"bytes,26,opt,name=restore_parameters,json=restoreParameters,proto3" json:"restore_parameters,omitempty"` + // Output only. Specifies the KMS config to be used for volume encryption. + KmsConfig string `protobuf:"bytes,27,opt,name=kms_config,json=kmsConfig,proto3" json:"kms_config,omitempty"` + // Output only. Specified the current volume encryption key source. + EncryptionType EncryptionType `protobuf:"varint,28,opt,name=encryption_type,json=encryptionType,proto3,enum=google.cloud.netapp.v1.EncryptionType" json:"encryption_type,omitempty"` + // Output only. Indicates whether the volume is part of a replication + // relationship. + HasReplication bool `protobuf:"varint,29,opt,name=has_replication,json=hasReplication,proto3" json:"has_replication,omitempty"` +} + +func (x *Volume) Reset() { + *x = Volume{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Volume) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Volume) ProtoMessage() {} + +func (x *Volume) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 Volume.ProtoReflect.Descriptor instead. +func (*Volume) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{7} +} + +func (x *Volume) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Volume) GetState() Volume_State { + if x != nil { + return x.State + } + return Volume_STATE_UNSPECIFIED +} + +func (x *Volume) GetStateDetails() string { + if x != nil { + return x.StateDetails + } + return "" +} + +func (x *Volume) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Volume) GetShareName() string { + if x != nil { + return x.ShareName + } + return "" +} + +func (x *Volume) GetPsaRange() string { + if x != nil { + return x.PsaRange + } + return "" +} + +func (x *Volume) GetStoragePool() string { + if x != nil { + return x.StoragePool + } + return "" +} + +func (x *Volume) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *Volume) GetServiceLevel() ServiceLevel { + if x != nil { + return x.ServiceLevel + } + return ServiceLevel_SERVICE_LEVEL_UNSPECIFIED +} + +func (x *Volume) GetCapacityGib() int64 { + if x != nil { + return x.CapacityGib + } + return 0 +} + +func (x *Volume) GetExportPolicy() *ExportPolicy { + if x != nil { + return x.ExportPolicy + } + return nil +} + +func (x *Volume) GetProtocols() []Protocols { + if x != nil { + return x.Protocols + } + return nil +} + +func (x *Volume) GetSmbSettings() []SMBSettings { + if x != nil { + return x.SmbSettings + } + return nil +} + +func (x *Volume) GetMountOptions() []*MountOption { + if x != nil { + return x.MountOptions + } + return nil +} + +func (x *Volume) GetUnixPermissions() string { + if x != nil { + return x.UnixPermissions + } + return "" +} + +func (x *Volume) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Volume) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Volume) GetSnapshotPolicy() *SnapshotPolicy { + if x != nil { + return x.SnapshotPolicy + } + return nil +} + +func (x *Volume) GetSnapReserve() float64 { + if x != nil { + return x.SnapReserve + } + return 0 +} + +func (x *Volume) GetSnapshotDirectory() bool { + if x != nil { + return x.SnapshotDirectory + } + return false +} + +func (x *Volume) GetUsedGib() int64 { + if x != nil { + return x.UsedGib + } + return 0 +} + +func (x *Volume) GetSecurityStyle() SecurityStyle { + if x != nil { + return x.SecurityStyle + } + return SecurityStyle_SECURITY_STYLE_UNSPECIFIED +} + +func (x *Volume) GetKerberosEnabled() bool { + if x != nil { + return x.KerberosEnabled + } + return false +} + +func (x *Volume) GetLdapEnabled() bool { + if x != nil { + return x.LdapEnabled + } + return false +} + +func (x *Volume) GetActiveDirectory() string { + if x != nil { + return x.ActiveDirectory + } + return "" +} + +func (x *Volume) GetRestoreParameters() *RestoreParameters { + if x != nil { + return x.RestoreParameters + } + return nil +} + +func (x *Volume) GetKmsConfig() string { + if x != nil { + return x.KmsConfig + } + return "" +} + +func (x *Volume) GetEncryptionType() EncryptionType { + if x != nil { + return x.EncryptionType + } + return EncryptionType_ENCRYPTION_TYPE_UNSPECIFIED +} + +func (x *Volume) GetHasReplication() bool { + if x != nil { + return x.HasReplication + } + return false +} + +// Defines the export policy for the volume. +type ExportPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. List of export policy rules + Rules []*SimpleExportPolicyRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` +} + +func (x *ExportPolicy) Reset() { + *x = ExportPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExportPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExportPolicy) ProtoMessage() {} + +func (x *ExportPolicy) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 ExportPolicy.ProtoReflect.Descriptor instead. +func (*ExportPolicy) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{8} +} + +func (x *ExportPolicy) GetRules() []*SimpleExportPolicyRule { + if x != nil { + return x.Rules + } + return nil +} + +// An export policy rule describing various export options. +type SimpleExportPolicyRule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Comma separated list of allowed clients IP addresses + AllowedClients *string `protobuf:"bytes,1,opt,name=allowed_clients,json=allowedClients,proto3,oneof" json:"allowed_clients,omitempty"` + // Whether Unix root access will be granted. + HasRootAccess *string `protobuf:"bytes,2,opt,name=has_root_access,json=hasRootAccess,proto3,oneof" json:"has_root_access,omitempty"` + // Access type (ReadWrite, ReadOnly, None) + AccessType *AccessType `protobuf:"varint,3,opt,name=access_type,json=accessType,proto3,enum=google.cloud.netapp.v1.AccessType,oneof" json:"access_type,omitempty"` + // NFS V3 protocol. + Nfsv3 *bool `protobuf:"varint,4,opt,name=nfsv3,proto3,oneof" json:"nfsv3,omitempty"` + // NFS V4 protocol. + Nfsv4 *bool `protobuf:"varint,5,opt,name=nfsv4,proto3,oneof" json:"nfsv4,omitempty"` + // If enabled (true) the rule defines a read only access for clients matching + // the 'allowedClients' specification. It enables nfs clients to mount using + // 'authentication' kerberos security mode. + Kerberos_5ReadOnly *bool `protobuf:"varint,6,opt,name=kerberos_5_read_only,json=kerberos5ReadOnly,proto3,oneof" json:"kerberos_5_read_only,omitempty"` + // If enabled (true) the rule defines read and write access for clients + // matching the 'allowedClients' specification. It enables nfs clients to + // mount using 'authentication' kerberos security mode. The + // 'kerberos5ReadOnly' value be ignored if this is enabled. + Kerberos_5ReadWrite *bool `protobuf:"varint,7,opt,name=kerberos_5_read_write,json=kerberos5ReadWrite,proto3,oneof" json:"kerberos_5_read_write,omitempty"` + // If enabled (true) the rule defines a read only access for clients matching + // the 'allowedClients' specification. It enables nfs clients to mount using + // 'integrity' kerberos security mode. + Kerberos_5IReadOnly *bool `protobuf:"varint,8,opt,name=kerberos_5i_read_only,json=kerberos5iReadOnly,proto3,oneof" json:"kerberos_5i_read_only,omitempty"` + // If enabled (true) the rule defines read and write access for clients + // matching the 'allowedClients' specification. It enables nfs clients to + // mount using 'integrity' kerberos security mode. The 'kerberos5iReadOnly' + // value be ignored if this is enabled. + Kerberos_5IReadWrite *bool `protobuf:"varint,9,opt,name=kerberos_5i_read_write,json=kerberos5iReadWrite,proto3,oneof" json:"kerberos_5i_read_write,omitempty"` + // If enabled (true) the rule defines a read only access for clients matching + // the 'allowedClients' specification. It enables nfs clients to mount using + // 'privacy' kerberos security mode. + Kerberos_5PReadOnly *bool `protobuf:"varint,10,opt,name=kerberos_5p_read_only,json=kerberos5pReadOnly,proto3,oneof" json:"kerberos_5p_read_only,omitempty"` + // If enabled (true) the rule defines read and write access for clients + // matching the 'allowedClients' specification. It enables nfs clients to + // mount using 'privacy' kerberos security mode. The 'kerberos5pReadOnly' + // value be ignored if this is enabled. + Kerberos_5PReadWrite *bool `protobuf:"varint,11,opt,name=kerberos_5p_read_write,json=kerberos5pReadWrite,proto3,oneof" json:"kerberos_5p_read_write,omitempty"` +} + +func (x *SimpleExportPolicyRule) Reset() { + *x = SimpleExportPolicyRule{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SimpleExportPolicyRule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SimpleExportPolicyRule) ProtoMessage() {} + +func (x *SimpleExportPolicyRule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 SimpleExportPolicyRule.ProtoReflect.Descriptor instead. +func (*SimpleExportPolicyRule) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{9} +} + +func (x *SimpleExportPolicyRule) GetAllowedClients() string { + if x != nil && x.AllowedClients != nil { + return *x.AllowedClients + } + return "" +} + +func (x *SimpleExportPolicyRule) GetHasRootAccess() string { + if x != nil && x.HasRootAccess != nil { + return *x.HasRootAccess + } + return "" +} + +func (x *SimpleExportPolicyRule) GetAccessType() AccessType { + if x != nil && x.AccessType != nil { + return *x.AccessType + } + return AccessType_ACCESS_TYPE_UNSPECIFIED +} + +func (x *SimpleExportPolicyRule) GetNfsv3() bool { + if x != nil && x.Nfsv3 != nil { + return *x.Nfsv3 + } + return false +} + +func (x *SimpleExportPolicyRule) GetNfsv4() bool { + if x != nil && x.Nfsv4 != nil { + return *x.Nfsv4 + } + return false +} + +func (x *SimpleExportPolicyRule) GetKerberos_5ReadOnly() bool { + if x != nil && x.Kerberos_5ReadOnly != nil { + return *x.Kerberos_5ReadOnly + } + return false +} + +func (x *SimpleExportPolicyRule) GetKerberos_5ReadWrite() bool { + if x != nil && x.Kerberos_5ReadWrite != nil { + return *x.Kerberos_5ReadWrite + } + return false +} + +func (x *SimpleExportPolicyRule) GetKerberos_5IReadOnly() bool { + if x != nil && x.Kerberos_5IReadOnly != nil { + return *x.Kerberos_5IReadOnly + } + return false +} + +func (x *SimpleExportPolicyRule) GetKerberos_5IReadWrite() bool { + if x != nil && x.Kerberos_5IReadWrite != nil { + return *x.Kerberos_5IReadWrite + } + return false +} + +func (x *SimpleExportPolicyRule) GetKerberos_5PReadOnly() bool { + if x != nil && x.Kerberos_5PReadOnly != nil { + return *x.Kerberos_5PReadOnly + } + return false +} + +func (x *SimpleExportPolicyRule) GetKerberos_5PReadWrite() bool { + if x != nil && x.Kerberos_5PReadWrite != nil { + return *x.Kerberos_5PReadWrite + } + return false +} + +// Snapshot Policy for a volume. +type SnapshotPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If enabled, make snapshots automatically according to the schedules. + // Default is false. + Enabled *bool `protobuf:"varint,1,opt,name=enabled,proto3,oneof" json:"enabled,omitempty"` + // Hourly schedule policy. + HourlySchedule *HourlySchedule `protobuf:"bytes,2,opt,name=hourly_schedule,json=hourlySchedule,proto3,oneof" json:"hourly_schedule,omitempty"` + // Daily schedule policy. + DailySchedule *DailySchedule `protobuf:"bytes,3,opt,name=daily_schedule,json=dailySchedule,proto3,oneof" json:"daily_schedule,omitempty"` + // Weekly schedule policy. + WeeklySchedule *WeeklySchedule `protobuf:"bytes,4,opt,name=weekly_schedule,json=weeklySchedule,proto3,oneof" json:"weekly_schedule,omitempty"` + // Monthly schedule policy. + MonthlySchedule *MonthlySchedule `protobuf:"bytes,5,opt,name=monthly_schedule,json=monthlySchedule,proto3,oneof" json:"monthly_schedule,omitempty"` +} + +func (x *SnapshotPolicy) Reset() { + *x = SnapshotPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SnapshotPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SnapshotPolicy) ProtoMessage() {} + +func (x *SnapshotPolicy) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 SnapshotPolicy.ProtoReflect.Descriptor instead. +func (*SnapshotPolicy) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{10} +} + +func (x *SnapshotPolicy) GetEnabled() bool { + if x != nil && x.Enabled != nil { + return *x.Enabled + } + return false +} + +func (x *SnapshotPolicy) GetHourlySchedule() *HourlySchedule { + if x != nil { + return x.HourlySchedule + } + return nil +} + +func (x *SnapshotPolicy) GetDailySchedule() *DailySchedule { + if x != nil { + return x.DailySchedule + } + return nil +} + +func (x *SnapshotPolicy) GetWeeklySchedule() *WeeklySchedule { + if x != nil { + return x.WeeklySchedule + } + return nil +} + +func (x *SnapshotPolicy) GetMonthlySchedule() *MonthlySchedule { + if x != nil { + return x.MonthlySchedule + } + return nil +} + +// Make a snapshot every hour e.g. at 04:00, 05:00, 06:00. +type HourlySchedule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of Snapshots to keep for the hourly schedule + SnapshotsToKeep *float64 `protobuf:"fixed64,1,opt,name=snapshots_to_keep,json=snapshotsToKeep,proto3,oneof" json:"snapshots_to_keep,omitempty"` + // Set the minute of the hour to start the snapshot (0-59), defaults to the + // top of the hour (0). + Minute *float64 `protobuf:"fixed64,2,opt,name=minute,proto3,oneof" json:"minute,omitempty"` +} + +func (x *HourlySchedule) Reset() { + *x = HourlySchedule{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HourlySchedule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HourlySchedule) ProtoMessage() {} + +func (x *HourlySchedule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 HourlySchedule.ProtoReflect.Descriptor instead. +func (*HourlySchedule) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{11} +} + +func (x *HourlySchedule) GetSnapshotsToKeep() float64 { + if x != nil && x.SnapshotsToKeep != nil { + return *x.SnapshotsToKeep + } + return 0 +} + +func (x *HourlySchedule) GetMinute() float64 { + if x != nil && x.Minute != nil { + return *x.Minute + } + return 0 +} + +// Make a snapshot every day e.g. at 04:00, 05:20, 23:50 +type DailySchedule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of Snapshots to keep for the hourly schedule + SnapshotsToKeep *float64 `protobuf:"fixed64,1,opt,name=snapshots_to_keep,json=snapshotsToKeep,proto3,oneof" json:"snapshots_to_keep,omitempty"` + // Set the minute of the hour to start the snapshot (0-59), defaults to the + // top of the hour (0). + Minute *float64 `protobuf:"fixed64,2,opt,name=minute,proto3,oneof" json:"minute,omitempty"` + // Set the hour to start the snapshot (0-23), defaults to midnight (0). + Hour *float64 `protobuf:"fixed64,3,opt,name=hour,proto3,oneof" json:"hour,omitempty"` +} + +func (x *DailySchedule) Reset() { + *x = DailySchedule{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DailySchedule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DailySchedule) ProtoMessage() {} + +func (x *DailySchedule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 DailySchedule.ProtoReflect.Descriptor instead. +func (*DailySchedule) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{12} +} + +func (x *DailySchedule) GetSnapshotsToKeep() float64 { + if x != nil && x.SnapshotsToKeep != nil { + return *x.SnapshotsToKeep + } + return 0 +} + +func (x *DailySchedule) GetMinute() float64 { + if x != nil && x.Minute != nil { + return *x.Minute + } + return 0 +} + +func (x *DailySchedule) GetHour() float64 { + if x != nil && x.Hour != nil { + return *x.Hour + } + return 0 +} + +// Make a snapshot every week e.g. at Monday 04:00, Wednesday 05:20, Sunday +// 23:50 +type WeeklySchedule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of Snapshots to keep for the hourly schedule + SnapshotsToKeep *float64 `protobuf:"fixed64,1,opt,name=snapshots_to_keep,json=snapshotsToKeep,proto3,oneof" json:"snapshots_to_keep,omitempty"` + // Set the minute of the hour to start the snapshot (0-59), defaults to the + // top of the hour (0). + Minute *float64 `protobuf:"fixed64,2,opt,name=minute,proto3,oneof" json:"minute,omitempty"` + // Set the hour to start the snapshot (0-23), defaults to midnight (0). + Hour *float64 `protobuf:"fixed64,3,opt,name=hour,proto3,oneof" json:"hour,omitempty"` + // Set the day or days of the week to make a snapshot. Accepts a comma + // separated days of the week. Defaults to 'Sunday'. + Day *string `protobuf:"bytes,4,opt,name=day,proto3,oneof" json:"day,omitempty"` +} + +func (x *WeeklySchedule) Reset() { + *x = WeeklySchedule{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeeklySchedule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeeklySchedule) ProtoMessage() {} + +func (x *WeeklySchedule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 WeeklySchedule.ProtoReflect.Descriptor instead. +func (*WeeklySchedule) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{13} +} + +func (x *WeeklySchedule) GetSnapshotsToKeep() float64 { + if x != nil && x.SnapshotsToKeep != nil { + return *x.SnapshotsToKeep + } + return 0 +} + +func (x *WeeklySchedule) GetMinute() float64 { + if x != nil && x.Minute != nil { + return *x.Minute + } + return 0 +} + +func (x *WeeklySchedule) GetHour() float64 { + if x != nil && x.Hour != nil { + return *x.Hour + } + return 0 +} + +func (x *WeeklySchedule) GetDay() string { + if x != nil && x.Day != nil { + return *x.Day + } + return "" +} + +// Make a snapshot once a month e.g. at 2nd 04:00, 7th 05:20, 24th 23:50 +type MonthlySchedule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of Snapshots to keep for the hourly schedule + SnapshotsToKeep *float64 `protobuf:"fixed64,1,opt,name=snapshots_to_keep,json=snapshotsToKeep,proto3,oneof" json:"snapshots_to_keep,omitempty"` + // Set the minute of the hour to start the snapshot (0-59), defaults to the + // top of the hour (0). + Minute *float64 `protobuf:"fixed64,2,opt,name=minute,proto3,oneof" json:"minute,omitempty"` + // Set the hour to start the snapshot (0-23), defaults to midnight (0). + Hour *float64 `protobuf:"fixed64,3,opt,name=hour,proto3,oneof" json:"hour,omitempty"` + // Set the day or days of the month to make a snapshot (1-31). Accepts a + // comma separated number of days. Defaults to '1'. + DaysOfMonth *string `protobuf:"bytes,4,opt,name=days_of_month,json=daysOfMonth,proto3,oneof" json:"days_of_month,omitempty"` +} + +func (x *MonthlySchedule) Reset() { + *x = MonthlySchedule{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MonthlySchedule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MonthlySchedule) ProtoMessage() {} + +func (x *MonthlySchedule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 MonthlySchedule.ProtoReflect.Descriptor instead. +func (*MonthlySchedule) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{14} +} + +func (x *MonthlySchedule) GetSnapshotsToKeep() float64 { + if x != nil && x.SnapshotsToKeep != nil { + return *x.SnapshotsToKeep + } + return 0 +} + +func (x *MonthlySchedule) GetMinute() float64 { + if x != nil && x.Minute != nil { + return *x.Minute + } + return 0 +} + +func (x *MonthlySchedule) GetHour() float64 { + if x != nil && x.Hour != nil { + return *x.Hour + } + return 0 +} + +func (x *MonthlySchedule) GetDaysOfMonth() string { + if x != nil && x.DaysOfMonth != nil { + return *x.DaysOfMonth + } + return "" +} + +// View only mount options for a volume. +type MountOption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Export string + Export string `protobuf:"bytes,1,opt,name=export,proto3" json:"export,omitempty"` + // Full export string + ExportFull string `protobuf:"bytes,2,opt,name=export_full,json=exportFull,proto3" json:"export_full,omitempty"` + // Protocol to mount with. + Protocol Protocols `protobuf:"varint,3,opt,name=protocol,proto3,enum=google.cloud.netapp.v1.Protocols" json:"protocol,omitempty"` + // Instructions for mounting + Instructions string `protobuf:"bytes,4,opt,name=instructions,proto3" json:"instructions,omitempty"` +} + +func (x *MountOption) Reset() { + *x = MountOption{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountOption) ProtoMessage() {} + +func (x *MountOption) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_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 MountOption.ProtoReflect.Descriptor instead. +func (*MountOption) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{15} +} + +func (x *MountOption) GetExport() string { + if x != nil { + return x.Export + } + return "" +} + +func (x *MountOption) GetExportFull() string { + if x != nil { + return x.ExportFull + } + return "" +} + +func (x *MountOption) GetProtocol() Protocols { + if x != nil { + return x.Protocol + } + return Protocols_PROTOCOLS_UNSPECIFIED +} + +func (x *MountOption) GetInstructions() string { + if x != nil { + return x.Instructions + } + return "" +} + +// The RestoreParameters if volume is created from a snapshot or backup. +type RestoreParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The source that the volume is created from. + // + // Types that are assignable to Source: + // *RestoreParameters_SourceSnapshot + Source isRestoreParameters_Source `protobuf_oneof:"source"` +} + +func (x *RestoreParameters) Reset() { + *x = RestoreParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestoreParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestoreParameters) ProtoMessage() {} + +func (x *RestoreParameters) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_netapp_v1_volume_proto_msgTypes[16] + 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 RestoreParameters.ProtoReflect.Descriptor instead. +func (*RestoreParameters) Descriptor() ([]byte, []int) { + return file_google_cloud_netapp_v1_volume_proto_rawDescGZIP(), []int{16} +} + +func (m *RestoreParameters) GetSource() isRestoreParameters_Source { + if m != nil { + return m.Source + } + return nil +} + +func (x *RestoreParameters) GetSourceSnapshot() string { + if x, ok := x.GetSource().(*RestoreParameters_SourceSnapshot); ok { + return x.SourceSnapshot + } + return "" +} + +type isRestoreParameters_Source interface { + isRestoreParameters_Source() +} + +type RestoreParameters_SourceSnapshot struct { + // Full name of the snapshot resource. + // Format: + // projects/{project}/locations/{location}/volumes/{volume}/snapshots/{snapshot} + SourceSnapshot string `protobuf:"bytes,1,opt,name=source_snapshot,json=sourceSnapshot,proto3,oneof"` +} + +func (*RestoreParameters_SourceSnapshot) isRestoreParameters_Source() {} + +var File_google_cloud_netapp_v1_volume_proto protoreflect.FileDescriptor + +var file_google_cloud_netapp_v1_volume_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xc1, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, + 0x12, 0x1c, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x99, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, + 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x07, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x4c, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xb2, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x12, + 0x1c, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x3b, + 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x13, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x22, 0x75, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, + 0x1c, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x22, 0x85, 0x10, 0x0a, 0x06, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, + 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, + 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x09, 0x70, 0x73, 0x61, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x70, 0x73, 0x61, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x4c, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x40, + 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x26, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x69, 0x62, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x63, 0x61, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x47, 0x69, 0x62, 0x12, 0x4e, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x44, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x4b, + 0x0a, 0x0c, 0x73, 0x6d, 0x62, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x4d, + 0x42, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, + 0x73, 0x6d, 0x62, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x6e, + 0x69, 0x78, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x75, 0x6e, 0x69, 0x78, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x73, 0x6e, 0x61, + 0x70, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x64, 0x5f, 0x67, 0x69, 0x62, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x64, 0x47, 0x69, 0x62, 0x12, 0x51, 0x0a, 0x0e, + 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, + 0x2e, 0x0a, 0x10, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, + 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x26, 0x0a, 0x0c, 0x6c, 0x64, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6c, 0x64, 0x61, 0x70, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x5d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x72, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x46, 0x0a, 0x0a, 0x6b, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x6e, 0x65, + 0x74, 0x61, 0x70, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x6b, + 0x6d, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, + 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x68, 0x61, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x7b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, + 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, + 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x44, + 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x10, 0x07, 0x3a, 0x5b, 0xea, 0x41, 0x58, 0x0a, 0x1c, 0x6e, 0x65, 0x74, 0x61, 0x70, + 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x38, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x7d, 0x22, 0x59, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x12, 0x49, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x75, 0x6c, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xae, 0x06, 0x0a, + 0x16, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x0d, 0x68, 0x61, 0x73, 0x52, 0x6f, 0x6f, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x0a, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x6e, 0x66, 0x73, 0x76, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x6e, + 0x66, 0x73, 0x76, 0x33, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x66, 0x73, 0x76, 0x34, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x6e, 0x66, 0x73, 0x76, 0x34, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x05, 0x52, 0x11, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x35, 0x52, 0x65, 0x61, + 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6b, 0x65, 0x72, 0x62, + 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x12, 0x6b, 0x65, 0x72, 0x62, 0x65, + 0x72, 0x6f, 0x73, 0x35, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x36, 0x0a, 0x15, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x69, 0x5f, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x07, 0x52, 0x12, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x35, 0x69, 0x52, 0x65, 0x61, + 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x6b, 0x65, 0x72, 0x62, + 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x69, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x13, 0x6b, 0x65, 0x72, 0x62, + 0x65, 0x72, 0x6f, 0x73, 0x35, 0x69, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, + 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x09, 0x52, 0x12, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x35, 0x70, 0x52, + 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x6b, 0x65, + 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x13, 0x6b, 0x65, + 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x35, 0x70, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x61, 0x73, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x6e, 0x66, 0x73, 0x76, 0x33, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6e, 0x66, 0x73, 0x76, 0x34, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x5f, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6b, 0x65, + 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, + 0x5f, 0x35, 0x69, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x69, 0x5f, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6b, 0x65, 0x72, + 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x35, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6b, 0x65, 0x72, 0x62, 0x65, 0x72, 0x6f, 0x73, 0x5f, + 0x35, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x22, 0xe3, 0x03, + 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x54, 0x0a, 0x0f, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x48, 0x01, 0x52, 0x0e, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0e, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x48, 0x02, 0x52, 0x0d, 0x64, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x77, 0x65, 0x65, 0x6b, + 0x6c, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x6c, + 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x48, 0x03, 0x52, 0x0e, 0x77, 0x65, 0x65, + 0x6b, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, + 0x0a, 0x10, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x48, 0x04, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x61, 0x69, 0x6c, + 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, + 0x65, 0x65, 0x6b, 0x6c, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x22, 0x7f, 0x0a, 0x0e, 0x48, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, + 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x4b, + 0x65, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x69, + 0x6e, 0x75, 0x74, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x54, 0x6f, + 0x4b, 0x65, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x01, 0x48, 0x02, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, + 0x65, 0x65, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x22, 0xc0, 0x01, 0x0a, 0x0e, 0x57, 0x65, 0x65, 0x6b, + 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x73, 0x54, 0x6f, 0x4b, 0x65, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x06, 0x6d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x03, 0x64, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x6f, + 0x75, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x61, 0x79, 0x22, 0xdd, 0x01, 0x0a, 0x0f, 0x4d, + 0x6f, 0x6e, 0x74, 0x68, 0x6c, 0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2f, + 0x0a, 0x11, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x6b, + 0x65, 0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x4b, 0x65, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x01, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x68, 0x6f, 0x75, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x04, 0x68, 0x6f, + 0x75, 0x72, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x6f, 0x66, + 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, + 0x64, 0x61, 0x79, 0x73, 0x4f, 0x66, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x6b, 0x65, 0x65, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x79, + 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0xa9, 0x01, 0x0a, 0x0b, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x75, 0x6c, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, + 0x75, 0x6c, 0x6c, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x0f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x2a, 0x45, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x12, 0x19, 0x0a, + 0x15, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x46, 0x53, 0x56, + 0x33, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x46, 0x53, 0x56, 0x34, 0x10, 0x02, 0x12, 0x07, + 0x0a, 0x03, 0x53, 0x4d, 0x42, 0x10, 0x03, 0x2a, 0x57, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, + 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, + 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, + 0x2a, 0xe8, 0x01, 0x0a, 0x0b, 0x53, 0x4d, 0x42, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x4d, 0x42, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x53, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, + 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, + 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x4e, 0x5f, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x41, + 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x4c, 0x4f, 0x43, 0x4b, 0x53, + 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, + 0x48, 0x4f, 0x54, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x50, 0x52, + 0x45, 0x56, 0x49, 0x4f, 0x55, 0x53, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x53, 0x10, + 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x42, 0x41, 0x53, 0x45, + 0x44, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, + 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x4f, 0x55, 0x53, 0x4c, 0x59, 0x5f, + 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x09, 0x2a, 0x43, 0x0a, 0x0d, 0x53, + 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x1a, + 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x59, 0x4c, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x4e, 0x54, 0x46, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x4e, 0x49, 0x58, 0x10, 0x02, + 0x42, 0xad, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x42, + 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x2f, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x61, 0x70, 0x70, + 0x70, 0x62, 0xaa, 0x02, 0x16, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x41, 0x70, + 0x70, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_netapp_v1_volume_proto_rawDescOnce sync.Once + file_google_cloud_netapp_v1_volume_proto_rawDescData = file_google_cloud_netapp_v1_volume_proto_rawDesc +) + +func file_google_cloud_netapp_v1_volume_proto_rawDescGZIP() []byte { + file_google_cloud_netapp_v1_volume_proto_rawDescOnce.Do(func() { + file_google_cloud_netapp_v1_volume_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_netapp_v1_volume_proto_rawDescData) + }) + return file_google_cloud_netapp_v1_volume_proto_rawDescData +} + +var file_google_cloud_netapp_v1_volume_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_google_cloud_netapp_v1_volume_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_google_cloud_netapp_v1_volume_proto_goTypes = []interface{}{ + (Protocols)(0), // 0: google.cloud.netapp.v1.Protocols + (AccessType)(0), // 1: google.cloud.netapp.v1.AccessType + (SMBSettings)(0), // 2: google.cloud.netapp.v1.SMBSettings + (SecurityStyle)(0), // 3: google.cloud.netapp.v1.SecurityStyle + (Volume_State)(0), // 4: google.cloud.netapp.v1.Volume.State + (*ListVolumesRequest)(nil), // 5: google.cloud.netapp.v1.ListVolumesRequest + (*ListVolumesResponse)(nil), // 6: google.cloud.netapp.v1.ListVolumesResponse + (*GetVolumeRequest)(nil), // 7: google.cloud.netapp.v1.GetVolumeRequest + (*CreateVolumeRequest)(nil), // 8: google.cloud.netapp.v1.CreateVolumeRequest + (*UpdateVolumeRequest)(nil), // 9: google.cloud.netapp.v1.UpdateVolumeRequest + (*DeleteVolumeRequest)(nil), // 10: google.cloud.netapp.v1.DeleteVolumeRequest + (*RevertVolumeRequest)(nil), // 11: google.cloud.netapp.v1.RevertVolumeRequest + (*Volume)(nil), // 12: google.cloud.netapp.v1.Volume + (*ExportPolicy)(nil), // 13: google.cloud.netapp.v1.ExportPolicy + (*SimpleExportPolicyRule)(nil), // 14: google.cloud.netapp.v1.SimpleExportPolicyRule + (*SnapshotPolicy)(nil), // 15: google.cloud.netapp.v1.SnapshotPolicy + (*HourlySchedule)(nil), // 16: google.cloud.netapp.v1.HourlySchedule + (*DailySchedule)(nil), // 17: google.cloud.netapp.v1.DailySchedule + (*WeeklySchedule)(nil), // 18: google.cloud.netapp.v1.WeeklySchedule + (*MonthlySchedule)(nil), // 19: google.cloud.netapp.v1.MonthlySchedule + (*MountOption)(nil), // 20: google.cloud.netapp.v1.MountOption + (*RestoreParameters)(nil), // 21: google.cloud.netapp.v1.RestoreParameters + nil, // 22: google.cloud.netapp.v1.Volume.LabelsEntry + (*fieldmaskpb.FieldMask)(nil), // 23: google.protobuf.FieldMask + (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp + (ServiceLevel)(0), // 25: google.cloud.netapp.v1.ServiceLevel + (EncryptionType)(0), // 26: google.cloud.netapp.v1.EncryptionType +} +var file_google_cloud_netapp_v1_volume_proto_depIdxs = []int32{ + 12, // 0: google.cloud.netapp.v1.ListVolumesResponse.volumes:type_name -> google.cloud.netapp.v1.Volume + 12, // 1: google.cloud.netapp.v1.CreateVolumeRequest.volume:type_name -> google.cloud.netapp.v1.Volume + 23, // 2: google.cloud.netapp.v1.UpdateVolumeRequest.update_mask:type_name -> google.protobuf.FieldMask + 12, // 3: google.cloud.netapp.v1.UpdateVolumeRequest.volume:type_name -> google.cloud.netapp.v1.Volume + 4, // 4: google.cloud.netapp.v1.Volume.state:type_name -> google.cloud.netapp.v1.Volume.State + 24, // 5: google.cloud.netapp.v1.Volume.create_time:type_name -> google.protobuf.Timestamp + 25, // 6: google.cloud.netapp.v1.Volume.service_level:type_name -> google.cloud.netapp.v1.ServiceLevel + 13, // 7: google.cloud.netapp.v1.Volume.export_policy:type_name -> google.cloud.netapp.v1.ExportPolicy + 0, // 8: google.cloud.netapp.v1.Volume.protocols:type_name -> google.cloud.netapp.v1.Protocols + 2, // 9: google.cloud.netapp.v1.Volume.smb_settings:type_name -> google.cloud.netapp.v1.SMBSettings + 20, // 10: google.cloud.netapp.v1.Volume.mount_options:type_name -> google.cloud.netapp.v1.MountOption + 22, // 11: google.cloud.netapp.v1.Volume.labels:type_name -> google.cloud.netapp.v1.Volume.LabelsEntry + 15, // 12: google.cloud.netapp.v1.Volume.snapshot_policy:type_name -> google.cloud.netapp.v1.SnapshotPolicy + 3, // 13: google.cloud.netapp.v1.Volume.security_style:type_name -> google.cloud.netapp.v1.SecurityStyle + 21, // 14: google.cloud.netapp.v1.Volume.restore_parameters:type_name -> google.cloud.netapp.v1.RestoreParameters + 26, // 15: google.cloud.netapp.v1.Volume.encryption_type:type_name -> google.cloud.netapp.v1.EncryptionType + 14, // 16: google.cloud.netapp.v1.ExportPolicy.rules:type_name -> google.cloud.netapp.v1.SimpleExportPolicyRule + 1, // 17: google.cloud.netapp.v1.SimpleExportPolicyRule.access_type:type_name -> google.cloud.netapp.v1.AccessType + 16, // 18: google.cloud.netapp.v1.SnapshotPolicy.hourly_schedule:type_name -> google.cloud.netapp.v1.HourlySchedule + 17, // 19: google.cloud.netapp.v1.SnapshotPolicy.daily_schedule:type_name -> google.cloud.netapp.v1.DailySchedule + 18, // 20: google.cloud.netapp.v1.SnapshotPolicy.weekly_schedule:type_name -> google.cloud.netapp.v1.WeeklySchedule + 19, // 21: google.cloud.netapp.v1.SnapshotPolicy.monthly_schedule:type_name -> google.cloud.netapp.v1.MonthlySchedule + 0, // 22: google.cloud.netapp.v1.MountOption.protocol:type_name -> google.cloud.netapp.v1.Protocols + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name +} + +func init() { file_google_cloud_netapp_v1_volume_proto_init() } +func file_google_cloud_netapp_v1_volume_proto_init() { + if File_google_cloud_netapp_v1_volume_proto != nil { + return + } + file_google_cloud_netapp_v1_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_netapp_v1_volume_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListVolumesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListVolumesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RevertVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Volume); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExportPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SimpleExportPolicyRule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SnapshotPolicy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HourlySchedule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DailySchedule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeeklySchedule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MonthlySchedule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountOption); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestoreParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_netapp_v1_volume_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_volume_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_volume_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_volume_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_volume_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_volume_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_google_cloud_netapp_v1_volume_proto_msgTypes[16].OneofWrappers = []interface{}{ + (*RestoreParameters_SourceSnapshot)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_netapp_v1_volume_proto_rawDesc, + NumEnums: 5, + NumMessages: 18, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_netapp_v1_volume_proto_goTypes, + DependencyIndexes: file_google_cloud_netapp_v1_volume_proto_depIdxs, + EnumInfos: file_google_cloud_netapp_v1_volume_proto_enumTypes, + MessageInfos: file_google_cloud_netapp_v1_volume_proto_msgTypes, + }.Build() + File_google_cloud_netapp_v1_volume_proto = out.File + file_google_cloud_netapp_v1_volume_proto_rawDesc = nil + file_google_cloud_netapp_v1_volume_proto_goTypes = nil + file_google_cloud_netapp_v1_volume_proto_depIdxs = nil +} diff --git a/netapp/apiv1/version.go b/netapp/apiv1/version.go new file mode 100644 index 00000000000..aca23e00e01 --- /dev/null +++ b/netapp/apiv1/version.go @@ -0,0 +1,23 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by gapicgen. DO NOT EDIT. + +package netapp + +import "cloud.google.com/go/netapp/internal" + +func init() { + versionClient = internal.Version +} diff --git a/netapp/go.mod b/netapp/go.mod new file mode 100644 index 00000000000..e9012b12de6 --- /dev/null +++ b/netapp/go.mod @@ -0,0 +1,33 @@ +module cloud.google.com/go/netapp + +go 1.20 + +require ( + cloud.google.com/go/longrunning v0.5.1 + github.com/googleapis/gax-go/v2 v2.12.0 + google.golang.org/api v0.134.0 + google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e + google.golang.org/grpc v1.57.0 + google.golang.org/protobuf v1.31.0 +) + +require ( + cloud.google.com/go v0.110.4 // indirect + cloud.google.com/go/compute v1.20.1 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/go-cmp v0.5.9 // indirect + github.com/google/s2a-go v0.1.4 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect + go.opencensus.io v0.24.0 // indirect + golang.org/x/crypto v0.11.0 // indirect + golang.org/x/net v0.12.0 // indirect + golang.org/x/oauth2 v0.10.0 // indirect + golang.org/x/sync v0.3.0 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771 // indirect +) diff --git a/netapp/go.sum b/netapp/go.sum new file mode 100644 index 00000000000..ec219f6be95 --- /dev/null +++ b/netapp/go.sum @@ -0,0 +1,198 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/longrunning v0.5.1 h1:Fr7TXftcqTudoyRJa113hyaqlGdiBQkp0Gq7tErFDWI= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.2.5 h1:UR4rDjcgpgEnqpIEvkiqTYKBCKLNmlge2eVjoZfySzM= +github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.134.0 h1:ktL4Goua+UBgoP1eL1/60LwZJqa1sIzkLmvoR3hR6Gw= +google.golang.org/api v0.134.0/go.mod h1:sjRL3UnjTx5UqNQS9EWr9N8p7xbHpy1k0XGRLCf3Spk= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e h1:z3vDksarJxsAKM5dmEGv0GHwE2hKJ096wZra71Vs4sw= +google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771 h1:Z8qdAF9GFsmcUuWQ5KVYIpP3PCKydn/YKORnghIalu4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= +google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/netapp/internal/version.go b/netapp/internal/version.go new file mode 100644 index 00000000000..2734cec844c --- /dev/null +++ b/netapp/internal/version.go @@ -0,0 +1,20 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by gapicgen. DO NOT EDIT. + +package internal + +// Version is the current tagged release of the library. +const Version = "0.0.0" diff --git a/release-please-config-yoshi-submodules.json b/release-please-config-yoshi-submodules.json index 201d6bda812..85a0ffcf59f 100644 --- a/release-please-config-yoshi-submodules.json +++ b/release-please-config-yoshi-submodules.json @@ -228,6 +228,9 @@ "monitoring": { "component": "monitoring" }, + "netapp": { + "component": "netapp" + }, "networkconnectivity": { "component": "networkconnectivity" }, diff --git a/translate/apiv3/translatepb/translation_service.pb.go b/translate/apiv3/translatepb/translation_service.pb.go index caef9cd6219..0f27436f35f 100755 --- a/translate/apiv3/translatepb/translation_service.pb.go +++ b/translate/apiv3/translatepb/translation_service.pb.go @@ -1471,10 +1471,10 @@ type OutputConfig_GcsDestination struct { // If input file extension is a txt or html, the translation is directly // written to the output file. If glossary is requested, a separate // glossary_translations_file has format of - // gs://translation_test/a_b_c_'trg'_glossary_translations.[extension] + // `gs://translation_test/a_b_c_'trg'_glossary_translations.[extension]` // // The format of errors file (for target language code 'trg') is: - // gs://translation_test/a_b_c_'trg'_errors.[extension] + // `gs://translation_test/a_b_c_'trg'_errors.[extension]` // // If the input file extension is tsv, errors_file contains the following: // Column 1: ID of the request provided in the input, if it's not @@ -1486,7 +1486,7 @@ type OutputConfig_GcsDestination struct { // // If the input file extension is txt or html, glossary_error_file will be // generated that contains error details. glossary_error_file has format of - // gs://translation_test/a_b_c_'trg'_glossary_errors.[extension] + // `gs://translation_test/a_b_c_'trg'_glossary_errors.[extension]` GcsDestination *GcsDestination `protobuf:"bytes,1,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"` }