diff --git a/buf.lock b/buf.lock index caa6d65e..adae8c1a 100644 --- a/buf.lock +++ b/buf.lock @@ -5,5 +5,5 @@ deps: commit: 80ab13bee0bf4272b6161a72bf7034e0 digest: b5:1aa6a965be5d02d64e1d81954fa2e78ef9d1e33a0c30f92bc2626039006a94deb3a5b05f14ed8893f5c3ffce444ac008f7e968188ad225c4c29c813aa5f2daa1 - name: buf.build/googleapis/googleapis - commit: 536964a08a534d51b8f30f2d6751f1f9 - digest: b5:3e05d27e797b00c345fadd3c15cf0e16c4cc693036a55059721e66d6ce22a96264a4897658c9243bb0874fa9ca96e437589eb512189d2754604a626c632f6030 + commit: c17df5b2beca46928cc87d5656bd5343 + digest: b5:648a01e0170d4512dea7d564016165decd1ed6e34bef79fe54753e51ad7e27545709ad9157d7551270147d551155c595a2fb0bf5bb33b1c83040ddbce915c604 diff --git a/gen/go/qdrant/cloud/hybrid/v1/hybrid_cloud.pb.go b/gen/go/qdrant/cloud/hybrid/v1/hybrid_cloud.pb.go index 23f9726a..f3affb17 100644 --- a/gen/go/qdrant/cloud/hybrid/v1/hybrid_cloud.pb.go +++ b/gen/go/qdrant/cloud/hybrid/v1/hybrid_cloud.pb.go @@ -142,6 +142,63 @@ func (QdrantClusterCreationStatus) EnumDescriptor() ([]byte, []int) { return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{1} } +// StorageConfigurationReadiness expresses the storage configuration state of the hybrid cloud environment. +type StorageConfigurationReadiness int32 + +const ( + // Default/unknown, safe fallback + StorageConfigurationReadiness_STORAGE_CONFIGURATION_READINESS_UNSPECIFIED StorageConfigurationReadiness = 0 + // Storage config explicitly set + StorageConfigurationReadiness_STORAGE_CONFIGURATION_READINESS_READY StorageConfigurationReadiness = 1 + // Storage config absent + StorageConfigurationReadiness_STORAGE_CONFIGURATION_READINESS_NOT_READY StorageConfigurationReadiness = 2 + // Config present but invalid + StorageConfigurationReadiness_STORAGE_CONFIGURATION_READINESS_INVALID StorageConfigurationReadiness = 3 +) + +// Enum value maps for StorageConfigurationReadiness. +var ( + StorageConfigurationReadiness_name = map[int32]string{ + 0: "STORAGE_CONFIGURATION_READINESS_UNSPECIFIED", + 1: "STORAGE_CONFIGURATION_READINESS_READY", + 2: "STORAGE_CONFIGURATION_READINESS_NOT_READY", + 3: "STORAGE_CONFIGURATION_READINESS_INVALID", + } + StorageConfigurationReadiness_value = map[string]int32{ + "STORAGE_CONFIGURATION_READINESS_UNSPECIFIED": 0, + "STORAGE_CONFIGURATION_READINESS_READY": 1, + "STORAGE_CONFIGURATION_READINESS_NOT_READY": 2, + "STORAGE_CONFIGURATION_READINESS_INVALID": 3, + } +) + +func (x StorageConfigurationReadiness) Enum() *StorageConfigurationReadiness { + p := new(StorageConfigurationReadiness) + *p = x + return p +} + +func (x StorageConfigurationReadiness) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StorageConfigurationReadiness) Descriptor() protoreflect.EnumDescriptor { + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[2].Descriptor() +} + +func (StorageConfigurationReadiness) Type() protoreflect.EnumType { + return &file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[2] +} + +func (x StorageConfigurationReadiness) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StorageConfigurationReadiness.Descriptor instead. +func (StorageConfigurationReadiness) EnumDescriptor() ([]byte, []int) { + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{2} +} + // Status phase of hybrid cloud environment type HybridCloudEnvironmentStatusPhase int32 @@ -183,11 +240,11 @@ func (x HybridCloudEnvironmentStatusPhase) String() string { } func (HybridCloudEnvironmentStatusPhase) Descriptor() protoreflect.EnumDescriptor { - return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[2].Descriptor() + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[3].Descriptor() } func (HybridCloudEnvironmentStatusPhase) Type() protoreflect.EnumType { - return &file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[2] + return &file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[3] } func (x HybridCloudEnvironmentStatusPhase) Number() protoreflect.EnumNumber { @@ -196,7 +253,7 @@ func (x HybridCloudEnvironmentStatusPhase) Number() protoreflect.EnumNumber { // Deprecated: Use HybridCloudEnvironmentStatusPhase.Descriptor instead. func (HybridCloudEnvironmentStatusPhase) EnumDescriptor() ([]byte, []int) { - return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{2} + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{3} } // Component status phase @@ -240,11 +297,11 @@ func (x HybridCloudEnvironmentComponentStatusPhase) String() string { } func (HybridCloudEnvironmentComponentStatusPhase) Descriptor() protoreflect.EnumDescriptor { - return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[3].Descriptor() + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[4].Descriptor() } func (HybridCloudEnvironmentComponentStatusPhase) Type() protoreflect.EnumType { - return &file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[3] + return &file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[4] } func (x HybridCloudEnvironmentComponentStatusPhase) Number() protoreflect.EnumNumber { @@ -253,7 +310,7 @@ func (x HybridCloudEnvironmentComponentStatusPhase) Number() protoreflect.EnumNu // Deprecated: Use HybridCloudEnvironmentComponentStatusPhase.Descriptor instead. func (HybridCloudEnvironmentComponentStatusPhase) EnumDescriptor() ([]byte, []int) { - return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{3} + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{4} } // Kubernetes distributions @@ -337,11 +394,11 @@ func (x KubernetesDistribution) String() string { } func (KubernetesDistribution) Descriptor() protoreflect.EnumDescriptor { - return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[4].Descriptor() + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[5].Descriptor() } func (KubernetesDistribution) Type() protoreflect.EnumType { - return &file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[4] + return &file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes[5] } func (x KubernetesDistribution) Number() protoreflect.EnumNumber { @@ -350,7 +407,7 @@ func (x KubernetesDistribution) Number() protoreflect.EnumNumber { // Deprecated: Use KubernetesDistribution.Descriptor instead. func (KubernetesDistribution) EnumDescriptor() ([]byte, []int) { - return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{4} + return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP(), []int{5} } // GenerateBootstrapCommandsRequest is the request for GenerateBootstrapCommands function @@ -1335,8 +1392,10 @@ type HybridCloudEnvironmentStatus struct { VolumeSnapshotClasses []*HybridCloudEnvironmentVolumeSnapshotClass `protobuf:"bytes,13,rep,name=volume_snapshot_classes,json=volumeSnapshotClasses,proto3" json:"volume_snapshot_classes,omitempty"` // Volume attributes classes available in the hybrid cloud environment VolumeAttributesClasses []*HybridCloudEnvironmentVolumeAttributesClass `protobuf:"bytes,14,rep,name=volume_attributes_classes,json=volumeAttributesClasses,proto3" json:"volume_attributes_classes,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Expresses the storage configuration state of the hybrid cloud environment. + StorageConfigurationReadiness StorageConfigurationReadiness `protobuf:"varint,15,opt,name=storage_configuration_readiness,json=storageConfigurationReadiness,proto3,enum=qdrant.cloud.hybrid.v1.StorageConfigurationReadiness" json:"storage_configuration_readiness,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HybridCloudEnvironmentStatus) Reset() { @@ -1453,6 +1512,13 @@ func (x *HybridCloudEnvironmentStatus) GetVolumeAttributesClasses() []*HybridClo return nil } +func (x *HybridCloudEnvironmentStatus) GetStorageConfigurationReadiness() StorageConfigurationReadiness { + if x != nil { + return x.StorageConfigurationReadiness + } + return StorageConfigurationReadiness_STORAGE_CONFIGURATION_READINESS_UNSPECIFIED +} + // Capabilities of hybrid cloud environment type HybridCloudEnvironmentCapabilities struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -2069,7 +2135,8 @@ const file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDesc = "" + "\x1e_volume_snapshot_storage_classB\f\n" + "\n" + "_log_levelB\x1d\n" + - "\x1b_advanced_operator_settings\"\x94\t\n" + + "\x1b_advanced_operator_settings\"\x93\n" + + "\n" + "\x1cHybridCloudEnvironmentStatus\x12L\n" + "\x10last_modified_at\x18\x01 \x01(\v2\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0elastModifiedAt\x12Y\n" + "\x05phase\x18\x03 \x01(\x0e29.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhaseB\b\xbaH\x05\x82\x01\x02\x10\x01R\x05phase\x126\n" + @@ -2084,7 +2151,8 @@ const file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDesc = "" + "\amessage\x18\v \x01(\tH\x01R\amessage\x88\x01\x01\x12c\n" + "\x0fstorage_classes\x18\f \x03(\v2:.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClassR\x0estorageClasses\x12y\n" + "\x17volume_snapshot_classes\x18\r \x03(\v2A.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeSnapshotClassR\x15volumeSnapshotClasses\x12\x7f\n" + - "\x19volume_attributes_classes\x18\x0e \x03(\v2C.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClassR\x17volumeAttributesClassesB\x1a\n" + + "\x19volume_attributes_classes\x18\x0e \x03(\v2C.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClassR\x17volumeAttributesClasses\x12}\n" + + "\x1fstorage_configuration_readiness\x18\x0f \x01(\x0e25.qdrant.cloud.hybrid.v1.StorageConfigurationReadinessR\x1dstorageConfigurationReadinessB\x1a\n" + "\x18_kubernetes_distributionB\n" + "\n" + "\b_message\"x\n" + @@ -2145,7 +2213,12 @@ const file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDesc = "" + "\x1bQdrantClusterCreationStatus\x12.\n" + "*QDRANT_CLUSTER_CREATION_STATUS_UNSPECIFIED\x10\x00\x12(\n" + "$QDRANT_CLUSTER_CREATION_STATUS_READY\x10\x01\x12,\n" + - "(QDRANT_CLUSTER_CREATION_STATUS_NOT_READY\x10\x02*\xfa\x01\n" + + "(QDRANT_CLUSTER_CREATION_STATUS_NOT_READY\x10\x02*\xd7\x01\n" + + "\x1dStorageConfigurationReadiness\x12/\n" + + "+STORAGE_CONFIGURATION_READINESS_UNSPECIFIED\x10\x00\x12)\n" + + "%STORAGE_CONFIGURATION_READINESS_READY\x10\x01\x12-\n" + + ")STORAGE_CONFIGURATION_READINESS_NOT_READY\x10\x02\x12+\n" + + "'STORAGE_CONFIGURATION_READINESS_INVALID\x10\x03*\xfa\x01\n" + "!HybridCloudEnvironmentStatusPhase\x125\n" + "1HYBRID_CLOUD_ENVIRONMENT_STATUS_PHASE_UNSPECIFIED\x10\x00\x12/\n" + "+HYBRID_CLOUD_ENVIRONMENT_STATUS_PHASE_READY\x10\x01\x123\n" + @@ -2198,93 +2271,95 @@ func file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescGZIP() []byte { return file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDescData } -var file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_goTypes = []any{ (HybridCloudEnvironmentConfigurationLogLevel)(0), // 0: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfigurationLogLevel (QdrantClusterCreationStatus)(0), // 1: qdrant.cloud.hybrid.v1.QdrantClusterCreationStatus - (HybridCloudEnvironmentStatusPhase)(0), // 2: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhase - (HybridCloudEnvironmentComponentStatusPhase)(0), // 3: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusPhase - (KubernetesDistribution)(0), // 4: qdrant.cloud.hybrid.v1.KubernetesDistribution - (*GenerateBootstrapCommandsRequest)(nil), // 5: qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsRequest - (*GenerateBootstrapCommandsResponse)(nil), // 6: qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsResponse - (*DeleteHybridCloudEnvironmentRequest)(nil), // 7: qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentRequest - (*DeleteHybridCloudEnvironmentResponse)(nil), // 8: qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentResponse - (*UpdateHybridCloudEnvironmentRequest)(nil), // 9: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest - (*UpdateHybridCloudEnvironmentResponse)(nil), // 10: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse - (*CreateHybridCloudEnvironmentRequest)(nil), // 11: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest - (*CreateHybridCloudEnvironmentResponse)(nil), // 12: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse - (*GetHybridCloudEnvironmentRequest)(nil), // 13: qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentRequest - (*GetHybridCloudEnvironmentResponse)(nil), // 14: qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse - (*ListHybridCloudEnvironmentsRequest)(nil), // 15: qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsRequest - (*ListHybridCloudEnvironmentsResponse)(nil), // 16: qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsResponse - (*HybridCloudEnvironment)(nil), // 17: qdrant.cloud.hybrid.v1.HybridCloudEnvironment - (*HybridCloudEnvironmentConfiguration)(nil), // 18: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration - (*HybridCloudEnvironmentStatus)(nil), // 19: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus - (*HybridCloudEnvironmentCapabilities)(nil), // 20: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentCapabilities - (*HybridCloudEnvironmentComponentStatus)(nil), // 21: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatus - (*HybridCloudEnvironmentStorageClass)(nil), // 22: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClass - (*HybridCloudEnvironmentVolumeSnapshotClass)(nil), // 23: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeSnapshotClass - (*HybridCloudEnvironmentVolumeAttributesClass)(nil), // 24: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass - (*HybridCloudEnvironmentNodeInfo)(nil), // 25: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeInfo - (*HybridCloudEnvironmentNodeResourceInfo)(nil), // 26: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfo - (*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp - (*v1.NetworkPolicyIngressRule)(nil), // 28: qdrant.cloud.common.v1.NetworkPolicyIngressRule - (*v1.NetworkPolicyEgressRule)(nil), // 29: qdrant.cloud.common.v1.NetworkPolicyEgressRule - (*v11.Toleration)(nil), // 30: qdrant.cloud.cluster.v1.Toleration - (*v1.KeyValue)(nil), // 31: qdrant.cloud.common.v1.KeyValue - (*structpb.Struct)(nil), // 32: google.protobuf.Struct + (StorageConfigurationReadiness)(0), // 2: qdrant.cloud.hybrid.v1.StorageConfigurationReadiness + (HybridCloudEnvironmentStatusPhase)(0), // 3: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhase + (HybridCloudEnvironmentComponentStatusPhase)(0), // 4: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusPhase + (KubernetesDistribution)(0), // 5: qdrant.cloud.hybrid.v1.KubernetesDistribution + (*GenerateBootstrapCommandsRequest)(nil), // 6: qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsRequest + (*GenerateBootstrapCommandsResponse)(nil), // 7: qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsResponse + (*DeleteHybridCloudEnvironmentRequest)(nil), // 8: qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentRequest + (*DeleteHybridCloudEnvironmentResponse)(nil), // 9: qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentResponse + (*UpdateHybridCloudEnvironmentRequest)(nil), // 10: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest + (*UpdateHybridCloudEnvironmentResponse)(nil), // 11: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse + (*CreateHybridCloudEnvironmentRequest)(nil), // 12: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest + (*CreateHybridCloudEnvironmentResponse)(nil), // 13: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse + (*GetHybridCloudEnvironmentRequest)(nil), // 14: qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentRequest + (*GetHybridCloudEnvironmentResponse)(nil), // 15: qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse + (*ListHybridCloudEnvironmentsRequest)(nil), // 16: qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsRequest + (*ListHybridCloudEnvironmentsResponse)(nil), // 17: qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsResponse + (*HybridCloudEnvironment)(nil), // 18: qdrant.cloud.hybrid.v1.HybridCloudEnvironment + (*HybridCloudEnvironmentConfiguration)(nil), // 19: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration + (*HybridCloudEnvironmentStatus)(nil), // 20: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus + (*HybridCloudEnvironmentCapabilities)(nil), // 21: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentCapabilities + (*HybridCloudEnvironmentComponentStatus)(nil), // 22: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatus + (*HybridCloudEnvironmentStorageClass)(nil), // 23: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClass + (*HybridCloudEnvironmentVolumeSnapshotClass)(nil), // 24: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeSnapshotClass + (*HybridCloudEnvironmentVolumeAttributesClass)(nil), // 25: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass + (*HybridCloudEnvironmentNodeInfo)(nil), // 26: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeInfo + (*HybridCloudEnvironmentNodeResourceInfo)(nil), // 27: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfo + (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp + (*v1.NetworkPolicyIngressRule)(nil), // 29: qdrant.cloud.common.v1.NetworkPolicyIngressRule + (*v1.NetworkPolicyEgressRule)(nil), // 30: qdrant.cloud.common.v1.NetworkPolicyEgressRule + (*v11.Toleration)(nil), // 31: qdrant.cloud.cluster.v1.Toleration + (*v1.KeyValue)(nil), // 32: qdrant.cloud.common.v1.KeyValue + (*structpb.Struct)(nil), // 33: google.protobuf.Struct } var file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_depIdxs = []int32{ - 17, // 0: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment - 17, // 1: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment - 17, // 2: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment - 17, // 3: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment - 17, // 4: qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment - 17, // 5: qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsResponse.items:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment - 27, // 6: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.created_at:type_name -> google.protobuf.Timestamp - 27, // 7: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.last_modified_at:type_name -> google.protobuf.Timestamp - 18, // 8: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.configuration:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration - 19, // 9: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.status:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus - 27, // 10: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.last_modified_at:type_name -> google.protobuf.Timestamp - 28, // 11: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.ingress:type_name -> qdrant.cloud.common.v1.NetworkPolicyIngressRule - 29, // 12: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.egress:type_name -> qdrant.cloud.common.v1.NetworkPolicyEgressRule + 18, // 0: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment + 18, // 1: qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment + 18, // 2: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment + 18, // 3: qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment + 18, // 4: qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse.hybrid_cloud_environment:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment + 18, // 5: qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsResponse.items:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironment + 28, // 6: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.created_at:type_name -> google.protobuf.Timestamp + 28, // 7: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.last_modified_at:type_name -> google.protobuf.Timestamp + 19, // 8: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.configuration:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration + 20, // 9: qdrant.cloud.hybrid.v1.HybridCloudEnvironment.status:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus + 28, // 10: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.last_modified_at:type_name -> google.protobuf.Timestamp + 29, // 11: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.ingress:type_name -> qdrant.cloud.common.v1.NetworkPolicyIngressRule + 30, // 12: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.egress:type_name -> qdrant.cloud.common.v1.NetworkPolicyEgressRule 0, // 13: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.log_level:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfigurationLogLevel - 30, // 14: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.tolerations:type_name -> qdrant.cloud.cluster.v1.Toleration - 31, // 15: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.node_selector:type_name -> qdrant.cloud.common.v1.KeyValue - 32, // 16: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.advanced_operator_settings:type_name -> google.protobuf.Struct - 31, // 17: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.control_plane_labels:type_name -> qdrant.cloud.common.v1.KeyValue - 27, // 18: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.last_modified_at:type_name -> google.protobuf.Timestamp - 2, // 19: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.phase:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhase - 4, // 20: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.kubernetes_distribution:type_name -> qdrant.cloud.hybrid.v1.KubernetesDistribution - 20, // 21: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.capabilities:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentCapabilities - 21, // 22: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.component_statuses:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatus + 31, // 14: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.tolerations:type_name -> qdrant.cloud.cluster.v1.Toleration + 32, // 15: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.node_selector:type_name -> qdrant.cloud.common.v1.KeyValue + 33, // 16: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.advanced_operator_settings:type_name -> google.protobuf.Struct + 32, // 17: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfiguration.control_plane_labels:type_name -> qdrant.cloud.common.v1.KeyValue + 28, // 18: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.last_modified_at:type_name -> google.protobuf.Timestamp + 3, // 19: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.phase:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhase + 5, // 20: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.kubernetes_distribution:type_name -> qdrant.cloud.hybrid.v1.KubernetesDistribution + 21, // 21: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.capabilities:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentCapabilities + 22, // 22: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.component_statuses:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatus 1, // 23: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.cluster_creation_readiness:type_name -> qdrant.cloud.hybrid.v1.QdrantClusterCreationStatus - 22, // 24: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.storage_classes:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClass - 23, // 25: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.volume_snapshot_classes:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeSnapshotClass - 24, // 26: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.volume_attributes_classes:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass - 3, // 27: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatus.phase:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusPhase - 31, // 28: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClass.parameters:type_name -> qdrant.cloud.common.v1.KeyValue - 31, // 29: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass.parameters:type_name -> qdrant.cloud.common.v1.KeyValue - 26, // 30: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeInfo.capacity:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfo - 26, // 31: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeInfo.allocatable:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfo - 15, // 32: qdrant.cloud.hybrid.v1.HybridCloudService.ListHybridCloudEnvironments:input_type -> qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsRequest - 13, // 33: qdrant.cloud.hybrid.v1.HybridCloudService.GetHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentRequest - 11, // 34: qdrant.cloud.hybrid.v1.HybridCloudService.CreateHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest - 9, // 35: qdrant.cloud.hybrid.v1.HybridCloudService.UpdateHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest - 7, // 36: qdrant.cloud.hybrid.v1.HybridCloudService.DeleteHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentRequest - 5, // 37: qdrant.cloud.hybrid.v1.HybridCloudService.GenerateBootstrapCommands:input_type -> qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsRequest - 16, // 38: qdrant.cloud.hybrid.v1.HybridCloudService.ListHybridCloudEnvironments:output_type -> qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsResponse - 14, // 39: qdrant.cloud.hybrid.v1.HybridCloudService.GetHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse - 12, // 40: qdrant.cloud.hybrid.v1.HybridCloudService.CreateHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse - 10, // 41: qdrant.cloud.hybrid.v1.HybridCloudService.UpdateHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse - 8, // 42: qdrant.cloud.hybrid.v1.HybridCloudService.DeleteHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentResponse - 6, // 43: qdrant.cloud.hybrid.v1.HybridCloudService.GenerateBootstrapCommands:output_type -> qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsResponse - 38, // [38:44] is the sub-list for method output_type - 32, // [32:38] is the sub-list for method input_type - 32, // [32:32] is the sub-list for extension type_name - 32, // [32:32] is the sub-list for extension extendee - 0, // [0:32] is the sub-list for field type_name + 23, // 24: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.storage_classes:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClass + 24, // 25: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.volume_snapshot_classes:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeSnapshotClass + 25, // 26: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.volume_attributes_classes:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass + 2, // 27: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatus.storage_configuration_readiness:type_name -> qdrant.cloud.hybrid.v1.StorageConfigurationReadiness + 4, // 28: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatus.phase:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusPhase + 32, // 29: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClass.parameters:type_name -> qdrant.cloud.common.v1.KeyValue + 32, // 30: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass.parameters:type_name -> qdrant.cloud.common.v1.KeyValue + 27, // 31: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeInfo.capacity:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfo + 27, // 32: qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeInfo.allocatable:type_name -> qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfo + 16, // 33: qdrant.cloud.hybrid.v1.HybridCloudService.ListHybridCloudEnvironments:input_type -> qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsRequest + 14, // 34: qdrant.cloud.hybrid.v1.HybridCloudService.GetHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentRequest + 12, // 35: qdrant.cloud.hybrid.v1.HybridCloudService.CreateHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest + 10, // 36: qdrant.cloud.hybrid.v1.HybridCloudService.UpdateHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest + 8, // 37: qdrant.cloud.hybrid.v1.HybridCloudService.DeleteHybridCloudEnvironment:input_type -> qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentRequest + 6, // 38: qdrant.cloud.hybrid.v1.HybridCloudService.GenerateBootstrapCommands:input_type -> qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsRequest + 17, // 39: qdrant.cloud.hybrid.v1.HybridCloudService.ListHybridCloudEnvironments:output_type -> qdrant.cloud.hybrid.v1.ListHybridCloudEnvironmentsResponse + 15, // 40: qdrant.cloud.hybrid.v1.HybridCloudService.GetHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse + 13, // 41: qdrant.cloud.hybrid.v1.HybridCloudService.CreateHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse + 11, // 42: qdrant.cloud.hybrid.v1.HybridCloudService.UpdateHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse + 9, // 43: qdrant.cloud.hybrid.v1.HybridCloudService.DeleteHybridCloudEnvironment:output_type -> qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentResponse + 7, // 44: qdrant.cloud.hybrid.v1.HybridCloudService.GenerateBootstrapCommands:output_type -> qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsResponse + 39, // [39:45] is the sub-list for method output_type + 33, // [33:39] is the sub-list for method input_type + 33, // [33:33] is the sub-list for extension type_name + 33, // [33:33] is the sub-list for extension extendee + 0, // [0:33] is the sub-list for field type_name } func init() { file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_init() } @@ -2302,7 +2377,7 @@ func file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDesc), len(file_qdrant_cloud_hybrid_v1_hybrid_cloud_proto_rawDesc)), - NumEnums: 5, + NumEnums: 6, NumMessages: 22, NumExtensions: 0, NumServices: 1, diff --git a/gen/go/qdrant/cloud/platform/v1/platform.pb.go b/gen/go/qdrant/cloud/platform/v1/platform.pb.go index afcc85c6..07d66ef0 100644 --- a/gen/go/qdrant/cloud/platform/v1/platform.pb.go +++ b/gen/go/qdrant/cloud/platform/v1/platform.pb.go @@ -24,6 +24,64 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// ClusterCreationBlockingReason surfaces the specific reason cluster creation should be blocked. +// It is informational and does not change the semantics of available. +type ClusterCreationBlockingReason int32 + +const ( + // No blocking reason / N/A (used for non-hybrid regions) + ClusterCreationBlockingReason_CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED ClusterCreationBlockingReason = 0 + // No blocker, creation allowed + ClusterCreationBlockingReason_CLUSTER_CREATION_BLOCKING_REASON_NONE ClusterCreationBlockingReason = 1 + // Operator/agent not yet ready + ClusterCreationBlockingReason_CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY ClusterCreationBlockingReason = 2 + // Storage config not set + ClusterCreationBlockingReason_CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY ClusterCreationBlockingReason = 3 +) + +// Enum value maps for ClusterCreationBlockingReason. +var ( + ClusterCreationBlockingReason_name = map[int32]string{ + 0: "CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED", + 1: "CLUSTER_CREATION_BLOCKING_REASON_NONE", + 2: "CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY", + 3: "CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY", + } + ClusterCreationBlockingReason_value = map[string]int32{ + "CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED": 0, + "CLUSTER_CREATION_BLOCKING_REASON_NONE": 1, + "CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY": 2, + "CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY": 3, + } +) + +func (x ClusterCreationBlockingReason) Enum() *ClusterCreationBlockingReason { + p := new(ClusterCreationBlockingReason) + *p = x + return p +} + +func (x ClusterCreationBlockingReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ClusterCreationBlockingReason) Descriptor() protoreflect.EnumDescriptor { + return file_qdrant_cloud_platform_v1_platform_proto_enumTypes[0].Descriptor() +} + +func (ClusterCreationBlockingReason) Type() protoreflect.EnumType { + return &file_qdrant_cloud_platform_v1_platform_proto_enumTypes[0] +} + +func (x ClusterCreationBlockingReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ClusterCreationBlockingReason.Descriptor instead. +func (ClusterCreationBlockingReason) EnumDescriptor() ([]byte, []int) { + return file_qdrant_cloud_platform_v1_platform_proto_rawDescGZIP(), []int{0} +} + // ListCloudProvidersRequest is the request for the ListCloudProviders function. type ListCloudProvidersRequest struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -711,9 +769,11 @@ type CloudProviderRegion struct { // Kubernetes namespace where the components for the environment are deployed (for hybrid cloud regions). Namespace *string `protobuf:"bytes,8,opt,name=namespace,proto3,oneof" json:"namespace,omitempty"` // Storage capabilities available in this region. - Capabilities *CloudProviderRegionCapabilities `protobuf:"bytes,9,opt,name=capabilities,proto3" json:"capabilities,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + Capabilities *CloudProviderRegionCapabilities `protobuf:"bytes,9,opt,name=capabilities,proto3" json:"capabilities,omitempty"` + // Surfaces the specific reason cluster creation should be blocked for this region. + ClusterCreationBlockingReason ClusterCreationBlockingReason `protobuf:"varint,10,opt,name=cluster_creation_blocking_reason,json=clusterCreationBlockingReason,proto3,enum=qdrant.cloud.platform.v1.ClusterCreationBlockingReason" json:"cluster_creation_blocking_reason,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CloudProviderRegion) Reset() { @@ -809,6 +869,13 @@ func (x *CloudProviderRegion) GetCapabilities() *CloudProviderRegionCapabilities return nil } +func (x *CloudProviderRegion) GetClusterCreationBlockingReason() ClusterCreationBlockingReason { + if x != nil { + return x.ClusterCreationBlockingReason + } + return ClusterCreationBlockingReason_CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED +} + // CloudProviderRegionCapabilities represents storage capabilities available in a cloud provider region. type CloudProviderRegionCapabilities struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -903,7 +970,7 @@ const file_qdrant_cloud_platform_v1_platform_proto_rawDesc = "" + "\x02id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x03R\x02id\x12\x1b\n" + "\x04name\x18\x02 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x04name\x12\x1b\n" + "\tfree_tier\x18\x03 \x01(\bR\bfreeTier\x12\x1c\n" + - "\tavailable\x18\x04 \x01(\bR\tavailable\"\x80\x04\n" + + "\tavailable\x18\x04 \x01(\bR\tavailable\"\x83\x05\n" + "\x13CloudProviderRegion\x12\x17\n" + "\x02id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x02id\x12\x1b\n" + "\x04name\x18\x02 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x04name\x12\x1b\n" + @@ -914,14 +981,21 @@ const file_qdrant_cloud_platform_v1_platform_proto_rawDesc = "" + "^[A-Z]{2}$\x98\x01\x02H\x00R\x0ecountryIsoCode\x88\x01\x01\x12D\n" + "\x17geographical_sub_region\x18\a \x01(\tB\a\xbaH\x04r\x02\x10\x01H\x01R\x15geographicalSubRegion\x88\x01\x01\x12*\n" + "\tnamespace\x18\b \x01(\tB\a\xbaH\x04r\x02\x10\x01H\x02R\tnamespace\x88\x01\x01\x12]\n" + - "\fcapabilities\x18\t \x01(\v29.qdrant.cloud.platform.v1.CloudProviderRegionCapabilitiesR\fcapabilitiesB\x13\n" + + "\fcapabilities\x18\t \x01(\v29.qdrant.cloud.platform.v1.CloudProviderRegionCapabilitiesR\fcapabilities\x12\x80\x01\n" + + " cluster_creation_blocking_reason\x18\n" + + " \x01(\x0e27.qdrant.cloud.platform.v1.ClusterCreationBlockingReasonR\x1dclusterCreationBlockingReasonB\x13\n" + "\x11_country_iso_codeB\x1a\n" + "\x18_geographical_sub_regionB\f\n" + "\n" + "_namespace\"u\n" + "\x1fCloudProviderRegionCapabilities\x12'\n" + "\x0fvolume_snapshot\x18\x01 \x01(\bR\x0evolumeSnapshot\x12)\n" + - "\x10volume_expansion\x18\x02 \x01(\bR\x0fvolumeExpansion2\xd4\f\n" + + "\x10volume_expansion\x18\x02 \x01(\bR\x0fvolumeExpansion*\xfe\x01\n" + + "\x1dClusterCreationBlockingReason\x120\n" + + ",CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED\x10\x00\x12)\n" + + "%CLUSTER_CREATION_BLOCKING_REASON_NONE\x10\x01\x12:\n" + + "6CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY\x10\x02\x12D\n" + + "@CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY\x10\x032\xd4\f\n" + "\x0fPlatformService\x12\xbf\x01\n" + "\x18ListGlobalCloudProviders\x129.qdrant.cloud.platform.v1.ListGlobalCloudProvidersRequest\x1a:.qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse\",\x98\xb5\x18\x00\x82\xd3\xe4\x93\x02\"\x12 /api/platform/v1/cloud-providers\x12\xc3\x01\n" + "\x12ListCloudProviders\x123.qdrant.cloud.platform.v1.ListCloudProvidersRequest\x1a4.qdrant.cloud.platform.v1.ListCloudProvidersResponse\"B\x8a\xb5\x18\x00\x82\xd3\xe4\x93\x028\x126/api/platform/v1/accounts/{account_id}/cloud-providers\x12\x97\x02\n" + @@ -949,49 +1023,52 @@ func file_qdrant_cloud_platform_v1_platform_proto_rawDescGZIP() []byte { return file_qdrant_cloud_platform_v1_platform_proto_rawDescData } +var file_qdrant_cloud_platform_v1_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_qdrant_cloud_platform_v1_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_qdrant_cloud_platform_v1_platform_proto_goTypes = []any{ - (*ListCloudProvidersRequest)(nil), // 0: qdrant.cloud.platform.v1.ListCloudProvidersRequest - (*ListCloudProvidersResponse)(nil), // 1: qdrant.cloud.platform.v1.ListCloudProvidersResponse - (*ListGlobalCloudProvidersRequest)(nil), // 2: qdrant.cloud.platform.v1.ListGlobalCloudProvidersRequest - (*ListGlobalCloudProvidersResponse)(nil), // 3: qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse - (*ListGlobalCloudProviderRegionsRequest)(nil), // 4: qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsRequest - (*ListGlobalCloudProviderRegionsResponse)(nil), // 5: qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse - (*GetGlobalCloudProviderRegionRequest)(nil), // 6: qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionRequest - (*GetGlobalCloudProviderRegionResponse)(nil), // 7: qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse - (*ListCloudProviderRegionsRequest)(nil), // 8: qdrant.cloud.platform.v1.ListCloudProviderRegionsRequest - (*ListCloudProviderRegionsResponse)(nil), // 9: qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse - (*GetCloudProviderRegionRequest)(nil), // 10: qdrant.cloud.platform.v1.GetCloudProviderRegionRequest - (*GetCloudProviderRegionResponse)(nil), // 11: qdrant.cloud.platform.v1.GetCloudProviderRegionResponse - (*CloudProvider)(nil), // 12: qdrant.cloud.platform.v1.CloudProvider - (*CloudProviderRegion)(nil), // 13: qdrant.cloud.platform.v1.CloudProviderRegion - (*CloudProviderRegionCapabilities)(nil), // 14: qdrant.cloud.platform.v1.CloudProviderRegionCapabilities + (ClusterCreationBlockingReason)(0), // 0: qdrant.cloud.platform.v1.ClusterCreationBlockingReason + (*ListCloudProvidersRequest)(nil), // 1: qdrant.cloud.platform.v1.ListCloudProvidersRequest + (*ListCloudProvidersResponse)(nil), // 2: qdrant.cloud.platform.v1.ListCloudProvidersResponse + (*ListGlobalCloudProvidersRequest)(nil), // 3: qdrant.cloud.platform.v1.ListGlobalCloudProvidersRequest + (*ListGlobalCloudProvidersResponse)(nil), // 4: qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse + (*ListGlobalCloudProviderRegionsRequest)(nil), // 5: qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsRequest + (*ListGlobalCloudProviderRegionsResponse)(nil), // 6: qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse + (*GetGlobalCloudProviderRegionRequest)(nil), // 7: qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionRequest + (*GetGlobalCloudProviderRegionResponse)(nil), // 8: qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse + (*ListCloudProviderRegionsRequest)(nil), // 9: qdrant.cloud.platform.v1.ListCloudProviderRegionsRequest + (*ListCloudProviderRegionsResponse)(nil), // 10: qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse + (*GetCloudProviderRegionRequest)(nil), // 11: qdrant.cloud.platform.v1.GetCloudProviderRegionRequest + (*GetCloudProviderRegionResponse)(nil), // 12: qdrant.cloud.platform.v1.GetCloudProviderRegionResponse + (*CloudProvider)(nil), // 13: qdrant.cloud.platform.v1.CloudProvider + (*CloudProviderRegion)(nil), // 14: qdrant.cloud.platform.v1.CloudProviderRegion + (*CloudProviderRegionCapabilities)(nil), // 15: qdrant.cloud.platform.v1.CloudProviderRegionCapabilities } var file_qdrant_cloud_platform_v1_platform_proto_depIdxs = []int32{ - 12, // 0: qdrant.cloud.platform.v1.ListCloudProvidersResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProvider - 12, // 1: qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProvider - 13, // 2: qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion - 13, // 3: qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse.region:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion - 13, // 4: qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion - 13, // 5: qdrant.cloud.platform.v1.GetCloudProviderRegionResponse.region:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion - 14, // 6: qdrant.cloud.platform.v1.CloudProviderRegion.capabilities:type_name -> qdrant.cloud.platform.v1.CloudProviderRegionCapabilities - 2, // 7: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviders:input_type -> qdrant.cloud.platform.v1.ListGlobalCloudProvidersRequest - 0, // 8: qdrant.cloud.platform.v1.PlatformService.ListCloudProviders:input_type -> qdrant.cloud.platform.v1.ListCloudProvidersRequest - 4, // 9: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviderRegions:input_type -> qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsRequest - 6, // 10: qdrant.cloud.platform.v1.PlatformService.GetGlobalCloudProviderRegion:input_type -> qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionRequest - 8, // 11: qdrant.cloud.platform.v1.PlatformService.ListCloudProviderRegions:input_type -> qdrant.cloud.platform.v1.ListCloudProviderRegionsRequest - 10, // 12: qdrant.cloud.platform.v1.PlatformService.GetCloudProviderRegion:input_type -> qdrant.cloud.platform.v1.GetCloudProviderRegionRequest - 3, // 13: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviders:output_type -> qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse - 1, // 14: qdrant.cloud.platform.v1.PlatformService.ListCloudProviders:output_type -> qdrant.cloud.platform.v1.ListCloudProvidersResponse - 5, // 15: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviderRegions:output_type -> qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse - 7, // 16: qdrant.cloud.platform.v1.PlatformService.GetGlobalCloudProviderRegion:output_type -> qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse - 9, // 17: qdrant.cloud.platform.v1.PlatformService.ListCloudProviderRegions:output_type -> qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse - 11, // 18: qdrant.cloud.platform.v1.PlatformService.GetCloudProviderRegion:output_type -> qdrant.cloud.platform.v1.GetCloudProviderRegionResponse - 13, // [13:19] is the sub-list for method output_type - 7, // [7:13] 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 + 13, // 0: qdrant.cloud.platform.v1.ListCloudProvidersResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProvider + 13, // 1: qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProvider + 14, // 2: qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion + 14, // 3: qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse.region:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion + 14, // 4: qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse.items:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion + 14, // 5: qdrant.cloud.platform.v1.GetCloudProviderRegionResponse.region:type_name -> qdrant.cloud.platform.v1.CloudProviderRegion + 15, // 6: qdrant.cloud.platform.v1.CloudProviderRegion.capabilities:type_name -> qdrant.cloud.platform.v1.CloudProviderRegionCapabilities + 0, // 7: qdrant.cloud.platform.v1.CloudProviderRegion.cluster_creation_blocking_reason:type_name -> qdrant.cloud.platform.v1.ClusterCreationBlockingReason + 3, // 8: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviders:input_type -> qdrant.cloud.platform.v1.ListGlobalCloudProvidersRequest + 1, // 9: qdrant.cloud.platform.v1.PlatformService.ListCloudProviders:input_type -> qdrant.cloud.platform.v1.ListCloudProvidersRequest + 5, // 10: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviderRegions:input_type -> qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsRequest + 7, // 11: qdrant.cloud.platform.v1.PlatformService.GetGlobalCloudProviderRegion:input_type -> qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionRequest + 9, // 12: qdrant.cloud.platform.v1.PlatformService.ListCloudProviderRegions:input_type -> qdrant.cloud.platform.v1.ListCloudProviderRegionsRequest + 11, // 13: qdrant.cloud.platform.v1.PlatformService.GetCloudProviderRegion:input_type -> qdrant.cloud.platform.v1.GetCloudProviderRegionRequest + 4, // 14: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviders:output_type -> qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse + 2, // 15: qdrant.cloud.platform.v1.PlatformService.ListCloudProviders:output_type -> qdrant.cloud.platform.v1.ListCloudProvidersResponse + 6, // 16: qdrant.cloud.platform.v1.PlatformService.ListGlobalCloudProviderRegions:output_type -> qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse + 8, // 17: qdrant.cloud.platform.v1.PlatformService.GetGlobalCloudProviderRegion:output_type -> qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse + 10, // 18: qdrant.cloud.platform.v1.PlatformService.ListCloudProviderRegions:output_type -> qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse + 12, // 19: qdrant.cloud.platform.v1.PlatformService.GetCloudProviderRegion:output_type -> qdrant.cloud.platform.v1.GetCloudProviderRegionResponse + 14, // [14:20] is the sub-list for method output_type + 8, // [8:14] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_qdrant_cloud_platform_v1_platform_proto_init() } @@ -1005,13 +1082,14 @@ func file_qdrant_cloud_platform_v1_platform_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_qdrant_cloud_platform_v1_platform_proto_rawDesc), len(file_qdrant_cloud_platform_v1_platform_proto_rawDesc)), - NumEnums: 0, + NumEnums: 1, NumMessages: 15, NumExtensions: 0, NumServices: 1, }, GoTypes: file_qdrant_cloud_platform_v1_platform_proto_goTypes, DependencyIndexes: file_qdrant_cloud_platform_v1_platform_proto_depIdxs, + EnumInfos: file_qdrant_cloud_platform_v1_platform_proto_enumTypes, MessageInfos: file_qdrant_cloud_platform_v1_platform_proto_msgTypes, }.Build() File_qdrant_cloud_platform_v1_platform_proto = out.File diff --git a/gen/openapiv2/qdrant/cloud/hybrid/v1/hybrid_cloud.swagger.json b/gen/openapiv2/qdrant/cloud/hybrid/v1/hybrid_cloud.swagger.json index 8713ee93..b0d89ba0 100644 --- a/gen/openapiv2/qdrant/cloud/hybrid/v1/hybrid_cloud.swagger.json +++ b/gen/openapiv2/qdrant/cloud/hybrid/v1/hybrid_cloud.swagger.json @@ -721,6 +721,10 @@ "$ref": "#/definitions/v1HybridCloudEnvironmentVolumeAttributesClass" }, "title": "Volume attributes classes available in the hybrid cloud environment" + }, + "storageConfigurationReadiness": { + "$ref": "#/definitions/v1StorageConfigurationReadiness", + "description": "Expresses the storage configuration state of the hybrid cloud environment." } }, "title": "Status of a hybrid cloud environment, read only" @@ -1024,6 +1028,17 @@ "description": "- QDRANT_CLUSTER_CREATION_STATUS_UNSPECIFIED: Unspecified\n - QDRANT_CLUSTER_CREATION_STATUS_READY: Clusters can be created\n - QDRANT_CLUSTER_CREATION_STATUS_NOT_READY: Clusters cannot be created", "title": "QdrantClusterCreationStatus indicates if Qdrant clusters can be created in the environment" }, + "v1StorageConfigurationReadiness": { + "type": "string", + "enum": [ + "STORAGE_CONFIGURATION_READINESS_UNSPECIFIED", + "STORAGE_CONFIGURATION_READINESS_READY", + "STORAGE_CONFIGURATION_READINESS_NOT_READY", + "STORAGE_CONFIGURATION_READINESS_INVALID" + ], + "default": "STORAGE_CONFIGURATION_READINESS_UNSPECIFIED", + "description": "StorageConfigurationReadiness expresses the storage configuration state of the hybrid cloud environment.\n\n - STORAGE_CONFIGURATION_READINESS_UNSPECIFIED: Default/unknown, safe fallback\n - STORAGE_CONFIGURATION_READINESS_READY: Storage config explicitly set\n - STORAGE_CONFIGURATION_READINESS_NOT_READY: Storage config absent\n - STORAGE_CONFIGURATION_READINESS_INVALID: Config present but invalid" + }, "v1Toleration": { "type": "object", "properties": { diff --git a/gen/openapiv2/qdrant/cloud/platform/v1/platform.swagger.json b/gen/openapiv2/qdrant/cloud/platform/v1/platform.swagger.json index dcb77e59..e84f7cd1 100644 --- a/gen/openapiv2/qdrant/cloud/platform/v1/platform.swagger.json +++ b/gen/openapiv2/qdrant/cloud/platform/v1/platform.swagger.json @@ -317,6 +317,10 @@ "capabilities": { "$ref": "#/definitions/v1CloudProviderRegionCapabilities", "description": "Storage capabilities available in this region." + }, + "clusterCreationBlockingReason": { + "$ref": "#/definitions/v1ClusterCreationBlockingReason", + "description": "Surfaces the specific reason cluster creation should be blocked for this region." } }, "description": "CloudProviderRegion represents a cloud provider region." @@ -335,6 +339,17 @@ }, "description": "CloudProviderRegionCapabilities represents storage capabilities available in a cloud provider region." }, + "v1ClusterCreationBlockingReason": { + "type": "string", + "enum": [ + "CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED", + "CLUSTER_CREATION_BLOCKING_REASON_NONE", + "CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY", + "CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY" + ], + "default": "CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED", + "description": "ClusterCreationBlockingReason surfaces the specific reason cluster creation should be blocked.\nIt is informational and does not change the semantics of available.\n\n - CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED: No blocking reason / N/A (used for non-hybrid regions)\n - CLUSTER_CREATION_BLOCKING_REASON_NONE: No blocker, creation allowed\n - CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY: Operator/agent not yet ready\n - CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY: Storage config not set" + }, "v1GetCloudProviderRegionResponse": { "type": "object", "properties": { diff --git a/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.py b/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.py index 69dd6bc7..687e7ab4 100644 --- a/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.py +++ b/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.py @@ -31,7 +31,7 @@ from qdrant.cloud.event.v1 import events_pb2 as qdrant_dot_cloud_dot_event_dot_v1_dot_events__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)qdrant/cloud/hybrid/v1/hybrid_cloud.proto\x12\x16qdrant.cloud.hybrid.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a%qdrant/cloud/cluster/v1/cluster.proto\x1a#qdrant/cloud/common/v1/common.proto\x1a\"qdrant/cloud/event/v1/events.proto\"\x94\x01\n GenerateBootstrapCommandsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12G\n\x1bhybrid_cloud_environment_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x18hybridCloudEnvironmentId\"\xb8\x01\n!GenerateBootstrapCommandsResponse\x12\x1a\n\x08\x63ommands\x18\x01 \x03(\tR\x08\x63ommands\x12\x1d\n\naccess_key\x18\x02 \x01(\tR\taccessKey\x12+\n\x11registry_username\x18\x03 \x01(\tR\x10registryUsername\x12+\n\x11registry_password\x18\x04 \x01(\tR\x10registryPassword\"\x97\x01\n#DeleteHybridCloudEnvironmentRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12G\n\x1bhybrid_cloud_environment_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x18hybridCloudEnvironmentId\"&\n$DeleteHybridCloudEnvironmentResponse\"\xac\x02\n#UpdateHybridCloudEnvironmentRequest\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment:\x92\x01\xbaH\x8e\x01\x1a\x8b\x01\n*update_hybrid_cloud_environment.id_present\x12\x35hybrid_cloud_environment.id is required for an update\x1a&this.hybrid_cloud_environment.id != \'\'\"\x98\x01\n$UpdateHybridCloudEnvironmentResponse\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment\"\xee\x03\n#CreateHybridCloudEnvironmentRequest\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment:\xd4\x02\xbaH\xd0\x02\x1a\xcd\x02\n3create_hybrid_cloud_environment.no_read_only_fields\x12Uread-only fields (id, created_at, last_modified_at, status) must not be set on create\x1a\xbe\x01this.hybrid_cloud_environment.id == \'\' && !has(this.hybrid_cloud_environment.created_at) && !has(this.hybrid_cloud_environment.last_modified_at) && !has(this.hybrid_cloud_environment.status)\"\x98\x01\n$CreateHybridCloudEnvironmentResponse\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment\"\x94\x01\n GetHybridCloudEnvironmentRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12G\n\x1bhybrid_cloud_environment_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x18hybridCloudEnvironmentId\"\x95\x01\n!GetHybridCloudEnvironmentResponse\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment\"M\n\"ListHybridCloudEnvironmentsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"k\n#ListHybridCloudEnvironmentsResponse\x12\x44\n\x05items\x18\x01 \x03(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentR\x05items\"\x87\x0e\n\x16HybridCloudEnvironment\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x0e\n\x02id\x18\x02 \x01(\tR\x02id\x12\x39\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x44\n\x10last_modified_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0elastModifiedAt\x12/\n\x04name\x18\x05 \x01(\tB\x1b\xbaH\x18r\x16\x10\x01\x18@2\x10^[a-zA-Z0-9-_]+$R\x04name\x12\xba\x01\n\x10\x63reated_by_email\x18\x06 \x01(\tB\x8f\x01\xbaH\x8b\x01\xba\x01\x87\x01\n)hybrid_cloud_environment.created_by_email\x12\x36if set, created_by_email must be a valid email address\x1a\"this.size() == 0 || this.isEmail()R\x0e\x63reatedByEmail\x12@\n\x1c\x62ootstrap_commands_generated\x18\x13 \x01(\x08R\x1a\x62ootstrapCommandsGenerated\x12\x66\n\rconfiguration\x18\x14 \x01(\x0b\x32;.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfigurationH\x00R\rconfiguration\x88\x01\x01\x12Q\n\x06status\x18\x15 \x01(\x0b\x32\x34.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusH\x01R\x06status\x88\x01\x01:\xaa\x08\xbaH\xa6\x08\x1a\xb4\x01\n\x1bhybrid_cloud_environment.id\x12\x1avalue must be a valid UUID\x1aythis.id.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\') || !has(this.created_at)\x1a\xea\x01\n)hybrid_cloud_environment.last_modified_at\x12Zlast_modified_at must be set if created_at is set and must be after or equal to created_at\x1a\x61!has(this.created_at) || (has(this.last_modified_at) && this.last_modified_at >= this.created_at)\x1a\xd3\x02\n7hybrid_cloud_environment.configuration.last_modified_at\x12|configuration.last_modified_at must be set if configuration and created_at are set, and must be after or equal to created_at\x1a\x99\x01!has(this.configuration) || !has(this.created_at) || (has(this.configuration.last_modified_at) && this.configuration.last_modified_at >= this.created_at)\x1a\xa9\x02\n0hybrid_cloud_environment.status.last_modified_at\x12nstatus.last_modified_at must be set if status and created_at are set, and must be after or equal to created_at\x1a\x84\x01!has(this.status) || !has(this.created_at) || (has(this.status.last_modified_at) && this.status.last_modified_at >= this.created_at)B\x10\n\x0e_configurationB\t\n\x07_status\"\xf6\r\n#HybridCloudEnvironmentConfiguration\x12\x44\n\x10last_modified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0elastModifiedAt\x12I\n\tnamespace\x18\x04 \x01(\tB+\xbaH(r&\x10\x01\x18\xfd\x01\x32\x1f^[a-z0-9]([-a-z0-9]*[a-z0-9])?$R\tnamespace\x12\x33\n\x0ehttp_proxy_url\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x88\x01\x01H\x00R\x0chttpProxyUrl\x88\x01\x01\x12\x35\n\x0fhttps_proxy_url\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x88\x01\x01H\x01R\rhttpsProxyUrl\x88\x01\x01\x12(\n\x10no_proxy_configs\x18\x07 \x03(\tR\x0enoProxyConfigs\x12u\n\x16\x63ontainer_registry_url\x18\x08 \x01(\tB:\xbaH7r5\x18\x80\x10\x32\x30^([a-zA-Z0-9.-]+(:[0-9]+)?)(/[a-zA-Z0-9_./-]+)*$H\x02R\x14\x63ontainerRegistryUrl\x88\x01\x01\x12\x8b\x01\n\x14\x63hart_repository_url\x18\t \x01(\tBT\xbaHQrO\x18\x80\x10\x32J^[a-zA-Z][a-zA-Z0-9+.-]*://([a-zA-Z0-9.-]+(:[0-9]+)?)(/[a-zA-Z0-9_./-]+)*$H\x03R\x12\x63hartRepositoryUrl\x88\x01\x01\x12\x35\n\x14registry_secret_name\x18\n \x01(\tH\x04R\x12registrySecretName\x88\x01\x01\x12,\n\x0f\x63\x61_certificates\x18\x0b \x01(\tH\x05R\x0e\x63\x61\x43\x65rtificates\x88\x01\x01\x12\x42\n\x16\x64\x61tabase_storage_class\x18\x0c \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x06R\x14\x64\x61tabaseStorageClass\x88\x01\x01\x12\x42\n\x16snapshot_storage_class\x18\r \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x07R\x14snapshotStorageClass\x88\x01\x01\x12O\n\x1dvolume_snapshot_storage_class\x18\x0e \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x08R\x1avolumeSnapshotStorageClass\x88\x01\x01\x12J\n\x07ingress\x18\x0f \x03(\x0b\x32\x30.qdrant.cloud.common.v1.NetworkPolicyIngressRuleR\x07ingress\x12G\n\x06\x65gress\x18\x10 \x03(\x0b\x32/.qdrant.cloud.common.v1.NetworkPolicyEgressRuleR\x06\x65gress\x12q\n\tlog_level\x18\x15 \x01(\x0e\x32\x43.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfigurationLogLevelB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\tR\x08logLevel\x88\x01\x01\x12\x45\n\x0btolerations\x18\x16 \x03(\x0b\x32#.qdrant.cloud.cluster.v1.TolerationR\x0btolerations\x12O\n\rnode_selector\x18\x17 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueB\x08\xbaH\x05\x92\x01\x02\x10\nR\x0cnodeSelector\x12Z\n\x1a\x61\x64vanced_operator_settings\x18\x18 \x01(\x0b\x32\x17.google.protobuf.StructH\nR\x18\x61\x64vancedOperatorSettings\x88\x01\x01\x12\\\n\x14\x63ontrol_plane_labels\x18\x19 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueB\x08\xbaH\x05\x92\x01\x02\x10\nR\x12\x63ontrolPlaneLabelsB\x11\n\x0f_http_proxy_urlB\x12\n\x10_https_proxy_urlB\x19\n\x17_container_registry_urlB\x17\n\x15_chart_repository_urlB\x17\n\x15_registry_secret_nameB\x12\n\x10_ca_certificatesB\x19\n\x17_database_storage_classB\x19\n\x17_snapshot_storage_classB \n\x1e_volume_snapshot_storage_classB\x0c\n\n_log_levelB\x1d\n\x1b_advanced_operator_settings\"\x94\t\n\x1cHybridCloudEnvironmentStatus\x12L\n\x10last_modified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0elastModifiedAt\x12Y\n\x05phase\x18\x03 \x01(\x0e\x32\x39.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhaseB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05phase\x12\x36\n\x12kubernetes_version\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x11kubernetesVersion\x12x\n\x17kubernetes_distribution\x18\n \x01(\x0e\x32..qdrant.cloud.hybrid.v1.KubernetesDistributionB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\x16kubernetesDistribution\x88\x01\x01\x12&\n\x0fnumber_of_nodes\x18\x05 \x01(\rR\rnumberOfNodes\x12^\n\x0c\x63\x61pabilities\x18\x06 \x01(\x0b\x32:.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentCapabilitiesR\x0c\x63\x61pabilities\x12l\n\x12\x63omponent_statuses\x18\x07 \x03(\x0b\x32=.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusR\x11\x63omponentStatuses\x12{\n\x1a\x63luster_creation_readiness\x18\t \x01(\x0e\x32\x33.qdrant.cloud.hybrid.v1.QdrantClusterCreationStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x18\x63lusterCreationReadiness\x12\x1d\n\x07message\x18\x0b \x01(\tH\x01R\x07message\x88\x01\x01\x12\x63\n\x0fstorage_classes\x18\x0c \x03(\x0b\x32:.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClassR\x0estorageClasses\x12y\n\x17volume_snapshot_classes\x18\r \x03(\x0b\x32\x41.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeSnapshotClassR\x15volumeSnapshotClasses\x12\x7f\n\x19volume_attributes_classes\x18\x0e \x03(\x0b\x32\x43.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClassR\x17volumeAttributesClassesB\x1a\n\x18_kubernetes_distributionB\n\n\x08_message\"x\n\"HybridCloudEnvironmentCapabilities\x12\'\n\x0fvolume_snapshot\x18\x01 \x01(\x08R\x0evolumeSnapshot\x12)\n\x10volume_expansion\x18\x02 \x01(\x08R\x0fvolumeExpansion\"\xa5\x02\n%HybridCloudEnvironmentComponentStatus\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12%\n\tnamespace\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tnamespace\x12\x1d\n\x07version\x18\x03 \x01(\tH\x00R\x07version\x88\x01\x01\x12\x62\n\x05phase\x18\x04 \x01(\x0e\x32\x42.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusPhaseB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05phase\x12\x1d\n\x07message\x18\x05 \x01(\tH\x01R\x07message\x88\x01\x01\x42\n\n\x08_versionB\n\n\x08_message\"\xa5\x02\n\"HybridCloudEnvironmentStorageClass\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x18\n\x07\x64\x65\x66\x61ult\x18\x02 \x01(\x08R\x07\x64\x65\x66\x61ult\x12)\n\x0bprovisioner\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0bprovisioner\x12\x34\n\x16\x61llow_volume_expansion\x18\x04 \x01(\x08R\x14\x61llowVolumeExpansion\x12%\n\x0ereclaim_policy\x18\x05 \x01(\tR\rreclaimPolicy\x12@\n\nparameters\x18\x06 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueR\nparameters\"i\n)HybridCloudEnvironmentVolumeSnapshotClass\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1f\n\x06\x64river\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06\x64river\"\xad\x01\n+HybridCloudEnvironmentVolumeAttributesClass\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1f\n\x06\x64river\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06\x64river\x12@\n\nparameters\x18\x03 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueR\nparameters\"\x9a\x03\n\x1eHybridCloudEnvironmentNodeInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06region\x18\x02 \x01(\tH\x00R\x06region\x88\x01\x01\x12\x17\n\x04zone\x18\x03 \x01(\tH\x01R\x04zone\x88\x01\x01\x12(\n\rinstance_type\x18\x04 \x01(\tH\x02R\x0cinstanceType\x88\x01\x01\x12\x17\n\x04\x61rch\x18\x05 \x01(\tH\x03R\x04\x61rch\x88\x01\x01\x12Z\n\x08\x63\x61pacity\x18\x06 \x01(\x0b\x32>.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfoR\x08\x63\x61pacity\x12`\n\x0b\x61llocatable\x18\x07 \x01(\x0b\x32>.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfoR\x0b\x61llocatableB\t\n\x07_regionB\x07\n\x05_zoneB\x10\n\x0e_instance_typeB\x07\n\x05_arch\"\x93\x01\n&HybridCloudEnvironmentNodeResourceInfo\x12\x10\n\x03\x63pu\x18\x01 \x01(\tR\x03\x63pu\x12\x16\n\x06memory\x18\x02 \x01(\tR\x06memory\x12\x12\n\x04pods\x18\x03 \x01(\tR\x04pods\x12+\n\x11\x65phemeral_storage\x18\x04 \x01(\tR\x10\x65phemeralStorage*\xdd\x02\n+HybridCloudEnvironmentConfigurationLogLevel\x12@\n/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments\x12\xed\x02\n\x19GetHybridCloudEnvironment\x12\x38.qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentRequest\x1a\x39.qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse\"\xda\x01\x8a\xb5\x18\x1eread:hybrid_cloud_environments\x8a\xb5\x18\x0ewrite:clusters\xa8\xb5\x18\x00\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment_id\x82\xd3\xe4\x93\x02^\x12\\/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}\x12\xbf\x04\n\x1c\x43reateHybridCloudEnvironment\x12;.qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest\x1a<.qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse\"\xa3\x03\x8a\xb5\x18\x1fwrite:hybrid_cloud_environments\x92\xb5\x18#hybrid_cloud_environment.account_id\xba\xb5\x18>\n\x1dhybrid_cloud_environment_name\x12\x1dhybrid_cloud_environment.name\xca\xf3\x18\xb0\x01\x08\x01\x12\x18hybrid-cloud-environment\" resp.hybrid_cloud_environment.id*p/accounts/{req.hybrid_cloud_environment.account_id}/hybrid-cloud-environments/{resp.hybrid_cloud_environment.id}\x82\xd3\xe4\x93\x02\\\"W/api/hybrid/v1/accounts/{hybrid_cloud_environment.account_id}/hybrid-cloud-environments:\x01*\x12\xd7\x04\n\x1cUpdateHybridCloudEnvironment\x12;.qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest\x1a<.qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse\"\xbb\x03\x8a\xb5\x18\x1fwrite:hybrid_cloud_environments\x92\xb5\x18#hybrid_cloud_environment.account_id\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment.id\xca\xf3\x18\xae\x01\x08\x02\x12\x18hybrid-cloud-environment\"\x1freq.hybrid_cloud_environment.id*o/accounts/{req.hybrid_cloud_environment.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment.id}\x82\xd3\xe4\x93\x02z\x1au/api/hybrid/v1/accounts/{hybrid_cloud_environment.account_id}/hybrid-cloud-environments/{hybrid_cloud_environment.id}:\x01*\x12\xfc\x03\n\x1c\x44\x65leteHybridCloudEnvironment\x12;.qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentRequest\x1a<.qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentResponse\"\xe0\x02\x8a\xb5\x18 delete:hybrid_cloud_environments\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment_id\xca\xf3\x18\x95\x01\x08\x03\x12\x18hybrid-cloud-environment\"\x1freq.hybrid_cloud_environment_id*V/accounts/{req.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment_id}\x82\xd3\xe4\x93\x02^*\\/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}\x12\xc2\x04\n\x19GenerateBootstrapCommands\x12\x38.qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsRequest\x1a\x39.qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsResponse\"\xaf\x03\x8a\xb5\x18\x1fwrite:hybrid_cloud_environments\x8a\xb5\x18\x15write:management_keys\xa8\xb5\x18\x01\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment_id\xca\xf3\x18\xb2\x01\x08\x04\x12\x18hybrid-cloud-environment\"\x1freq.hybrid_cloud_environment_id*V/accounts/{req.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment_id}2\x1bgenerate-bootstrap-commands\x82\xd3\xe4\x93\x02t\"o/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}/bootstrap-commands:\x01*\x1a\x06\xc2\xb5\x18\x02\x08\x01\x42\xfb\x01\n\x1a\x63om.qdrant.cloud.hybrid.v1B\x10HybridCloudProtoP\x01ZPgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/hybrid/v1;hybridv1\xa2\x02\x03QCH\xaa\x02\x16Qdrant.Cloud.Hybrid.V1\xca\x02\x16Qdrant\\Cloud\\Hybrid\\V1\xe2\x02\"Qdrant\\Cloud\\Hybrid\\V1\\GPBMetadata\xea\x02\x19Qdrant::Cloud::Hybrid::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n)qdrant/cloud/hybrid/v1/hybrid_cloud.proto\x12\x16qdrant.cloud.hybrid.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a%qdrant/cloud/cluster/v1/cluster.proto\x1a#qdrant/cloud/common/v1/common.proto\x1a\"qdrant/cloud/event/v1/events.proto\"\x94\x01\n GenerateBootstrapCommandsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12G\n\x1bhybrid_cloud_environment_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x18hybridCloudEnvironmentId\"\xb8\x01\n!GenerateBootstrapCommandsResponse\x12\x1a\n\x08\x63ommands\x18\x01 \x03(\tR\x08\x63ommands\x12\x1d\n\naccess_key\x18\x02 \x01(\tR\taccessKey\x12+\n\x11registry_username\x18\x03 \x01(\tR\x10registryUsername\x12+\n\x11registry_password\x18\x04 \x01(\tR\x10registryPassword\"\x97\x01\n#DeleteHybridCloudEnvironmentRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12G\n\x1bhybrid_cloud_environment_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x18hybridCloudEnvironmentId\"&\n$DeleteHybridCloudEnvironmentResponse\"\xac\x02\n#UpdateHybridCloudEnvironmentRequest\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment:\x92\x01\xbaH\x8e\x01\x1a\x8b\x01\n*update_hybrid_cloud_environment.id_present\x12\x35hybrid_cloud_environment.id is required for an update\x1a&this.hybrid_cloud_environment.id != \'\'\"\x98\x01\n$UpdateHybridCloudEnvironmentResponse\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment\"\xee\x03\n#CreateHybridCloudEnvironmentRequest\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment:\xd4\x02\xbaH\xd0\x02\x1a\xcd\x02\n3create_hybrid_cloud_environment.no_read_only_fields\x12Uread-only fields (id, created_at, last_modified_at, status) must not be set on create\x1a\xbe\x01this.hybrid_cloud_environment.id == \'\' && !has(this.hybrid_cloud_environment.created_at) && !has(this.hybrid_cloud_environment.last_modified_at) && !has(this.hybrid_cloud_environment.status)\"\x98\x01\n$CreateHybridCloudEnvironmentResponse\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment\"\x94\x01\n GetHybridCloudEnvironmentRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12G\n\x1bhybrid_cloud_environment_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x18hybridCloudEnvironmentId\"\x95\x01\n!GetHybridCloudEnvironmentResponse\x12p\n\x18hybrid_cloud_environment\x18\x01 \x01(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentB\x06\xbaH\x03\xc8\x01\x01R\x16hybridCloudEnvironment\"M\n\"ListHybridCloudEnvironmentsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"k\n#ListHybridCloudEnvironmentsResponse\x12\x44\n\x05items\x18\x01 \x03(\x0b\x32..qdrant.cloud.hybrid.v1.HybridCloudEnvironmentR\x05items\"\x87\x0e\n\x16HybridCloudEnvironment\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x0e\n\x02id\x18\x02 \x01(\tR\x02id\x12\x39\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x44\n\x10last_modified_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0elastModifiedAt\x12/\n\x04name\x18\x05 \x01(\tB\x1b\xbaH\x18r\x16\x10\x01\x18@2\x10^[a-zA-Z0-9-_]+$R\x04name\x12\xba\x01\n\x10\x63reated_by_email\x18\x06 \x01(\tB\x8f\x01\xbaH\x8b\x01\xba\x01\x87\x01\n)hybrid_cloud_environment.created_by_email\x12\x36if set, created_by_email must be a valid email address\x1a\"this.size() == 0 || this.isEmail()R\x0e\x63reatedByEmail\x12@\n\x1c\x62ootstrap_commands_generated\x18\x13 \x01(\x08R\x1a\x62ootstrapCommandsGenerated\x12\x66\n\rconfiguration\x18\x14 \x01(\x0b\x32;.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfigurationH\x00R\rconfiguration\x88\x01\x01\x12Q\n\x06status\x18\x15 \x01(\x0b\x32\x34.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusH\x01R\x06status\x88\x01\x01:\xaa\x08\xbaH\xa6\x08\x1a\xb4\x01\n\x1bhybrid_cloud_environment.id\x12\x1avalue must be a valid UUID\x1aythis.id.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\') || !has(this.created_at)\x1a\xea\x01\n)hybrid_cloud_environment.last_modified_at\x12Zlast_modified_at must be set if created_at is set and must be after or equal to created_at\x1a\x61!has(this.created_at) || (has(this.last_modified_at) && this.last_modified_at >= this.created_at)\x1a\xd3\x02\n7hybrid_cloud_environment.configuration.last_modified_at\x12|configuration.last_modified_at must be set if configuration and created_at are set, and must be after or equal to created_at\x1a\x99\x01!has(this.configuration) || !has(this.created_at) || (has(this.configuration.last_modified_at) && this.configuration.last_modified_at >= this.created_at)\x1a\xa9\x02\n0hybrid_cloud_environment.status.last_modified_at\x12nstatus.last_modified_at must be set if status and created_at are set, and must be after or equal to created_at\x1a\x84\x01!has(this.status) || !has(this.created_at) || (has(this.status.last_modified_at) && this.status.last_modified_at >= this.created_at)B\x10\n\x0e_configurationB\t\n\x07_status\"\xf6\r\n#HybridCloudEnvironmentConfiguration\x12\x44\n\x10last_modified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0elastModifiedAt\x12I\n\tnamespace\x18\x04 \x01(\tB+\xbaH(r&\x10\x01\x18\xfd\x01\x32\x1f^[a-z0-9]([-a-z0-9]*[a-z0-9])?$R\tnamespace\x12\x33\n\x0ehttp_proxy_url\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x88\x01\x01H\x00R\x0chttpProxyUrl\x88\x01\x01\x12\x35\n\x0fhttps_proxy_url\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x88\x01\x01H\x01R\rhttpsProxyUrl\x88\x01\x01\x12(\n\x10no_proxy_configs\x18\x07 \x03(\tR\x0enoProxyConfigs\x12u\n\x16\x63ontainer_registry_url\x18\x08 \x01(\tB:\xbaH7r5\x18\x80\x10\x32\x30^([a-zA-Z0-9.-]+(:[0-9]+)?)(/[a-zA-Z0-9_./-]+)*$H\x02R\x14\x63ontainerRegistryUrl\x88\x01\x01\x12\x8b\x01\n\x14\x63hart_repository_url\x18\t \x01(\tBT\xbaHQrO\x18\x80\x10\x32J^[a-zA-Z][a-zA-Z0-9+.-]*://([a-zA-Z0-9.-]+(:[0-9]+)?)(/[a-zA-Z0-9_./-]+)*$H\x03R\x12\x63hartRepositoryUrl\x88\x01\x01\x12\x35\n\x14registry_secret_name\x18\n \x01(\tH\x04R\x12registrySecretName\x88\x01\x01\x12,\n\x0f\x63\x61_certificates\x18\x0b \x01(\tH\x05R\x0e\x63\x61\x43\x65rtificates\x88\x01\x01\x12\x42\n\x16\x64\x61tabase_storage_class\x18\x0c \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x06R\x14\x64\x61tabaseStorageClass\x88\x01\x01\x12\x42\n\x16snapshot_storage_class\x18\r \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x07R\x14snapshotStorageClass\x88\x01\x01\x12O\n\x1dvolume_snapshot_storage_class\x18\x0e \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x08R\x1avolumeSnapshotStorageClass\x88\x01\x01\x12J\n\x07ingress\x18\x0f \x03(\x0b\x32\x30.qdrant.cloud.common.v1.NetworkPolicyIngressRuleR\x07ingress\x12G\n\x06\x65gress\x18\x10 \x03(\x0b\x32/.qdrant.cloud.common.v1.NetworkPolicyEgressRuleR\x06\x65gress\x12q\n\tlog_level\x18\x15 \x01(\x0e\x32\x43.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentConfigurationLogLevelB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\tR\x08logLevel\x88\x01\x01\x12\x45\n\x0btolerations\x18\x16 \x03(\x0b\x32#.qdrant.cloud.cluster.v1.TolerationR\x0btolerations\x12O\n\rnode_selector\x18\x17 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueB\x08\xbaH\x05\x92\x01\x02\x10\nR\x0cnodeSelector\x12Z\n\x1a\x61\x64vanced_operator_settings\x18\x18 \x01(\x0b\x32\x17.google.protobuf.StructH\nR\x18\x61\x64vancedOperatorSettings\x88\x01\x01\x12\\\n\x14\x63ontrol_plane_labels\x18\x19 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueB\x08\xbaH\x05\x92\x01\x02\x10\nR\x12\x63ontrolPlaneLabelsB\x11\n\x0f_http_proxy_urlB\x12\n\x10_https_proxy_urlB\x19\n\x17_container_registry_urlB\x17\n\x15_chart_repository_urlB\x17\n\x15_registry_secret_nameB\x12\n\x10_ca_certificatesB\x19\n\x17_database_storage_classB\x19\n\x17_snapshot_storage_classB \n\x1e_volume_snapshot_storage_classB\x0c\n\n_log_levelB\x1d\n\x1b_advanced_operator_settings\"\x93\n\n\x1cHybridCloudEnvironmentStatus\x12L\n\x10last_modified_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x0elastModifiedAt\x12Y\n\x05phase\x18\x03 \x01(\x0e\x32\x39.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhaseB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05phase\x12\x36\n\x12kubernetes_version\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x11kubernetesVersion\x12x\n\x17kubernetes_distribution\x18\n \x01(\x0e\x32..qdrant.cloud.hybrid.v1.KubernetesDistributionB\n\xbaH\x07\x82\x01\x04\x10\x01 \x00H\x00R\x16kubernetesDistribution\x88\x01\x01\x12&\n\x0fnumber_of_nodes\x18\x05 \x01(\rR\rnumberOfNodes\x12^\n\x0c\x63\x61pabilities\x18\x06 \x01(\x0b\x32:.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentCapabilitiesR\x0c\x63\x61pabilities\x12l\n\x12\x63omponent_statuses\x18\x07 \x03(\x0b\x32=.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusR\x11\x63omponentStatuses\x12{\n\x1a\x63luster_creation_readiness\x18\t \x01(\x0e\x32\x33.qdrant.cloud.hybrid.v1.QdrantClusterCreationStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x18\x63lusterCreationReadiness\x12\x1d\n\x07message\x18\x0b \x01(\tH\x01R\x07message\x88\x01\x01\x12\x63\n\x0fstorage_classes\x18\x0c \x03(\x0b\x32:.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStorageClassR\x0estorageClasses\x12y\n\x17volume_snapshot_classes\x18\r \x03(\x0b\x32\x41.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeSnapshotClassR\x15volumeSnapshotClasses\x12\x7f\n\x19volume_attributes_classes\x18\x0e \x03(\x0b\x32\x43.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClassR\x17volumeAttributesClasses\x12}\n\x1fstorage_configuration_readiness\x18\x0f \x01(\x0e\x32\x35.qdrant.cloud.hybrid.v1.StorageConfigurationReadinessR\x1dstorageConfigurationReadinessB\x1a\n\x18_kubernetes_distributionB\n\n\x08_message\"x\n\"HybridCloudEnvironmentCapabilities\x12\'\n\x0fvolume_snapshot\x18\x01 \x01(\x08R\x0evolumeSnapshot\x12)\n\x10volume_expansion\x18\x02 \x01(\x08R\x0fvolumeExpansion\"\xa5\x02\n%HybridCloudEnvironmentComponentStatus\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12%\n\tnamespace\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tnamespace\x12\x1d\n\x07version\x18\x03 \x01(\tH\x00R\x07version\x88\x01\x01\x12\x62\n\x05phase\x18\x04 \x01(\x0e\x32\x42.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusPhaseB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05phase\x12\x1d\n\x07message\x18\x05 \x01(\tH\x01R\x07message\x88\x01\x01\x42\n\n\x08_versionB\n\n\x08_message\"\xa5\x02\n\"HybridCloudEnvironmentStorageClass\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x18\n\x07\x64\x65\x66\x61ult\x18\x02 \x01(\x08R\x07\x64\x65\x66\x61ult\x12)\n\x0bprovisioner\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0bprovisioner\x12\x34\n\x16\x61llow_volume_expansion\x18\x04 \x01(\x08R\x14\x61llowVolumeExpansion\x12%\n\x0ereclaim_policy\x18\x05 \x01(\tR\rreclaimPolicy\x12@\n\nparameters\x18\x06 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueR\nparameters\"i\n)HybridCloudEnvironmentVolumeSnapshotClass\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1f\n\x06\x64river\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06\x64river\"\xad\x01\n+HybridCloudEnvironmentVolumeAttributesClass\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1f\n\x06\x64river\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06\x64river\x12@\n\nparameters\x18\x03 \x03(\x0b\x32 .qdrant.cloud.common.v1.KeyValueR\nparameters\"\x9a\x03\n\x1eHybridCloudEnvironmentNodeInfo\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06region\x18\x02 \x01(\tH\x00R\x06region\x88\x01\x01\x12\x17\n\x04zone\x18\x03 \x01(\tH\x01R\x04zone\x88\x01\x01\x12(\n\rinstance_type\x18\x04 \x01(\tH\x02R\x0cinstanceType\x88\x01\x01\x12\x17\n\x04\x61rch\x18\x05 \x01(\tH\x03R\x04\x61rch\x88\x01\x01\x12Z\n\x08\x63\x61pacity\x18\x06 \x01(\x0b\x32>.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfoR\x08\x63\x61pacity\x12`\n\x0b\x61llocatable\x18\x07 \x01(\x0b\x32>.qdrant.cloud.hybrid.v1.HybridCloudEnvironmentNodeResourceInfoR\x0b\x61llocatableB\t\n\x07_regionB\x07\n\x05_zoneB\x10\n\x0e_instance_typeB\x07\n\x05_arch\"\x93\x01\n&HybridCloudEnvironmentNodeResourceInfo\x12\x10\n\x03\x63pu\x18\x01 \x01(\tR\x03\x63pu\x12\x16\n\x06memory\x18\x02 \x01(\tR\x06memory\x12\x12\n\x04pods\x18\x03 \x01(\tR\x04pods\x12+\n\x11\x65phemeral_storage\x18\x04 \x01(\tR\x10\x65phemeralStorage*\xdd\x02\n+HybridCloudEnvironmentConfigurationLogLevel\x12@\n/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments\x12\xed\x02\n\x19GetHybridCloudEnvironment\x12\x38.qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentRequest\x1a\x39.qdrant.cloud.hybrid.v1.GetHybridCloudEnvironmentResponse\"\xda\x01\x8a\xb5\x18\x1eread:hybrid_cloud_environments\x8a\xb5\x18\x0ewrite:clusters\xa8\xb5\x18\x00\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment_id\x82\xd3\xe4\x93\x02^\x12\\/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}\x12\xbf\x04\n\x1c\x43reateHybridCloudEnvironment\x12;.qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentRequest\x1a<.qdrant.cloud.hybrid.v1.CreateHybridCloudEnvironmentResponse\"\xa3\x03\x8a\xb5\x18\x1fwrite:hybrid_cloud_environments\x92\xb5\x18#hybrid_cloud_environment.account_id\xba\xb5\x18>\n\x1dhybrid_cloud_environment_name\x12\x1dhybrid_cloud_environment.name\xca\xf3\x18\xb0\x01\x08\x01\x12\x18hybrid-cloud-environment\" resp.hybrid_cloud_environment.id*p/accounts/{req.hybrid_cloud_environment.account_id}/hybrid-cloud-environments/{resp.hybrid_cloud_environment.id}\x82\xd3\xe4\x93\x02\\\"W/api/hybrid/v1/accounts/{hybrid_cloud_environment.account_id}/hybrid-cloud-environments:\x01*\x12\xd7\x04\n\x1cUpdateHybridCloudEnvironment\x12;.qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentRequest\x1a<.qdrant.cloud.hybrid.v1.UpdateHybridCloudEnvironmentResponse\"\xbb\x03\x8a\xb5\x18\x1fwrite:hybrid_cloud_environments\x92\xb5\x18#hybrid_cloud_environment.account_id\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment.id\xca\xf3\x18\xae\x01\x08\x02\x12\x18hybrid-cloud-environment\"\x1freq.hybrid_cloud_environment.id*o/accounts/{req.hybrid_cloud_environment.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment.id}\x82\xd3\xe4\x93\x02z\x1au/api/hybrid/v1/accounts/{hybrid_cloud_environment.account_id}/hybrid-cloud-environments/{hybrid_cloud_environment.id}:\x01*\x12\xfc\x03\n\x1c\x44\x65leteHybridCloudEnvironment\x12;.qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentRequest\x1a<.qdrant.cloud.hybrid.v1.DeleteHybridCloudEnvironmentResponse\"\xe0\x02\x8a\xb5\x18 delete:hybrid_cloud_environments\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment_id\xca\xf3\x18\x95\x01\x08\x03\x12\x18hybrid-cloud-environment\"\x1freq.hybrid_cloud_environment_id*V/accounts/{req.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment_id}\x82\xd3\xe4\x93\x02^*\\/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}\x12\xc2\x04\n\x19GenerateBootstrapCommands\x12\x38.qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsRequest\x1a\x39.qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsResponse\"\xaf\x03\x8a\xb5\x18\x1fwrite:hybrid_cloud_environments\x8a\xb5\x18\x15write:management_keys\xa8\xb5\x18\x01\xba\xb5\x18:\n\x1bhybrid_cloud_environment_id\x12\x1bhybrid_cloud_environment_id\xca\xf3\x18\xb2\x01\x08\x04\x12\x18hybrid-cloud-environment\"\x1freq.hybrid_cloud_environment_id*V/accounts/{req.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment_id}2\x1bgenerate-bootstrap-commands\x82\xd3\xe4\x93\x02t\"o/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}/bootstrap-commands:\x01*\x1a\x06\xc2\xb5\x18\x02\x08\x01\x42\xfb\x01\n\x1a\x63om.qdrant.cloud.hybrid.v1B\x10HybridCloudProtoP\x01ZPgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/hybrid/v1;hybridv1\xa2\x02\x03QCH\xaa\x02\x16Qdrant.Cloud.Hybrid.V1\xca\x02\x16Qdrant\\Cloud\\Hybrid\\V1\xe2\x02\"Qdrant\\Cloud\\Hybrid\\V1\\GPBMetadata\xea\x02\x19Qdrant::Cloud::Hybrid::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -139,16 +139,18 @@ _globals['_HYBRIDCLOUDSERVICE'].methods_by_name['DeleteHybridCloudEnvironment']._serialized_options = b'\212\265\030 delete:hybrid_cloud_environments\272\265\030:\n\033hybrid_cloud_environment_id\022\033hybrid_cloud_environment_id\312\363\030\225\001\010\003\022\030hybrid-cloud-environment\"\037req.hybrid_cloud_environment_id*V/accounts/{req.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment_id}\202\323\344\223\002^*\\/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}' _globals['_HYBRIDCLOUDSERVICE'].methods_by_name['GenerateBootstrapCommands']._loaded_options = None _globals['_HYBRIDCLOUDSERVICE'].methods_by_name['GenerateBootstrapCommands']._serialized_options = b'\212\265\030\037write:hybrid_cloud_environments\212\265\030\025write:management_keys\250\265\030\001\272\265\030:\n\033hybrid_cloud_environment_id\022\033hybrid_cloud_environment_id\312\363\030\262\001\010\004\022\030hybrid-cloud-environment\"\037req.hybrid_cloud_environment_id*V/accounts/{req.account_id}/hybrid-cloud-environments/{req.hybrid_cloud_environment_id}2\033generate-bootstrap-commands\202\323\344\223\002t\"o/api/hybrid/v1/accounts/{account_id}/hybrid-cloud-environments/{hybrid_cloud_environment_id}/bootstrap-commands:\001*' - _globals['_HYBRIDCLOUDENVIRONMENTCONFIGURATIONLOGLEVEL']._serialized_start=8759 - _globals['_HYBRIDCLOUDENVIRONMENTCONFIGURATIONLOGLEVEL']._serialized_end=9108 - _globals['_QDRANTCLUSTERCREATIONSTATUS']._serialized_start=9111 - _globals['_QDRANTCLUSTERCREATIONSTATUS']._serialized_end=9276 - _globals['_HYBRIDCLOUDENVIRONMENTSTATUSPHASE']._serialized_start=9279 - _globals['_HYBRIDCLOUDENVIRONMENTSTATUSPHASE']._serialized_end=9529 - _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUSPHASE']._serialized_start=9532 - _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUSPHASE']._serialized_end=9826 - _globals['_KUBERNETESDISTRIBUTION']._serialized_start=9829 - _globals['_KUBERNETESDISTRIBUTION']._serialized_end=10350 + _globals['_HYBRIDCLOUDENVIRONMENTCONFIGURATIONLOGLEVEL']._serialized_start=8886 + _globals['_HYBRIDCLOUDENVIRONMENTCONFIGURATIONLOGLEVEL']._serialized_end=9235 + _globals['_QDRANTCLUSTERCREATIONSTATUS']._serialized_start=9238 + _globals['_QDRANTCLUSTERCREATIONSTATUS']._serialized_end=9403 + _globals['_STORAGECONFIGURATIONREADINESS']._serialized_start=9406 + _globals['_STORAGECONFIGURATIONREADINESS']._serialized_end=9621 + _globals['_HYBRIDCLOUDENVIRONMENTSTATUSPHASE']._serialized_start=9624 + _globals['_HYBRIDCLOUDENVIRONMENTSTATUSPHASE']._serialized_end=9874 + _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUSPHASE']._serialized_start=9877 + _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUSPHASE']._serialized_end=10171 + _globals['_KUBERNETESDISTRIBUTION']._serialized_start=10174 + _globals['_KUBERNETESDISTRIBUTION']._serialized_end=10695 _globals['_GENERATEBOOTSTRAPCOMMANDSREQUEST']._serialized_start=304 _globals['_GENERATEBOOTSTRAPCOMMANDSREQUEST']._serialized_end=452 _globals['_GENERATEBOOTSTRAPCOMMANDSRESPONSE']._serialized_start=455 @@ -178,21 +180,21 @@ _globals['_HYBRIDCLOUDENVIRONMENTCONFIGURATION']._serialized_start=4239 _globals['_HYBRIDCLOUDENVIRONMENTCONFIGURATION']._serialized_end=6021 _globals['_HYBRIDCLOUDENVIRONMENTSTATUS']._serialized_start=6024 - _globals['_HYBRIDCLOUDENVIRONMENTSTATUS']._serialized_end=7196 - _globals['_HYBRIDCLOUDENVIRONMENTCAPABILITIES']._serialized_start=7198 - _globals['_HYBRIDCLOUDENVIRONMENTCAPABILITIES']._serialized_end=7318 - _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUS']._serialized_start=7321 - _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUS']._serialized_end=7614 - _globals['_HYBRIDCLOUDENVIRONMENTSTORAGECLASS']._serialized_start=7617 - _globals['_HYBRIDCLOUDENVIRONMENTSTORAGECLASS']._serialized_end=7910 - _globals['_HYBRIDCLOUDENVIRONMENTVOLUMESNAPSHOTCLASS']._serialized_start=7912 - _globals['_HYBRIDCLOUDENVIRONMENTVOLUMESNAPSHOTCLASS']._serialized_end=8017 - _globals['_HYBRIDCLOUDENVIRONMENTVOLUMEATTRIBUTESCLASS']._serialized_start=8020 - _globals['_HYBRIDCLOUDENVIRONMENTVOLUMEATTRIBUTESCLASS']._serialized_end=8193 - _globals['_HYBRIDCLOUDENVIRONMENTNODEINFO']._serialized_start=8196 - _globals['_HYBRIDCLOUDENVIRONMENTNODEINFO']._serialized_end=8606 - _globals['_HYBRIDCLOUDENVIRONMENTNODERESOURCEINFO']._serialized_start=8609 - _globals['_HYBRIDCLOUDENVIRONMENTNODERESOURCEINFO']._serialized_end=8756 - _globals['_HYBRIDCLOUDSERVICE']._serialized_start=10353 - _globals['_HYBRIDCLOUDSERVICE']._serialized_end=13302 + _globals['_HYBRIDCLOUDENVIRONMENTSTATUS']._serialized_end=7323 + _globals['_HYBRIDCLOUDENVIRONMENTCAPABILITIES']._serialized_start=7325 + _globals['_HYBRIDCLOUDENVIRONMENTCAPABILITIES']._serialized_end=7445 + _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUS']._serialized_start=7448 + _globals['_HYBRIDCLOUDENVIRONMENTCOMPONENTSTATUS']._serialized_end=7741 + _globals['_HYBRIDCLOUDENVIRONMENTSTORAGECLASS']._serialized_start=7744 + _globals['_HYBRIDCLOUDENVIRONMENTSTORAGECLASS']._serialized_end=8037 + _globals['_HYBRIDCLOUDENVIRONMENTVOLUMESNAPSHOTCLASS']._serialized_start=8039 + _globals['_HYBRIDCLOUDENVIRONMENTVOLUMESNAPSHOTCLASS']._serialized_end=8144 + _globals['_HYBRIDCLOUDENVIRONMENTVOLUMEATTRIBUTESCLASS']._serialized_start=8147 + _globals['_HYBRIDCLOUDENVIRONMENTVOLUMEATTRIBUTESCLASS']._serialized_end=8320 + _globals['_HYBRIDCLOUDENVIRONMENTNODEINFO']._serialized_start=8323 + _globals['_HYBRIDCLOUDENVIRONMENTNODEINFO']._serialized_end=8733 + _globals['_HYBRIDCLOUDENVIRONMENTNODERESOURCEINFO']._serialized_start=8736 + _globals['_HYBRIDCLOUDENVIRONMENTNODERESOURCEINFO']._serialized_end=8883 + _globals['_HYBRIDCLOUDSERVICE']._serialized_start=10698 + _globals['_HYBRIDCLOUDSERVICE']._serialized_end=13647 # @@protoc_insertion_point(module_scope) diff --git a/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.pyi b/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.pyi index 6cfebdf2..44e02020 100644 --- a/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.pyi +++ b/gen/python/qdrant/cloud/hybrid/v1/hybrid_cloud_pb2.pyi @@ -30,6 +30,13 @@ class QdrantClusterCreationStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrap QDRANT_CLUSTER_CREATION_STATUS_READY: _ClassVar[QdrantClusterCreationStatus] QDRANT_CLUSTER_CREATION_STATUS_NOT_READY: _ClassVar[QdrantClusterCreationStatus] +class StorageConfigurationReadiness(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + STORAGE_CONFIGURATION_READINESS_UNSPECIFIED: _ClassVar[StorageConfigurationReadiness] + STORAGE_CONFIGURATION_READINESS_READY: _ClassVar[StorageConfigurationReadiness] + STORAGE_CONFIGURATION_READINESS_NOT_READY: _ClassVar[StorageConfigurationReadiness] + STORAGE_CONFIGURATION_READINESS_INVALID: _ClassVar[StorageConfigurationReadiness] + class HybridCloudEnvironmentStatusPhase(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () HYBRID_CLOUD_ENVIRONMENT_STATUS_PHASE_UNSPECIFIED: _ClassVar[HybridCloudEnvironmentStatusPhase] @@ -68,6 +75,10 @@ HYBRID_CLOUD_ENVIRONMENT_CONFIGURATION_LOG_LEVEL_ERROR: HybridCloudEnvironmentCo QDRANT_CLUSTER_CREATION_STATUS_UNSPECIFIED: QdrantClusterCreationStatus QDRANT_CLUSTER_CREATION_STATUS_READY: QdrantClusterCreationStatus QDRANT_CLUSTER_CREATION_STATUS_NOT_READY: QdrantClusterCreationStatus +STORAGE_CONFIGURATION_READINESS_UNSPECIFIED: StorageConfigurationReadiness +STORAGE_CONFIGURATION_READINESS_READY: StorageConfigurationReadiness +STORAGE_CONFIGURATION_READINESS_NOT_READY: StorageConfigurationReadiness +STORAGE_CONFIGURATION_READINESS_INVALID: StorageConfigurationReadiness HYBRID_CLOUD_ENVIRONMENT_STATUS_PHASE_UNSPECIFIED: HybridCloudEnvironmentStatusPhase HYBRID_CLOUD_ENVIRONMENT_STATUS_PHASE_READY: HybridCloudEnvironmentStatusPhase HYBRID_CLOUD_ENVIRONMENT_STATUS_PHASE_NOT_READY: HybridCloudEnvironmentStatusPhase @@ -238,7 +249,7 @@ class HybridCloudEnvironmentConfiguration(_message.Message): def __init__(self, last_modified_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., namespace: _Optional[str] = ..., http_proxy_url: _Optional[str] = ..., https_proxy_url: _Optional[str] = ..., no_proxy_configs: _Optional[_Iterable[str]] = ..., container_registry_url: _Optional[str] = ..., chart_repository_url: _Optional[str] = ..., registry_secret_name: _Optional[str] = ..., ca_certificates: _Optional[str] = ..., database_storage_class: _Optional[str] = ..., snapshot_storage_class: _Optional[str] = ..., volume_snapshot_storage_class: _Optional[str] = ..., ingress: _Optional[_Iterable[_Union[_common_pb2.NetworkPolicyIngressRule, _Mapping]]] = ..., egress: _Optional[_Iterable[_Union[_common_pb2.NetworkPolicyEgressRule, _Mapping]]] = ..., log_level: _Optional[_Union[HybridCloudEnvironmentConfigurationLogLevel, str]] = ..., tolerations: _Optional[_Iterable[_Union[_cluster_pb2.Toleration, _Mapping]]] = ..., node_selector: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ..., advanced_operator_settings: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., control_plane_labels: _Optional[_Iterable[_Union[_common_pb2.KeyValue, _Mapping]]] = ...) -> None: ... class HybridCloudEnvironmentStatus(_message.Message): - __slots__ = ("last_modified_at", "phase", "kubernetes_version", "kubernetes_distribution", "number_of_nodes", "capabilities", "component_statuses", "cluster_creation_readiness", "message", "storage_classes", "volume_snapshot_classes", "volume_attributes_classes") + __slots__ = ("last_modified_at", "phase", "kubernetes_version", "kubernetes_distribution", "number_of_nodes", "capabilities", "component_statuses", "cluster_creation_readiness", "message", "storage_classes", "volume_snapshot_classes", "volume_attributes_classes", "storage_configuration_readiness") LAST_MODIFIED_AT_FIELD_NUMBER: _ClassVar[int] PHASE_FIELD_NUMBER: _ClassVar[int] KUBERNETES_VERSION_FIELD_NUMBER: _ClassVar[int] @@ -251,6 +262,7 @@ class HybridCloudEnvironmentStatus(_message.Message): STORAGE_CLASSES_FIELD_NUMBER: _ClassVar[int] VOLUME_SNAPSHOT_CLASSES_FIELD_NUMBER: _ClassVar[int] VOLUME_ATTRIBUTES_CLASSES_FIELD_NUMBER: _ClassVar[int] + STORAGE_CONFIGURATION_READINESS_FIELD_NUMBER: _ClassVar[int] last_modified_at: _timestamp_pb2.Timestamp phase: HybridCloudEnvironmentStatusPhase kubernetes_version: str @@ -263,7 +275,8 @@ class HybridCloudEnvironmentStatus(_message.Message): storage_classes: _containers.RepeatedCompositeFieldContainer[HybridCloudEnvironmentStorageClass] volume_snapshot_classes: _containers.RepeatedCompositeFieldContainer[HybridCloudEnvironmentVolumeSnapshotClass] volume_attributes_classes: _containers.RepeatedCompositeFieldContainer[HybridCloudEnvironmentVolumeAttributesClass] - def __init__(self, last_modified_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., phase: _Optional[_Union[HybridCloudEnvironmentStatusPhase, str]] = ..., kubernetes_version: _Optional[str] = ..., kubernetes_distribution: _Optional[_Union[KubernetesDistribution, str]] = ..., number_of_nodes: _Optional[int] = ..., capabilities: _Optional[_Union[HybridCloudEnvironmentCapabilities, _Mapping]] = ..., component_statuses: _Optional[_Iterable[_Union[HybridCloudEnvironmentComponentStatus, _Mapping]]] = ..., cluster_creation_readiness: _Optional[_Union[QdrantClusterCreationStatus, str]] = ..., message: _Optional[str] = ..., storage_classes: _Optional[_Iterable[_Union[HybridCloudEnvironmentStorageClass, _Mapping]]] = ..., volume_snapshot_classes: _Optional[_Iterable[_Union[HybridCloudEnvironmentVolumeSnapshotClass, _Mapping]]] = ..., volume_attributes_classes: _Optional[_Iterable[_Union[HybridCloudEnvironmentVolumeAttributesClass, _Mapping]]] = ...) -> None: ... + storage_configuration_readiness: StorageConfigurationReadiness + def __init__(self, last_modified_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., phase: _Optional[_Union[HybridCloudEnvironmentStatusPhase, str]] = ..., kubernetes_version: _Optional[str] = ..., kubernetes_distribution: _Optional[_Union[KubernetesDistribution, str]] = ..., number_of_nodes: _Optional[int] = ..., capabilities: _Optional[_Union[HybridCloudEnvironmentCapabilities, _Mapping]] = ..., component_statuses: _Optional[_Iterable[_Union[HybridCloudEnvironmentComponentStatus, _Mapping]]] = ..., cluster_creation_readiness: _Optional[_Union[QdrantClusterCreationStatus, str]] = ..., message: _Optional[str] = ..., storage_classes: _Optional[_Iterable[_Union[HybridCloudEnvironmentStorageClass, _Mapping]]] = ..., volume_snapshot_classes: _Optional[_Iterable[_Union[HybridCloudEnvironmentVolumeSnapshotClass, _Mapping]]] = ..., volume_attributes_classes: _Optional[_Iterable[_Union[HybridCloudEnvironmentVolumeAttributesClass, _Mapping]]] = ..., storage_configuration_readiness: _Optional[_Union[StorageConfigurationReadiness, str]] = ...) -> None: ... class HybridCloudEnvironmentCapabilities(_message.Message): __slots__ = ("volume_snapshot", "volume_expansion") diff --git a/gen/python/qdrant/cloud/platform/v1/platform_pb2.py b/gen/python/qdrant/cloud/platform/v1/platform_pb2.py index 8dbe7f71..f041ea70 100644 --- a/gen/python/qdrant/cloud/platform/v1/platform_pb2.py +++ b/gen/python/qdrant/cloud/platform/v1/platform_pb2.py @@ -27,7 +27,7 @@ from qdrant.cloud.common.v1 import common_pb2 as qdrant_dot_cloud_dot_common_dot_v1_dot_common__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'qdrant/cloud/platform/v1/platform.proto\x12\x18qdrant.cloud.platform.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a#qdrant/cloud/common/v1/common.proto\"D\n\x19ListCloudProvidersRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"[\n\x1aListCloudProvidersResponse\x12=\n\x05items\x18\x01 \x03(\x0b\x32\'.qdrant.cloud.platform.v1.CloudProviderR\x05items\"!\n\x1fListGlobalCloudProvidersRequest\"a\n ListGlobalCloudProvidersResponse\x12=\n\x05items\x18\x01 \x03(\x0b\x32\'.qdrant.cloud.platform.v1.CloudProviderR\x05items\"\\\n%ListGlobalCloudProviderRegionsRequest\x12\x33\n\x11\x63loud_provider_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\"m\n&ListGlobalCloudProviderRegionsResponse\x12\x43\n\x05items\x18\x01 \x03(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x05items\"\x80\x01\n#GetGlobalCloudProviderRegionRequest\x12\x33\n\x11\x63loud_provider_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\x12$\n\tregion_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08regionId\"m\n$GetGlobalCloudProviderRegionResponse\x12\x45\n\x06region\x18\x01 \x01(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x06region\"\x7f\n\x1fListCloudProviderRegionsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x33\n\x11\x63loud_provider_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\"g\n ListCloudProviderRegionsResponse\x12\x43\n\x05items\x18\x01 \x03(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x05items\"\xa3\x01\n\x1dGetCloudProviderRegionRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x33\n\x11\x63loud_provider_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\x12$\n\tregion_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08regionId\"g\n\x1eGetCloudProviderRegionResponse\x12\x45\n\x06region\x18\x01 \x01(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x06region\"\x80\x01\n\rCloudProvider\x12\x17\n\x02id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x02id\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1b\n\tfree_tier\x18\x03 \x01(\x08R\x08\x66reeTier\x12\x1c\n\tavailable\x18\x04 \x01(\x08R\tavailable\"\x80\x04\n\x13\x43loudProviderRegion\x12\x17\n\x02id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x02id\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1b\n\tfree_tier\x18\x03 \x01(\x08R\x08\x66reeTier\x12\x1c\n\tavailable\x18\x04 \x01(\x08R\tavailable\x12#\n\x08provider\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08provider\x12\x43\n\x10\x63ountry_iso_code\x18\x06 \x01(\tB\x14\xbaH\x11r\x0f\x32\n^[A-Z]{2}$\x98\x01\x02H\x00R\x0e\x63ountryIsoCode\x88\x01\x01\x12\x44\n\x17geographical_sub_region\x18\x07 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x01R\x15geographicalSubRegion\x88\x01\x01\x12*\n\tnamespace\x18\x08 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x02R\tnamespace\x88\x01\x01\x12]\n\x0c\x63\x61pabilities\x18\t \x01(\x0b\x32\x39.qdrant.cloud.platform.v1.CloudProviderRegionCapabilitiesR\x0c\x63\x61pabilitiesB\x13\n\x11_country_iso_codeB\x1a\n\x18_geographical_sub_regionB\x0c\n\n_namespace\"u\n\x1f\x43loudProviderRegionCapabilities\x12\'\n\x0fvolume_snapshot\x18\x01 \x01(\x08R\x0evolumeSnapshot\x12)\n\x10volume_expansion\x18\x02 \x01(\x08R\x0fvolumeExpansion2\xd4\x0c\n\x0fPlatformService\x12\xbf\x01\n\x18ListGlobalCloudProviders\x12\x39.qdrant.cloud.platform.v1.ListGlobalCloudProvidersRequest\x1a:.qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse\",\x98\xb5\x18\x00\x82\xd3\xe4\x93\x02\"\x12 /api/platform/v1/cloud-providers\x12\xc3\x01\n\x12ListCloudProviders\x12\x33.qdrant.cloud.platform.v1.ListCloudProvidersRequest\x1a\x34.qdrant.cloud.platform.v1.ListCloudProvidersResponse\"B\x8a\xb5\x18\x00\x82\xd3\xe4\x93\x02\x38\x12\x36/api/platform/v1/accounts/{account_id}/cloud-providers\x12\x97\x02\n\x1eListGlobalCloudProviderRegions\x12?.qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsRequest\x1a@.qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse\"r\x98\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\x82\xd3\xe4\x93\x02>\x12.qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse\"\x98\x01\x98\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\xba\xb5\x18\x16\n\tregion_id\x12\tregion_id\x82\xd3\xe4\x93\x02J\x12H/api/platform/v1/cloud-providers/{cloud_provider_id}/regions/{region_id}\x12\x9c\x02\n\x18ListCloudProviderRegions\x12\x39.qdrant.cloud.platform.v1.ListCloudProviderRegionsRequest\x1a:.qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse\"\x88\x01\x8a\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\x82\xd3\xe4\x93\x02T\x12R/api/platform/v1/accounts/{account_id}/cloud-providers/{cloud_provider_id}/regions\x12\xbc\x02\n\x16GetCloudProviderRegion\x12\x37.qdrant.cloud.platform.v1.GetCloudProviderRegionRequest\x1a\x38.qdrant.cloud.platform.v1.GetCloudProviderRegionResponse\"\xae\x01\x8a\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\xba\xb5\x18\x16\n\tregion_id\x12\tregion_id\x82\xd3\xe4\x93\x02`\x12^/api/platform/v1/accounts/{account_id}/cloud-providers/{cloud_provider_id}/regions/{region_id}\x1a\x06\xc2\xb5\x18\x02\x08\x01\x42\x86\x02\n\x1c\x63om.qdrant.cloud.platform.v1B\rPlatformProtoP\x01ZTgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/platform/v1;platformv1\xa2\x02\x03QCP\xaa\x02\x18Qdrant.Cloud.Platform.V1\xca\x02\x18Qdrant\\Cloud\\Platform\\V1\xe2\x02$Qdrant\\Cloud\\Platform\\V1\\GPBMetadata\xea\x02\x1bQdrant::Cloud::Platform::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'qdrant/cloud/platform/v1/platform.proto\x12\x18qdrant.cloud.platform.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a#qdrant/cloud/common/v1/common.proto\"D\n\x19ListCloudProvidersRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"[\n\x1aListCloudProvidersResponse\x12=\n\x05items\x18\x01 \x03(\x0b\x32\'.qdrant.cloud.platform.v1.CloudProviderR\x05items\"!\n\x1fListGlobalCloudProvidersRequest\"a\n ListGlobalCloudProvidersResponse\x12=\n\x05items\x18\x01 \x03(\x0b\x32\'.qdrant.cloud.platform.v1.CloudProviderR\x05items\"\\\n%ListGlobalCloudProviderRegionsRequest\x12\x33\n\x11\x63loud_provider_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\"m\n&ListGlobalCloudProviderRegionsResponse\x12\x43\n\x05items\x18\x01 \x03(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x05items\"\x80\x01\n#GetGlobalCloudProviderRegionRequest\x12\x33\n\x11\x63loud_provider_id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\x12$\n\tregion_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08regionId\"m\n$GetGlobalCloudProviderRegionResponse\x12\x45\n\x06region\x18\x01 \x01(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x06region\"\x7f\n\x1fListCloudProviderRegionsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x33\n\x11\x63loud_provider_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\"g\n ListCloudProviderRegionsResponse\x12\x43\n\x05items\x18\x01 \x03(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x05items\"\xa3\x01\n\x1dGetCloudProviderRegionRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x33\n\x11\x63loud_provider_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x0f\x63loudProviderId\x12$\n\tregion_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08regionId\"g\n\x1eGetCloudProviderRegionResponse\x12\x45\n\x06region\x18\x01 \x01(\x0b\x32-.qdrant.cloud.platform.v1.CloudProviderRegionR\x06region\"\x80\x01\n\rCloudProvider\x12\x17\n\x02id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x03R\x02id\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1b\n\tfree_tier\x18\x03 \x01(\x08R\x08\x66reeTier\x12\x1c\n\tavailable\x18\x04 \x01(\x08R\tavailable\"\x83\x05\n\x13\x43loudProviderRegion\x12\x17\n\x02id\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x02id\x12\x1b\n\x04name\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04name\x12\x1b\n\tfree_tier\x18\x03 \x01(\x08R\x08\x66reeTier\x12\x1c\n\tavailable\x18\x04 \x01(\x08R\tavailable\x12#\n\x08provider\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08provider\x12\x43\n\x10\x63ountry_iso_code\x18\x06 \x01(\tB\x14\xbaH\x11r\x0f\x32\n^[A-Z]{2}$\x98\x01\x02H\x00R\x0e\x63ountryIsoCode\x88\x01\x01\x12\x44\n\x17geographical_sub_region\x18\x07 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x01R\x15geographicalSubRegion\x88\x01\x01\x12*\n\tnamespace\x18\x08 \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x02R\tnamespace\x88\x01\x01\x12]\n\x0c\x63\x61pabilities\x18\t \x01(\x0b\x32\x39.qdrant.cloud.platform.v1.CloudProviderRegionCapabilitiesR\x0c\x63\x61pabilities\x12\x80\x01\n cluster_creation_blocking_reason\x18\n \x01(\x0e\x32\x37.qdrant.cloud.platform.v1.ClusterCreationBlockingReasonR\x1d\x63lusterCreationBlockingReasonB\x13\n\x11_country_iso_codeB\x1a\n\x18_geographical_sub_regionB\x0c\n\n_namespace\"u\n\x1f\x43loudProviderRegionCapabilities\x12\'\n\x0fvolume_snapshot\x18\x01 \x01(\x08R\x0evolumeSnapshot\x12)\n\x10volume_expansion\x18\x02 \x01(\x08R\x0fvolumeExpansion*\xfe\x01\n\x1d\x43lusterCreationBlockingReason\x12\x30\n,CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED\x10\x00\x12)\n%CLUSTER_CREATION_BLOCKING_REASON_NONE\x10\x01\x12:\n6CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY\x10\x02\x12\x44\n@CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY\x10\x03\x32\xd4\x0c\n\x0fPlatformService\x12\xbf\x01\n\x18ListGlobalCloudProviders\x12\x39.qdrant.cloud.platform.v1.ListGlobalCloudProvidersRequest\x1a:.qdrant.cloud.platform.v1.ListGlobalCloudProvidersResponse\",\x98\xb5\x18\x00\x82\xd3\xe4\x93\x02\"\x12 /api/platform/v1/cloud-providers\x12\xc3\x01\n\x12ListCloudProviders\x12\x33.qdrant.cloud.platform.v1.ListCloudProvidersRequest\x1a\x34.qdrant.cloud.platform.v1.ListCloudProvidersResponse\"B\x8a\xb5\x18\x00\x82\xd3\xe4\x93\x02\x38\x12\x36/api/platform/v1/accounts/{account_id}/cloud-providers\x12\x97\x02\n\x1eListGlobalCloudProviderRegions\x12?.qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsRequest\x1a@.qdrant.cloud.platform.v1.ListGlobalCloudProviderRegionsResponse\"r\x98\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\x82\xd3\xe4\x93\x02>\x12.qdrant.cloud.platform.v1.GetGlobalCloudProviderRegionResponse\"\x98\x01\x98\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\xba\xb5\x18\x16\n\tregion_id\x12\tregion_id\x82\xd3\xe4\x93\x02J\x12H/api/platform/v1/cloud-providers/{cloud_provider_id}/regions/{region_id}\x12\x9c\x02\n\x18ListCloudProviderRegions\x12\x39.qdrant.cloud.platform.v1.ListCloudProviderRegionsRequest\x1a:.qdrant.cloud.platform.v1.ListCloudProviderRegionsResponse\"\x88\x01\x8a\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\x82\xd3\xe4\x93\x02T\x12R/api/platform/v1/accounts/{account_id}/cloud-providers/{cloud_provider_id}/regions\x12\xbc\x02\n\x16GetCloudProviderRegion\x12\x37.qdrant.cloud.platform.v1.GetCloudProviderRegionRequest\x1a\x38.qdrant.cloud.platform.v1.GetCloudProviderRegionResponse\"\xae\x01\x8a\xb5\x18\x00\xba\xb5\x18&\n\x11\x63loud_provider_id\x12\x11\x63loud_provider_id\xba\xb5\x18\x16\n\tregion_id\x12\tregion_id\x82\xd3\xe4\x93\x02`\x12^/api/platform/v1/accounts/{account_id}/cloud-providers/{cloud_provider_id}/regions/{region_id}\x1a\x06\xc2\xb5\x18\x02\x08\x01\x42\x86\x02\n\x1c\x63om.qdrant.cloud.platform.v1B\rPlatformProtoP\x01ZTgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/platform/v1;platformv1\xa2\x02\x03QCP\xaa\x02\x18Qdrant.Cloud.Platform.V1\xca\x02\x18Qdrant\\Cloud\\Platform\\V1\xe2\x02$Qdrant\\Cloud\\Platform\\V1\\GPBMetadata\xea\x02\x1bQdrant::Cloud::Platform::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -83,6 +83,8 @@ _globals['_PLATFORMSERVICE'].methods_by_name['ListCloudProviderRegions']._serialized_options = b'\212\265\030\000\272\265\030&\n\021cloud_provider_id\022\021cloud_provider_id\202\323\344\223\002T\022R/api/platform/v1/accounts/{account_id}/cloud-providers/{cloud_provider_id}/regions' _globals['_PLATFORMSERVICE'].methods_by_name['GetCloudProviderRegion']._loaded_options = None _globals['_PLATFORMSERVICE'].methods_by_name['GetCloudProviderRegion']._serialized_options = b'\212\265\030\000\272\265\030&\n\021cloud_provider_id\022\021cloud_provider_id\272\265\030\026\n\tregion_id\022\tregion_id\202\323\344\223\002`\022^/api/platform/v1/accounts/{account_id}/cloud-providers/{cloud_provider_id}/regions/{region_id}' + _globals['_CLUSTERCREATIONBLOCKINGREASON']._serialized_start=2311 + _globals['_CLUSTERCREATIONBLOCKINGREASON']._serialized_end=2565 _globals['_LISTCLOUDPROVIDERSREQUEST']._serialized_start=165 _globals['_LISTCLOUDPROVIDERSREQUEST']._serialized_end=233 _globals['_LISTCLOUDPROVIDERSRESPONSE']._serialized_start=235 @@ -110,9 +112,9 @@ _globals['_CLOUDPROVIDER']._serialized_start=1415 _globals['_CLOUDPROVIDER']._serialized_end=1543 _globals['_CLOUDPROVIDERREGION']._serialized_start=1546 - _globals['_CLOUDPROVIDERREGION']._serialized_end=2058 - _globals['_CLOUDPROVIDERREGIONCAPABILITIES']._serialized_start=2060 - _globals['_CLOUDPROVIDERREGIONCAPABILITIES']._serialized_end=2177 - _globals['_PLATFORMSERVICE']._serialized_start=2180 - _globals['_PLATFORMSERVICE']._serialized_end=3800 + _globals['_CLOUDPROVIDERREGION']._serialized_end=2189 + _globals['_CLOUDPROVIDERREGIONCAPABILITIES']._serialized_start=2191 + _globals['_CLOUDPROVIDERREGIONCAPABILITIES']._serialized_end=2308 + _globals['_PLATFORMSERVICE']._serialized_start=2568 + _globals['_PLATFORMSERVICE']._serialized_end=4188 # @@protoc_insertion_point(module_scope) diff --git a/gen/python/qdrant/cloud/platform/v1/platform_pb2.pyi b/gen/python/qdrant/cloud/platform/v1/platform_pb2.pyi index 3039ccb2..cdc75440 100644 --- a/gen/python/qdrant/cloud/platform/v1/platform_pb2.pyi +++ b/gen/python/qdrant/cloud/platform/v1/platform_pb2.pyi @@ -2,6 +2,7 @@ from buf.validate import validate_pb2 as _validate_pb2 from google.api import annotations_pb2 as _annotations_pb2 from qdrant.cloud.common.v1 import common_pb2 as _common_pb2 from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from collections.abc import Iterable as _Iterable, Mapping as _Mapping @@ -9,6 +10,17 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class ClusterCreationBlockingReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED: _ClassVar[ClusterCreationBlockingReason] + CLUSTER_CREATION_BLOCKING_REASON_NONE: _ClassVar[ClusterCreationBlockingReason] + CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY: _ClassVar[ClusterCreationBlockingReason] + CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY: _ClassVar[ClusterCreationBlockingReason] +CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED: ClusterCreationBlockingReason +CLUSTER_CREATION_BLOCKING_REASON_NONE: ClusterCreationBlockingReason +CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY: ClusterCreationBlockingReason +CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY: ClusterCreationBlockingReason + class ListCloudProvidersRequest(_message.Message): __slots__ = ("account_id",) ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] @@ -100,7 +112,7 @@ class CloudProvider(_message.Message): def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., free_tier: _Optional[bool] = ..., available: _Optional[bool] = ...) -> None: ... class CloudProviderRegion(_message.Message): - __slots__ = ("id", "name", "free_tier", "available", "provider", "country_iso_code", "geographical_sub_region", "namespace", "capabilities") + __slots__ = ("id", "name", "free_tier", "available", "provider", "country_iso_code", "geographical_sub_region", "namespace", "capabilities", "cluster_creation_blocking_reason") ID_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] FREE_TIER_FIELD_NUMBER: _ClassVar[int] @@ -110,6 +122,7 @@ class CloudProviderRegion(_message.Message): GEOGRAPHICAL_SUB_REGION_FIELD_NUMBER: _ClassVar[int] NAMESPACE_FIELD_NUMBER: _ClassVar[int] CAPABILITIES_FIELD_NUMBER: _ClassVar[int] + CLUSTER_CREATION_BLOCKING_REASON_FIELD_NUMBER: _ClassVar[int] id: str name: str free_tier: bool @@ -119,7 +132,8 @@ class CloudProviderRegion(_message.Message): geographical_sub_region: str namespace: str capabilities: CloudProviderRegionCapabilities - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., free_tier: _Optional[bool] = ..., available: _Optional[bool] = ..., provider: _Optional[str] = ..., country_iso_code: _Optional[str] = ..., geographical_sub_region: _Optional[str] = ..., namespace: _Optional[str] = ..., capabilities: _Optional[_Union[CloudProviderRegionCapabilities, _Mapping]] = ...) -> None: ... + cluster_creation_blocking_reason: ClusterCreationBlockingReason + def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., free_tier: _Optional[bool] = ..., available: _Optional[bool] = ..., provider: _Optional[str] = ..., country_iso_code: _Optional[str] = ..., geographical_sub_region: _Optional[str] = ..., namespace: _Optional[str] = ..., capabilities: _Optional[_Union[CloudProviderRegionCapabilities, _Mapping]] = ..., cluster_creation_blocking_reason: _Optional[_Union[ClusterCreationBlockingReason, str]] = ...) -> None: ... class CloudProviderRegionCapabilities(_message.Message): __slots__ = ("volume_snapshot", "volume_expansion") diff --git a/gen/typescript/google/rpc/error_details_pb.d.ts b/gen/typescript/google/rpc/error_details_pb.d.ts index c694ec69..cd11bb68 100644 --- a/gen/typescript/google/rpc/error_details_pb.d.ts +++ b/gen/typescript/google/rpc/error_details_pb.d.ts @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -447,17 +447,17 @@ export declare type BadRequest_FieldViolation = Message<"google.rpc.BadRequest.F * In this example, in proto `field` could take one of the following values: * * * `full_name` for a violation in the `full_name` value - * * `email_addresses[1].email` for a violation in the `email` field of the + * * `email_addresses[0].email` for a violation in the `email` field of the * first `email_addresses` message - * * `email_addresses[3].type[2]` for a violation in the second `type` + * * `email_addresses[2].type[1]` for a violation in the second `type` * value in the third `email_addresses` message. * * In JSON, the same values are represented as: * * * `fullName` for a violation in the `fullName` value - * * `emailAddresses[1].email` for a violation in the `email` field of the + * * `emailAddresses[0].email` for a violation in the `email` field of the * first `emailAddresses` message - * * `emailAddresses[3].type[2]` for a violation in the second `type` + * * `emailAddresses[2].type[1]` for a violation in the second `type` * value in the third `emailAddresses` message. * * @generated from field: string field = 1; diff --git a/gen/typescript/google/rpc/error_details_pb.js b/gen/typescript/google/rpc/error_details_pb.js index 71474f88..a4b64eb1 100644 --- a/gen/typescript/google/rpc/error_details_pb.js +++ b/gen/typescript/google/rpc/error_details_pb.js @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 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/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.d.ts b/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.d.ts index ecd456ff..a6346093 100644 --- a/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.d.ts +++ b/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.d.ts @@ -811,6 +811,13 @@ export declare type HybridCloudEnvironmentStatus = Message<"qdrant.cloud.hybrid. * @generated from field: repeated qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass volume_attributes_classes = 14; */ volumeAttributesClasses: HybridCloudEnvironmentVolumeAttributesClass[]; + + /** + * Expresses the storage configuration state of the hybrid cloud environment. + * + * @generated from field: qdrant.cloud.hybrid.v1.StorageConfigurationReadiness storage_configuration_readiness = 15; + */ + storageConfigurationReadiness: StorageConfigurationReadiness; }; /** @@ -902,6 +909,13 @@ export declare type HybridCloudEnvironmentStatusValid = Message<"qdrant.cloud.hy * @generated from field: repeated qdrant.cloud.hybrid.v1.HybridCloudEnvironmentVolumeAttributesClass volume_attributes_classes = 14; */ volumeAttributesClasses: HybridCloudEnvironmentVolumeAttributesClassValid[]; + + /** + * Expresses the storage configuration state of the hybrid cloud environment. + * + * @generated from field: qdrant.cloud.hybrid.v1.StorageConfigurationReadiness storage_configuration_readiness = 15; + */ + storageConfigurationReadiness: StorageConfigurationReadiness; }; /** @@ -1298,6 +1312,46 @@ export enum QdrantClusterCreationStatus { */ export declare const QdrantClusterCreationStatusSchema: GenEnum; +/** + * StorageConfigurationReadiness expresses the storage configuration state of the hybrid cloud environment. + * + * @generated from enum qdrant.cloud.hybrid.v1.StorageConfigurationReadiness + */ +export enum StorageConfigurationReadiness { + /** + * Default/unknown, safe fallback + * + * @generated from enum value: STORAGE_CONFIGURATION_READINESS_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * Storage config explicitly set + * + * @generated from enum value: STORAGE_CONFIGURATION_READINESS_READY = 1; + */ + READY = 1, + + /** + * Storage config absent + * + * @generated from enum value: STORAGE_CONFIGURATION_READINESS_NOT_READY = 2; + */ + NOT_READY = 2, + + /** + * Config present but invalid + * + * @generated from enum value: STORAGE_CONFIGURATION_READINESS_INVALID = 3; + */ + INVALID = 3, +} + +/** + * Describes the enum qdrant.cloud.hybrid.v1.StorageConfigurationReadiness. + */ +export declare const StorageConfigurationReadinessSchema: GenEnum; + /** * Status phase of hybrid cloud environment * diff --git a/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.js b/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.js index 4f9d9e73..b0390fb8 100644 --- a/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.js +++ b/gen/typescript/qdrant/cloud/hybrid/v1/hybrid_cloud_pb.js @@ -14,7 +14,7 @@ import { file_qdrant_cloud_event_v1_events } from "../../event/v1/events_pb.js"; * Describes the file qdrant/cloud/hybrid/v1/hybrid_cloud.proto. */ export const file_qdrant_cloud_hybrid_v1_hybrid_cloud = /*@__PURE__*/ - fileDesc("CilxZHJhbnQvY2xvdWQvaHlicmlkL3YxL2h5YnJpZF9jbG91ZC5wcm90bxIWcWRyYW50LmNsb3VkLmh5YnJpZC52MSJvCiBHZW5lcmF0ZUJvb3RzdHJhcENvbW1hbmRzUmVxdWVzdBIcCgphY2NvdW50X2lkGAEgASgJQgi6SAVyA7ABARItChtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWQYAiABKAlCCLpIBXIDsAEBIn8KIUdlbmVyYXRlQm9vdHN0cmFwQ29tbWFuZHNSZXNwb25zZRIQCghjb21tYW5kcxgBIAMoCRISCgphY2Nlc3Nfa2V5GAIgASgJEhkKEXJlZ2lzdHJ5X3VzZXJuYW1lGAMgASgJEhkKEXJlZ2lzdHJ5X3Bhc3N3b3JkGAQgASgJInIKI0RlbGV0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEi0KG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZBgCIAEoCUIIukgFcgOwAQEiJgokRGVsZXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlIpQCCiNVcGRhdGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVxdWVzdBJYChhoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQYASABKAsyLi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRCBrpIA8gBATqSAbpIjgEaiwEKKnVwZGF0ZV9oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWRfcHJlc2VudBI1aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkIGlzIHJlcXVpcmVkIGZvciBhbiB1cGRhdGUaJnRoaXMuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkICE9ICcnIoABCiRVcGRhdGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVzcG9uc2USWAoYaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50GAEgASgLMi4ucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Qga6SAPIAQEi1gMKI0NyZWF0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0ElgKGGh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudBgBIAEoCzIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudEIGukgDyAEBOtQCukjQAhrNAgozY3JlYXRlX2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5ub19yZWFkX29ubHlfZmllbGRzElVyZWFkLW9ubHkgZmllbGRzIChpZCwgY3JlYXRlZF9hdCwgbGFzdF9tb2RpZmllZF9hdCwgc3RhdHVzKSBtdXN0IG5vdCBiZSBzZXQgb24gY3JlYXRlGr4BdGhpcy5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWQgPT0gJycgJiYgIWhhcyh0aGlzLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5jcmVhdGVkX2F0KSAmJiAhaGFzKHRoaXMuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50Lmxhc3RfbW9kaWZpZWRfYXQpICYmICFoYXModGhpcy5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuc3RhdHVzKSKAAQokQ3JlYXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlElgKGGh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudBgBIAEoCzIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudEIGukgDyAEBIm8KIEdldEh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEi0KG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZBgCIAEoCUIIukgFcgOwAQEifQohR2V0SHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlElgKGGh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudBgBIAEoCzIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudEIGukgDyAEBIkIKIkxpc3RIeWJyaWRDbG91ZEVudmlyb25tZW50c1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQEiZAojTGlzdEh5YnJpZENsb3VkRW52aXJvbm1lbnRzUmVzcG9uc2USPQoFaXRlbXMYASADKAsyLi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnQilA0KFkh5YnJpZENsb3VkRW52aXJvbm1lbnQSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQESCgoCaWQYAiABKAkSLgoKY3JlYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbGFzdF9tb2RpZmllZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKQoEbmFtZRgFIAEoCUIbukgYchYQARhAMhBeW2EtekEtWjAtOS1fXSskEqoBChBjcmVhdGVkX2J5X2VtYWlsGAYgASgJQo8BukiLAboBhwEKKWh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5jcmVhdGVkX2J5X2VtYWlsEjZpZiBzZXQsIGNyZWF0ZWRfYnlfZW1haWwgbXVzdCBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MaInRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5pc0VtYWlsKCkSJAocYm9vdHN0cmFwX2NvbW1hbmRzX2dlbmVyYXRlZBgTIAEoCBJXCg1jb25maWd1cmF0aW9uGBQgASgLMjsucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Q29uZmlndXJhdGlvbkgAiAEBEkkKBnN0YXR1cxgVIAEoCzI0LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudFN0YXR1c0gBiAEBOqoIukimCBq0AQobaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkEhp2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVVJRBp5dGhpcy5pZC5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpIHx8ICFoYXModGhpcy5jcmVhdGVkX2F0KRrqAQopaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50Lmxhc3RfbW9kaWZpZWRfYXQSWmxhc3RfbW9kaWZpZWRfYXQgbXVzdCBiZSBzZXQgaWYgY3JlYXRlZF9hdCBpcyBzZXQgYW5kIG11c3QgYmUgYWZ0ZXIgb3IgZXF1YWwgdG8gY3JlYXRlZF9hdBphIWhhcyh0aGlzLmNyZWF0ZWRfYXQpIHx8IChoYXModGhpcy5sYXN0X21vZGlmaWVkX2F0KSAmJiB0aGlzLmxhc3RfbW9kaWZpZWRfYXQgPj0gdGhpcy5jcmVhdGVkX2F0KRrTAgo3aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmNvbmZpZ3VyYXRpb24ubGFzdF9tb2RpZmllZF9hdBJ8Y29uZmlndXJhdGlvbi5sYXN0X21vZGlmaWVkX2F0IG11c3QgYmUgc2V0IGlmIGNvbmZpZ3VyYXRpb24gYW5kIGNyZWF0ZWRfYXQgYXJlIHNldCwgYW5kIG11c3QgYmUgYWZ0ZXIgb3IgZXF1YWwgdG8gY3JlYXRlZF9hdBqZASFoYXModGhpcy5jb25maWd1cmF0aW9uKSB8fCAhaGFzKHRoaXMuY3JlYXRlZF9hdCkgfHwgKGhhcyh0aGlzLmNvbmZpZ3VyYXRpb24ubGFzdF9tb2RpZmllZF9hdCkgJiYgdGhpcy5jb25maWd1cmF0aW9uLmxhc3RfbW9kaWZpZWRfYXQgPj0gdGhpcy5jcmVhdGVkX2F0KRqpAgowaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LnN0YXR1cy5sYXN0X21vZGlmaWVkX2F0Em5zdGF0dXMubGFzdF9tb2RpZmllZF9hdCBtdXN0IGJlIHNldCBpZiBzdGF0dXMgYW5kIGNyZWF0ZWRfYXQgYXJlIHNldCwgYW5kIG11c3QgYmUgYWZ0ZXIgb3IgZXF1YWwgdG8gY3JlYXRlZF9hdBqEASFoYXModGhpcy5zdGF0dXMpIHx8ICFoYXModGhpcy5jcmVhdGVkX2F0KSB8fCAoaGFzKHRoaXMuc3RhdHVzLmxhc3RfbW9kaWZpZWRfYXQpICYmIHRoaXMuc3RhdHVzLmxhc3RfbW9kaWZpZWRfYXQgPj0gdGhpcy5jcmVhdGVkX2F0KUIQCg5fY29uZmlndXJhdGlvbkIJCgdfc3RhdHVzIrMLCiNIeWJyaWRDbG91ZEVudmlyb25tZW50Q29uZmlndXJhdGlvbhI0ChBsYXN0X21vZGlmaWVkX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+CgluYW1lc3BhY2UYBCABKAlCK7pIKHImEAEY/QEyH15bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyQSJQoOaHR0cF9wcm94eV91cmwYBSABKAlCCLpIBXIDiAEBSACIAQESJgoPaHR0cHNfcHJveHlfdXJsGAYgASgJQgi6SAVyA4gBAUgBiAEBEhgKEG5vX3Byb3h5X2NvbmZpZ3MYByADKAkSXwoWY29udGFpbmVyX3JlZ2lzdHJ5X3VybBgIIAEoCUI6ukg3cjUYgBAyMF4oW2EtekEtWjAtOS4tXSsoOlswLTldKyk/KSgvW2EtekEtWjAtOV8uLy1dKykqJEgCiAEBEncKFGNoYXJ0X3JlcG9zaXRvcnlfdXJsGAkgASgJQlS6SFFyTxiAEDJKXlthLXpBLVpdW2EtekEtWjAtOSsuLV0qOi8vKFthLXpBLVowLTkuLV0rKDpbMC05XSspPykoL1thLXpBLVowLTlfLi8tXSspKiRIA4gBARIhChRyZWdpc3RyeV9zZWNyZXRfbmFtZRgKIAEoCUgEiAEBEhwKD2NhX2NlcnRpZmljYXRlcxgLIAEoCUgFiAEBEiwKFmRhdGFiYXNlX3N0b3JhZ2VfY2xhc3MYDCABKAlCB7pIBHICEAFIBogBARIsChZzbmFwc2hvdF9zdG9yYWdlX2NsYXNzGA0gASgJQge6SARyAhABSAeIAQESMwoddm9sdW1lX3NuYXBzaG90X3N0b3JhZ2VfY2xhc3MYDiABKAlCB7pIBHICEAFICIgBARJBCgdpbmdyZXNzGA8gAygLMjAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5OZXR3b3JrUG9saWN5SW5ncmVzc1J1bGUSPwoGZWdyZXNzGBAgAygLMi8ucWRyYW50LmNsb3VkLmNvbW1vbi52MS5OZXR3b3JrUG9saWN5RWdyZXNzUnVsZRJnCglsb2dfbGV2ZWwYFSABKA4yQy5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRDb25maWd1cmF0aW9uTG9nTGV2ZWxCCrpIB4IBBBABIABICYgBARI4Cgt0b2xlcmF0aW9ucxgWIAMoCzIjLnFkcmFudC5jbG91ZC5jbHVzdGVyLnYxLlRvbGVyYXRpb24SQQoNbm9kZV9zZWxlY3RvchgXIAMoCzIgLnFkcmFudC5jbG91ZC5jb21tb24udjEuS2V5VmFsdWVCCLpIBZIBAhAKEkAKGmFkdmFuY2VkX29wZXJhdG9yX3NldHRpbmdzGBggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgKiAEBEkgKFGNvbnRyb2xfcGxhbmVfbGFiZWxzGBkgAygLMiAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5LZXlWYWx1ZUIIukgFkgECEApCEQoPX2h0dHBfcHJveHlfdXJsQhIKEF9odHRwc19wcm94eV91cmxCGQoXX2NvbnRhaW5lcl9yZWdpc3RyeV91cmxCFwoVX2NoYXJ0X3JlcG9zaXRvcnlfdXJsQhcKFV9yZWdpc3RyeV9zZWNyZXRfbmFtZUISChBfY2FfY2VydGlmaWNhdGVzQhkKF19kYXRhYmFzZV9zdG9yYWdlX2NsYXNzQhkKF19zbmFwc2hvdF9zdG9yYWdlX2NsYXNzQiAKHl92b2x1bWVfc25hcHNob3Rfc3RvcmFnZV9jbGFzc0IMCgpfbG9nX2xldmVsQh0KG19hZHZhbmNlZF9vcGVyYXRvcl9zZXR0aW5ncyK/BwocSHlicmlkQ2xvdWRFbnZpcm9ubWVudFN0YXR1cxI8ChBsYXN0X21vZGlmaWVkX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBElIKBXBoYXNlGAMgASgOMjkucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50U3RhdHVzUGhhc2VCCLpIBYIBAhABEiMKEmt1YmVybmV0ZXNfdmVyc2lvbhgEIAEoCUIHukgEcgIQARJgChdrdWJlcm5ldGVzX2Rpc3RyaWJ1dGlvbhgKIAEoDjIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuS3ViZXJuZXRlc0Rpc3RyaWJ1dGlvbkIKukgHggEEEAEgAEgAiAEBEhcKD251bWJlcl9vZl9ub2RlcxgFIAEoDRJQCgxjYXBhYmlsaXRpZXMYBiABKAsyOi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRDYXBhYmlsaXRpZXMSWQoSY29tcG9uZW50X3N0YXR1c2VzGAcgAygLMj0ucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Q29tcG9uZW50U3RhdHVzEmEKGmNsdXN0ZXJfY3JlYXRpb25fcmVhZGluZXNzGAkgASgOMjMucWRyYW50LmNsb3VkLmh5YnJpZC52MS5RZHJhbnRDbHVzdGVyQ3JlYXRpb25TdGF0dXNCCLpIBYIBAhABEhQKB21lc3NhZ2UYCyABKAlIAYgBARJTCg9zdG9yYWdlX2NsYXNzZXMYDCADKAsyOi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRTdG9yYWdlQ2xhc3MSYgoXdm9sdW1lX3NuYXBzaG90X2NsYXNzZXMYDSADKAsyQS5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRWb2x1bWVTbmFwc2hvdENsYXNzEmYKGXZvbHVtZV9hdHRyaWJ1dGVzX2NsYXNzZXMYDiADKAsyQy5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRWb2x1bWVBdHRyaWJ1dGVzQ2xhc3NCGgoYX2t1YmVybmV0ZXNfZGlzdHJpYnV0aW9uQgoKCF9tZXNzYWdlIlcKIkh5YnJpZENsb3VkRW52aXJvbm1lbnRDYXBhYmlsaXRpZXMSFwoPdm9sdW1lX3NuYXBzaG90GAEgASgIEhgKEHZvbHVtZV9leHBhbnNpb24YAiABKAgi+wEKJUh5YnJpZENsb3VkRW52aXJvbm1lbnRDb21wb25lbnRTdGF0dXMSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIaCgluYW1lc3BhY2UYAiABKAlCB7pIBHICEAESFAoHdmVyc2lvbhgDIAEoCUgAiAEBElsKBXBoYXNlGAQgASgOMkIucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Q29tcG9uZW50U3RhdHVzUGhhc2VCCLpIBYIBAhABEhQKB21lc3NhZ2UYBSABKAlIAYgBAUIKCghfdmVyc2lvbkIKCghfbWVzc2FnZSLYAQoiSHlicmlkQ2xvdWRFbnZpcm9ubWVudFN0b3JhZ2VDbGFzcxIVCgRuYW1lGAEgASgJQge6SARyAhABEg8KB2RlZmF1bHQYAiABKAgSHAoLcHJvdmlzaW9uZXIYAyABKAlCB7pIBHICEAESHgoWYWxsb3dfdm9sdW1lX2V4cGFuc2lvbhgEIAEoCBIWCg5yZWNsYWltX3BvbGljeRgFIAEoCRI0CgpwYXJhbWV0ZXJzGAYgAygLMiAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5LZXlWYWx1ZSJbCilIeWJyaWRDbG91ZEVudmlyb25tZW50Vm9sdW1lU25hcHNob3RDbGFzcxIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBmRyaXZlchgCIAEoCUIHukgEcgIQASKTAQorSHlicmlkQ2xvdWRFbnZpcm9ubWVudFZvbHVtZUF0dHJpYnV0ZXNDbGFzcxIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBmRyaXZlchgCIAEoCUIHukgEcgIQARI0CgpwYXJhbWV0ZXJzGAMgAygLMiAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5LZXlWYWx1ZSLbAgoeSHlicmlkQ2xvdWRFbnZpcm9ubWVudE5vZGVJbmZvEgwKBG5hbWUYASABKAkSEwoGcmVnaW9uGAIgASgJSACIAQESEQoEem9uZRgDIAEoCUgBiAEBEhoKDWluc3RhbmNlX3R5cGUYBCABKAlIAogBARIRCgRhcmNoGAUgASgJSAOIAQESUAoIY2FwYWNpdHkYBiABKAsyPi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnROb2RlUmVzb3VyY2VJbmZvElMKC2FsbG9jYXRhYmxlGAcgASgLMj4ucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Tm9kZVJlc291cmNlSW5mb0IJCgdfcmVnaW9uQgcKBV96b25lQhAKDl9pbnN0YW5jZV90eXBlQgcKBV9hcmNoIm4KJkh5YnJpZENsb3VkRW52aXJvbm1lbnROb2RlUmVzb3VyY2VJbmZvEgsKA2NwdRgBIAEoCRIOCgZtZW1vcnkYAiABKAkSDAoEcG9kcxgDIAEoCRIZChFlcGhlbWVyYWxfc3RvcmFnZRgEIAEoCSrdAgorSHlicmlkQ2xvdWRFbnZpcm9ubWVudENvbmZpZ3VyYXRpb25Mb2dMZXZlbBJACjxIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09ORklHVVJBVElPTl9MT0dfTEVWRUxfVU5TUEVDSUZJRUQQABI6CjZIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09ORklHVVJBVElPTl9MT0dfTEVWRUxfREVCVUcQARI5CjVIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09ORklHVVJBVElPTl9MT0dfTEVWRUxfSU5GTxACEjkKNUhZQlJJRF9DTE9VRF9FTlZJUk9OTUVOVF9DT05GSUdVUkFUSU9OX0xPR19MRVZFTF9XQVJOEAMSOgo2SFlCUklEX0NMT1VEX0VOVklST05NRU5UX0NPTkZJR1VSQVRJT05fTE9HX0xFVkVMX0VSUk9SEAQqpQEKG1FkcmFudENsdXN0ZXJDcmVhdGlvblN0YXR1cxIuCipRRFJBTlRfQ0xVU1RFUl9DUkVBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIoCiRRRFJBTlRfQ0xVU1RFUl9DUkVBVElPTl9TVEFUVVNfUkVBRFkQARIsCihRRFJBTlRfQ0xVU1RFUl9DUkVBVElPTl9TVEFUVVNfTk9UX1JFQURZEAIq+gEKIUh5YnJpZENsb3VkRW52aXJvbm1lbnRTdGF0dXNQaGFzZRI1CjFIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfU1RBVFVTX1BIQVNFX1VOU1BFQ0lGSUVEEAASLworSFlCUklEX0NMT1VEX0VOVklST05NRU5UX1NUQVRVU19QSEFTRV9SRUFEWRABEjMKL0hZQlJJRF9DTE9VRF9FTlZJUk9OTUVOVF9TVEFUVVNfUEhBU0VfTk9UX1JFQURZEAISOAo0SFlCUklEX0NMT1VEX0VOVklST05NRU5UX1NUQVRVU19QSEFTRV9GQUlMRURfVE9fU1lOQxADKqYCCipIeWJyaWRDbG91ZEVudmlyb25tZW50Q29tcG9uZW50U3RhdHVzUGhhc2USPwo7SFlCUklEX0NMT1VEX0VOVklST05NRU5UX0NPTVBPTkVOVF9TVEFUVVNfUEhBU0VfVU5TUEVDSUZJRUQQABI5CjVIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09NUE9ORU5UX1NUQVRVU19QSEFTRV9SRUFEWRABEj0KOUhZQlJJRF9DTE9VRF9FTlZJUk9OTUVOVF9DT01QT05FTlRfU1RBVFVTX1BIQVNFX05PVF9SRUFEWRACEj0KOUhZQlJJRF9DTE9VRF9FTlZJUk9OTUVOVF9DT01QT05FTlRfU1RBVFVTX1BIQVNFX05PVF9GT1VORBADKokEChZLdWJlcm5ldGVzRGlzdHJpYnV0aW9uEicKI0tVQkVSTkVURVNfRElTVFJJQlVUSU9OX1VOU1BFQ0lGSUVEEAASHwobS1VCRVJORVRFU19ESVNUUklCVVRJT05fQVdTEAESHwobS1VCRVJORVRFU19ESVNUUklCVVRJT05fR0NQEAISIQodS1VCRVJORVRFU19ESVNUUklCVVRJT05fQVpVUkUQAxIeChpLVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9ETxAEEiQKIEtVQkVSTkVURVNfRElTVFJJQlVUSU9OX1NDQUxFV0FZEAUSJQohS1VCRVJORVRFU19ESVNUUklCVVRJT05fT1BFTlNISUZUEAYSIgoeS1VCRVJORVRFU19ESVNUUklCVVRJT05fTElOT0RFEAcSIAocS1VCRVJORVRFU19ESVNUUklCVVRJT05fQ0lWTxAIEh8KG0tVQkVSTkVURVNfRElTVFJJQlVUSU9OX09DSRAJEiQKIEtVQkVSTkVURVNfRElTVFJJQlVUSU9OX09WSENMT1VEEAoSIwofS1VCRVJORVRFU19ESVNUUklCVVRJT05fU1RBQ0tJVBALEiEKHUtVQkVSTkVURVNfRElTVFJJQlVUSU9OX1ZVTFRSEAwSHwobS1VCRVJORVRFU19ESVNUUklCVVRJT05fSzNTEA0yhRcKEkh5YnJpZENsb3VkU2VydmljZRKWAgobTGlzdEh5YnJpZENsb3VkRW52aXJvbm1lbnRzEjoucWRyYW50LmNsb3VkLmh5YnJpZC52MS5MaXN0SHlicmlkQ2xvdWRFbnZpcm9ubWVudHNSZXF1ZXN0GjsucWRyYW50LmNsb3VkLmh5YnJpZC52MS5MaXN0SHlicmlkQ2xvdWRFbnZpcm9ubWVudHNSZXNwb25zZSJ+irUYHnJlYWQ6aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50c4q1GA53cml0ZTpjbHVzdGVyc6i1GACC0+STAkASPi9hcGkvaHlicmlkL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9oeWJyaWQtY2xvdWQtZW52aXJvbm1lbnRzEu0CChlHZXRIeWJyaWRDbG91ZEVudmlyb25tZW50EjgucWRyYW50LmNsb3VkLmh5YnJpZC52MS5HZXRIeWJyaWRDbG91ZEVudmlyb25tZW50UmVxdWVzdBo5LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuR2V0SHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlItoBirUYHnJlYWQ6aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50c4q1GA53cml0ZTpjbHVzdGVyc6i1GAC6tRg6ChtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWQSG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZILT5JMCXhJcL2FwaS9oeWJyaWQvdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2h5YnJpZC1jbG91ZC1lbnZpcm9ubWVudHMve2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZH0SvwQKHENyZWF0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnQSOy5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkNyZWF0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0GjwucWRyYW50LmNsb3VkLmh5YnJpZC52MS5DcmVhdGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVzcG9uc2UiowOKtRgfd3JpdGU6aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50c5K1GCNoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuYWNjb3VudF9pZLq1GD4KHWh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9uYW1lEh1oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQubmFtZcrzGLABCAESGGh5YnJpZC1jbG91ZC1lbnZpcm9ubWVudCIgcmVzcC5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWQqcC9hY2NvdW50cy97cmVxLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5hY2NvdW50X2lkfS9oeWJyaWQtY2xvdWQtZW52aXJvbm1lbnRzL3tyZXNwLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5pZH2C0+STAlw6ASoiVy9hcGkvaHlicmlkL3YxL2FjY291bnRzL3toeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuYWNjb3VudF9pZH0vaHlicmlkLWNsb3VkLWVudmlyb25tZW50cxLXBAocVXBkYXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudBI7LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuVXBkYXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlcXVlc3QaPC5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLlVwZGF0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXNwb25zZSK7A4q1GB93cml0ZTpoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRzkrUYI2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5hY2NvdW50X2lkurUYOgobaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkEhtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWTK8xiuAQgCEhhoeWJyaWQtY2xvdWQtZW52aXJvbm1lbnQiH3JlcS5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWQqby9hY2NvdW50cy97cmVxLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5hY2NvdW50X2lkfS9oeWJyaWQtY2xvdWQtZW52aXJvbm1lbnRzL3tyZXEuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkfYLT5JMCejoBKhp1L2FwaS9oeWJyaWQvdjEvYWNjb3VudHMve2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5hY2NvdW50X2lkfS9oeWJyaWQtY2xvdWQtZW52aXJvbm1lbnRzL3toeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWR9EvwDChxEZWxldGVIeWJyaWRDbG91ZEVudmlyb25tZW50EjsucWRyYW50LmNsb3VkLmh5YnJpZC52MS5EZWxldGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVxdWVzdBo8LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuRGVsZXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlIuACirUYIGRlbGV0ZTpoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRzurUYOgobaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkEhtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWTK8xiVAQgDEhhoeWJyaWQtY2xvdWQtZW52aXJvbm1lbnQiH3JlcS5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWQqVi9hY2NvdW50cy97cmVxLmFjY291bnRfaWR9L2h5YnJpZC1jbG91ZC1lbnZpcm9ubWVudHMve3JlcS5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWR9gtPkkwJeKlwvYXBpL2h5YnJpZC92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vaHlicmlkLWNsb3VkLWVudmlyb25tZW50cy97aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkfRLCBAoZR2VuZXJhdGVCb290c3RyYXBDb21tYW5kcxI4LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuR2VuZXJhdGVCb290c3RyYXBDb21tYW5kc1JlcXVlc3QaOS5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkdlbmVyYXRlQm9vdHN0cmFwQ29tbWFuZHNSZXNwb25zZSKvA4q1GB93cml0ZTpoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRzirUYFXdyaXRlOm1hbmFnZW1lbnRfa2V5c6i1GAG6tRg6ChtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWQSG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZMrzGLIBCAQSGGh5YnJpZC1jbG91ZC1lbnZpcm9ubWVudCIfcmVxLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZCpWL2FjY291bnRzL3tyZXEuYWNjb3VudF9pZH0vaHlicmlkLWNsb3VkLWVudmlyb25tZW50cy97cmVxLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZH0yG2dlbmVyYXRlLWJvb3RzdHJhcC1jb21tYW5kc4LT5JMCdDoBKiJvL2FwaS9oeWJyaWQvdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2h5YnJpZC1jbG91ZC1lbnZpcm9ubWVudHMve2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZH0vYm9vdHN0cmFwLWNvbW1hbmRzGgbCtRgCCAFC+wEKGmNvbS5xZHJhbnQuY2xvdWQuaHlicmlkLnYxQhBIeWJyaWRDbG91ZFByb3RvUAFaUGdpdGh1Yi5jb20vcWRyYW50L3FkcmFudC1jbG91ZC1wdWJsaWMtYXBpL2dlbi9nby9xZHJhbnQvY2xvdWQvaHlicmlkL3YxO2h5YnJpZHYxogIDUUNIqgIWUWRyYW50LkNsb3VkLkh5YnJpZC5WMcoCFlFkcmFudFxDbG91ZFxIeWJyaWRcVjHiAiJRZHJhbnRcQ2xvdWRcSHlicmlkXFYxXEdQQk1ldGFkYXRh6gIZUWRyYW50OjpDbG91ZDo6SHlicmlkOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_protobuf_struct, file_google_protobuf_timestamp, file_qdrant_cloud_cluster_v1_cluster, file_qdrant_cloud_common_v1_common, file_qdrant_cloud_event_v1_events]); + fileDesc("CilxZHJhbnQvY2xvdWQvaHlicmlkL3YxL2h5YnJpZF9jbG91ZC5wcm90bxIWcWRyYW50LmNsb3VkLmh5YnJpZC52MSJvCiBHZW5lcmF0ZUJvb3RzdHJhcENvbW1hbmRzUmVxdWVzdBIcCgphY2NvdW50X2lkGAEgASgJQgi6SAVyA7ABARItChtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWQYAiABKAlCCLpIBXIDsAEBIn8KIUdlbmVyYXRlQm9vdHN0cmFwQ29tbWFuZHNSZXNwb25zZRIQCghjb21tYW5kcxgBIAMoCRISCgphY2Nlc3Nfa2V5GAIgASgJEhkKEXJlZ2lzdHJ5X3VzZXJuYW1lGAMgASgJEhkKEXJlZ2lzdHJ5X3Bhc3N3b3JkGAQgASgJInIKI0RlbGV0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEi0KG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZBgCIAEoCUIIukgFcgOwAQEiJgokRGVsZXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlIpQCCiNVcGRhdGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVxdWVzdBJYChhoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQYASABKAsyLi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRCBrpIA8gBATqSAbpIjgEaiwEKKnVwZGF0ZV9oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWRfcHJlc2VudBI1aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkIGlzIHJlcXVpcmVkIGZvciBhbiB1cGRhdGUaJnRoaXMuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkICE9ICcnIoABCiRVcGRhdGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVzcG9uc2USWAoYaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50GAEgASgLMi4ucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Qga6SAPIAQEi1gMKI0NyZWF0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0ElgKGGh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudBgBIAEoCzIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudEIGukgDyAEBOtQCukjQAhrNAgozY3JlYXRlX2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5ub19yZWFkX29ubHlfZmllbGRzElVyZWFkLW9ubHkgZmllbGRzIChpZCwgY3JlYXRlZF9hdCwgbGFzdF9tb2RpZmllZF9hdCwgc3RhdHVzKSBtdXN0IG5vdCBiZSBzZXQgb24gY3JlYXRlGr4BdGhpcy5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWQgPT0gJycgJiYgIWhhcyh0aGlzLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5jcmVhdGVkX2F0KSAmJiAhaGFzKHRoaXMuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50Lmxhc3RfbW9kaWZpZWRfYXQpICYmICFoYXModGhpcy5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuc3RhdHVzKSKAAQokQ3JlYXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlElgKGGh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudBgBIAEoCzIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudEIGukgDyAEBIm8KIEdldEh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEi0KG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZBgCIAEoCUIIukgFcgOwAQEifQohR2V0SHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlElgKGGh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudBgBIAEoCzIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudEIGukgDyAEBIkIKIkxpc3RIeWJyaWRDbG91ZEVudmlyb25tZW50c1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQEiZAojTGlzdEh5YnJpZENsb3VkRW52aXJvbm1lbnRzUmVzcG9uc2USPQoFaXRlbXMYASADKAsyLi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnQilA0KFkh5YnJpZENsb3VkRW52aXJvbm1lbnQSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQESCgoCaWQYAiABKAkSLgoKY3JlYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbGFzdF9tb2RpZmllZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKQoEbmFtZRgFIAEoCUIbukgYchYQARhAMhBeW2EtekEtWjAtOS1fXSskEqoBChBjcmVhdGVkX2J5X2VtYWlsGAYgASgJQo8BukiLAboBhwEKKWh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5jcmVhdGVkX2J5X2VtYWlsEjZpZiBzZXQsIGNyZWF0ZWRfYnlfZW1haWwgbXVzdCBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MaInRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5pc0VtYWlsKCkSJAocYm9vdHN0cmFwX2NvbW1hbmRzX2dlbmVyYXRlZBgTIAEoCBJXCg1jb25maWd1cmF0aW9uGBQgASgLMjsucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Q29uZmlndXJhdGlvbkgAiAEBEkkKBnN0YXR1cxgVIAEoCzI0LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuSHlicmlkQ2xvdWRFbnZpcm9ubWVudFN0YXR1c0gBiAEBOqoIukimCBq0AQobaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkEhp2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVVJRBp5dGhpcy5pZC5tYXRjaGVzKCdeWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9JCcpIHx8ICFoYXModGhpcy5jcmVhdGVkX2F0KRrqAQopaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50Lmxhc3RfbW9kaWZpZWRfYXQSWmxhc3RfbW9kaWZpZWRfYXQgbXVzdCBiZSBzZXQgaWYgY3JlYXRlZF9hdCBpcyBzZXQgYW5kIG11c3QgYmUgYWZ0ZXIgb3IgZXF1YWwgdG8gY3JlYXRlZF9hdBphIWhhcyh0aGlzLmNyZWF0ZWRfYXQpIHx8IChoYXModGhpcy5sYXN0X21vZGlmaWVkX2F0KSAmJiB0aGlzLmxhc3RfbW9kaWZpZWRfYXQgPj0gdGhpcy5jcmVhdGVkX2F0KRrTAgo3aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmNvbmZpZ3VyYXRpb24ubGFzdF9tb2RpZmllZF9hdBJ8Y29uZmlndXJhdGlvbi5sYXN0X21vZGlmaWVkX2F0IG11c3QgYmUgc2V0IGlmIGNvbmZpZ3VyYXRpb24gYW5kIGNyZWF0ZWRfYXQgYXJlIHNldCwgYW5kIG11c3QgYmUgYWZ0ZXIgb3IgZXF1YWwgdG8gY3JlYXRlZF9hdBqZASFoYXModGhpcy5jb25maWd1cmF0aW9uKSB8fCAhaGFzKHRoaXMuY3JlYXRlZF9hdCkgfHwgKGhhcyh0aGlzLmNvbmZpZ3VyYXRpb24ubGFzdF9tb2RpZmllZF9hdCkgJiYgdGhpcy5jb25maWd1cmF0aW9uLmxhc3RfbW9kaWZpZWRfYXQgPj0gdGhpcy5jcmVhdGVkX2F0KRqpAgowaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LnN0YXR1cy5sYXN0X21vZGlmaWVkX2F0Em5zdGF0dXMubGFzdF9tb2RpZmllZF9hdCBtdXN0IGJlIHNldCBpZiBzdGF0dXMgYW5kIGNyZWF0ZWRfYXQgYXJlIHNldCwgYW5kIG11c3QgYmUgYWZ0ZXIgb3IgZXF1YWwgdG8gY3JlYXRlZF9hdBqEASFoYXModGhpcy5zdGF0dXMpIHx8ICFoYXModGhpcy5jcmVhdGVkX2F0KSB8fCAoaGFzKHRoaXMuc3RhdHVzLmxhc3RfbW9kaWZpZWRfYXQpICYmIHRoaXMuc3RhdHVzLmxhc3RfbW9kaWZpZWRfYXQgPj0gdGhpcy5jcmVhdGVkX2F0KUIQCg5fY29uZmlndXJhdGlvbkIJCgdfc3RhdHVzIrMLCiNIeWJyaWRDbG91ZEVudmlyb25tZW50Q29uZmlndXJhdGlvbhI0ChBsYXN0X21vZGlmaWVkX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI+CgluYW1lc3BhY2UYBCABKAlCK7pIKHImEAEY/QEyH15bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyQSJQoOaHR0cF9wcm94eV91cmwYBSABKAlCCLpIBXIDiAEBSACIAQESJgoPaHR0cHNfcHJveHlfdXJsGAYgASgJQgi6SAVyA4gBAUgBiAEBEhgKEG5vX3Byb3h5X2NvbmZpZ3MYByADKAkSXwoWY29udGFpbmVyX3JlZ2lzdHJ5X3VybBgIIAEoCUI6ukg3cjUYgBAyMF4oW2EtekEtWjAtOS4tXSsoOlswLTldKyk/KSgvW2EtekEtWjAtOV8uLy1dKykqJEgCiAEBEncKFGNoYXJ0X3JlcG9zaXRvcnlfdXJsGAkgASgJQlS6SFFyTxiAEDJKXlthLXpBLVpdW2EtekEtWjAtOSsuLV0qOi8vKFthLXpBLVowLTkuLV0rKDpbMC05XSspPykoL1thLXpBLVowLTlfLi8tXSspKiRIA4gBARIhChRyZWdpc3RyeV9zZWNyZXRfbmFtZRgKIAEoCUgEiAEBEhwKD2NhX2NlcnRpZmljYXRlcxgLIAEoCUgFiAEBEiwKFmRhdGFiYXNlX3N0b3JhZ2VfY2xhc3MYDCABKAlCB7pIBHICEAFIBogBARIsChZzbmFwc2hvdF9zdG9yYWdlX2NsYXNzGA0gASgJQge6SARyAhABSAeIAQESMwoddm9sdW1lX3NuYXBzaG90X3N0b3JhZ2VfY2xhc3MYDiABKAlCB7pIBHICEAFICIgBARJBCgdpbmdyZXNzGA8gAygLMjAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5OZXR3b3JrUG9saWN5SW5ncmVzc1J1bGUSPwoGZWdyZXNzGBAgAygLMi8ucWRyYW50LmNsb3VkLmNvbW1vbi52MS5OZXR3b3JrUG9saWN5RWdyZXNzUnVsZRJnCglsb2dfbGV2ZWwYFSABKA4yQy5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRDb25maWd1cmF0aW9uTG9nTGV2ZWxCCrpIB4IBBBABIABICYgBARI4Cgt0b2xlcmF0aW9ucxgWIAMoCzIjLnFkcmFudC5jbG91ZC5jbHVzdGVyLnYxLlRvbGVyYXRpb24SQQoNbm9kZV9zZWxlY3RvchgXIAMoCzIgLnFkcmFudC5jbG91ZC5jb21tb24udjEuS2V5VmFsdWVCCLpIBZIBAhAKEkAKGmFkdmFuY2VkX29wZXJhdG9yX3NldHRpbmdzGBggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgKiAEBEkgKFGNvbnRyb2xfcGxhbmVfbGFiZWxzGBkgAygLMiAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5LZXlWYWx1ZUIIukgFkgECEApCEQoPX2h0dHBfcHJveHlfdXJsQhIKEF9odHRwc19wcm94eV91cmxCGQoXX2NvbnRhaW5lcl9yZWdpc3RyeV91cmxCFwoVX2NoYXJ0X3JlcG9zaXRvcnlfdXJsQhcKFV9yZWdpc3RyeV9zZWNyZXRfbmFtZUISChBfY2FfY2VydGlmaWNhdGVzQhkKF19kYXRhYmFzZV9zdG9yYWdlX2NsYXNzQhkKF19zbmFwc2hvdF9zdG9yYWdlX2NsYXNzQiAKHl92b2x1bWVfc25hcHNob3Rfc3RvcmFnZV9jbGFzc0IMCgpfbG9nX2xldmVsQh0KG19hZHZhbmNlZF9vcGVyYXRvcl9zZXR0aW5ncyKfCAocSHlicmlkQ2xvdWRFbnZpcm9ubWVudFN0YXR1cxI8ChBsYXN0X21vZGlmaWVkX2F0GAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBElIKBXBoYXNlGAMgASgOMjkucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50U3RhdHVzUGhhc2VCCLpIBYIBAhABEiMKEmt1YmVybmV0ZXNfdmVyc2lvbhgEIAEoCUIHukgEcgIQARJgChdrdWJlcm5ldGVzX2Rpc3RyaWJ1dGlvbhgKIAEoDjIuLnFkcmFudC5jbG91ZC5oeWJyaWQudjEuS3ViZXJuZXRlc0Rpc3RyaWJ1dGlvbkIKukgHggEEEAEgAEgAiAEBEhcKD251bWJlcl9vZl9ub2RlcxgFIAEoDRJQCgxjYXBhYmlsaXRpZXMYBiABKAsyOi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRDYXBhYmlsaXRpZXMSWQoSY29tcG9uZW50X3N0YXR1c2VzGAcgAygLMj0ucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Q29tcG9uZW50U3RhdHVzEmEKGmNsdXN0ZXJfY3JlYXRpb25fcmVhZGluZXNzGAkgASgOMjMucWRyYW50LmNsb3VkLmh5YnJpZC52MS5RZHJhbnRDbHVzdGVyQ3JlYXRpb25TdGF0dXNCCLpIBYIBAhABEhQKB21lc3NhZ2UYCyABKAlIAYgBARJTCg9zdG9yYWdlX2NsYXNzZXMYDCADKAsyOi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRTdG9yYWdlQ2xhc3MSYgoXdm9sdW1lX3NuYXBzaG90X2NsYXNzZXMYDSADKAsyQS5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRWb2x1bWVTbmFwc2hvdENsYXNzEmYKGXZvbHVtZV9hdHRyaWJ1dGVzX2NsYXNzZXMYDiADKAsyQy5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnRWb2x1bWVBdHRyaWJ1dGVzQ2xhc3MSXgofc3RvcmFnZV9jb25maWd1cmF0aW9uX3JlYWRpbmVzcxgPIAEoDjI1LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuU3RvcmFnZUNvbmZpZ3VyYXRpb25SZWFkaW5lc3NCGgoYX2t1YmVybmV0ZXNfZGlzdHJpYnV0aW9uQgoKCF9tZXNzYWdlIlcKIkh5YnJpZENsb3VkRW52aXJvbm1lbnRDYXBhYmlsaXRpZXMSFwoPdm9sdW1lX3NuYXBzaG90GAEgASgIEhgKEHZvbHVtZV9leHBhbnNpb24YAiABKAgi+wEKJUh5YnJpZENsb3VkRW52aXJvbm1lbnRDb21wb25lbnRTdGF0dXMSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIaCgluYW1lc3BhY2UYAiABKAlCB7pIBHICEAESFAoHdmVyc2lvbhgDIAEoCUgAiAEBElsKBXBoYXNlGAQgASgOMkIucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Q29tcG9uZW50U3RhdHVzUGhhc2VCCLpIBYIBAhABEhQKB21lc3NhZ2UYBSABKAlIAYgBAUIKCghfdmVyc2lvbkIKCghfbWVzc2FnZSLYAQoiSHlicmlkQ2xvdWRFbnZpcm9ubWVudFN0b3JhZ2VDbGFzcxIVCgRuYW1lGAEgASgJQge6SARyAhABEg8KB2RlZmF1bHQYAiABKAgSHAoLcHJvdmlzaW9uZXIYAyABKAlCB7pIBHICEAESHgoWYWxsb3dfdm9sdW1lX2V4cGFuc2lvbhgEIAEoCBIWCg5yZWNsYWltX3BvbGljeRgFIAEoCRI0CgpwYXJhbWV0ZXJzGAYgAygLMiAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5LZXlWYWx1ZSJbCilIeWJyaWRDbG91ZEVudmlyb25tZW50Vm9sdW1lU25hcHNob3RDbGFzcxIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBmRyaXZlchgCIAEoCUIHukgEcgIQASKTAQorSHlicmlkQ2xvdWRFbnZpcm9ubWVudFZvbHVtZUF0dHJpYnV0ZXNDbGFzcxIVCgRuYW1lGAEgASgJQge6SARyAhABEhcKBmRyaXZlchgCIAEoCUIHukgEcgIQARI0CgpwYXJhbWV0ZXJzGAMgAygLMiAucWRyYW50LmNsb3VkLmNvbW1vbi52MS5LZXlWYWx1ZSLbAgoeSHlicmlkQ2xvdWRFbnZpcm9ubWVudE5vZGVJbmZvEgwKBG5hbWUYASABKAkSEwoGcmVnaW9uGAIgASgJSACIAQESEQoEem9uZRgDIAEoCUgBiAEBEhoKDWluc3RhbmNlX3R5cGUYBCABKAlIAogBARIRCgRhcmNoGAUgASgJSAOIAQESUAoIY2FwYWNpdHkYBiABKAsyPi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkh5YnJpZENsb3VkRW52aXJvbm1lbnROb2RlUmVzb3VyY2VJbmZvElMKC2FsbG9jYXRhYmxlGAcgASgLMj4ucWRyYW50LmNsb3VkLmh5YnJpZC52MS5IeWJyaWRDbG91ZEVudmlyb25tZW50Tm9kZVJlc291cmNlSW5mb0IJCgdfcmVnaW9uQgcKBV96b25lQhAKDl9pbnN0YW5jZV90eXBlQgcKBV9hcmNoIm4KJkh5YnJpZENsb3VkRW52aXJvbm1lbnROb2RlUmVzb3VyY2VJbmZvEgsKA2NwdRgBIAEoCRIOCgZtZW1vcnkYAiABKAkSDAoEcG9kcxgDIAEoCRIZChFlcGhlbWVyYWxfc3RvcmFnZRgEIAEoCSrdAgorSHlicmlkQ2xvdWRFbnZpcm9ubWVudENvbmZpZ3VyYXRpb25Mb2dMZXZlbBJACjxIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09ORklHVVJBVElPTl9MT0dfTEVWRUxfVU5TUEVDSUZJRUQQABI6CjZIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09ORklHVVJBVElPTl9MT0dfTEVWRUxfREVCVUcQARI5CjVIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09ORklHVVJBVElPTl9MT0dfTEVWRUxfSU5GTxACEjkKNUhZQlJJRF9DTE9VRF9FTlZJUk9OTUVOVF9DT05GSUdVUkFUSU9OX0xPR19MRVZFTF9XQVJOEAMSOgo2SFlCUklEX0NMT1VEX0VOVklST05NRU5UX0NPTkZJR1VSQVRJT05fTE9HX0xFVkVMX0VSUk9SEAQqpQEKG1FkcmFudENsdXN0ZXJDcmVhdGlvblN0YXR1cxIuCipRRFJBTlRfQ0xVU1RFUl9DUkVBVElPTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIoCiRRRFJBTlRfQ0xVU1RFUl9DUkVBVElPTl9TVEFUVVNfUkVBRFkQARIsCihRRFJBTlRfQ0xVU1RFUl9DUkVBVElPTl9TVEFUVVNfTk9UX1JFQURZEAIq1wEKHVN0b3JhZ2VDb25maWd1cmF0aW9uUmVhZGluZXNzEi8KK1NUT1JBR0VfQ09ORklHVVJBVElPTl9SRUFESU5FU1NfVU5TUEVDSUZJRUQQABIpCiVTVE9SQUdFX0NPTkZJR1VSQVRJT05fUkVBRElORVNTX1JFQURZEAESLQopU1RPUkFHRV9DT05GSUdVUkFUSU9OX1JFQURJTkVTU19OT1RfUkVBRFkQAhIrCidTVE9SQUdFX0NPTkZJR1VSQVRJT05fUkVBRElORVNTX0lOVkFMSUQQAyr6AQohSHlicmlkQ2xvdWRFbnZpcm9ubWVudFN0YXR1c1BoYXNlEjUKMUhZQlJJRF9DTE9VRF9FTlZJUk9OTUVOVF9TVEFUVVNfUEhBU0VfVU5TUEVDSUZJRUQQABIvCitIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfU1RBVFVTX1BIQVNFX1JFQURZEAESMwovSFlCUklEX0NMT1VEX0VOVklST05NRU5UX1NUQVRVU19QSEFTRV9OT1RfUkVBRFkQAhI4CjRIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfU1RBVFVTX1BIQVNFX0ZBSUxFRF9UT19TWU5DEAMqpgIKKkh5YnJpZENsb3VkRW52aXJvbm1lbnRDb21wb25lbnRTdGF0dXNQaGFzZRI/CjtIWUJSSURfQ0xPVURfRU5WSVJPTk1FTlRfQ09NUE9ORU5UX1NUQVRVU19QSEFTRV9VTlNQRUNJRklFRBAAEjkKNUhZQlJJRF9DTE9VRF9FTlZJUk9OTUVOVF9DT01QT05FTlRfU1RBVFVTX1BIQVNFX1JFQURZEAESPQo5SFlCUklEX0NMT1VEX0VOVklST05NRU5UX0NPTVBPTkVOVF9TVEFUVVNfUEhBU0VfTk9UX1JFQURZEAISPQo5SFlCUklEX0NMT1VEX0VOVklST05NRU5UX0NPTVBPTkVOVF9TVEFUVVNfUEhBU0VfTk9UX0ZPVU5EEAMqiQQKFkt1YmVybmV0ZXNEaXN0cmlidXRpb24SJwojS1VCRVJORVRFU19ESVNUUklCVVRJT05fVU5TUEVDSUZJRUQQABIfChtLVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9BV1MQARIfChtLVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9HQ1AQAhIhCh1LVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9BWlVSRRADEh4KGktVQkVSTkVURVNfRElTVFJJQlVUSU9OX0RPEAQSJAogS1VCRVJORVRFU19ESVNUUklCVVRJT05fU0NBTEVXQVkQBRIlCiFLVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9PUEVOU0hJRlQQBhIiCh5LVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9MSU5PREUQBxIgChxLVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9DSVZPEAgSHwobS1VCRVJORVRFU19ESVNUUklCVVRJT05fT0NJEAkSJAogS1VCRVJORVRFU19ESVNUUklCVVRJT05fT1ZIQ0xPVUQQChIjCh9LVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9TVEFDS0lUEAsSIQodS1VCRVJORVRFU19ESVNUUklCVVRJT05fVlVMVFIQDBIfChtLVUJFUk5FVEVTX0RJU1RSSUJVVElPTl9LM1MQDTKFFwoSSHlicmlkQ2xvdWRTZXJ2aWNlEpYCChtMaXN0SHlicmlkQ2xvdWRFbnZpcm9ubWVudHMSOi5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkxpc3RIeWJyaWRDbG91ZEVudmlyb25tZW50c1JlcXVlc3QaOy5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkxpc3RIeWJyaWRDbG91ZEVudmlyb25tZW50c1Jlc3BvbnNlIn6KtRgecmVhZDpoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRzirUYDndyaXRlOmNsdXN0ZXJzqLUYAILT5JMCQBI+L2FwaS9oeWJyaWQvdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2h5YnJpZC1jbG91ZC1lbnZpcm9ubWVudHMS7QIKGUdldEh5YnJpZENsb3VkRW52aXJvbm1lbnQSOC5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkdldEh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0GjkucWRyYW50LmNsb3VkLmh5YnJpZC52MS5HZXRIeWJyaWRDbG91ZEVudmlyb25tZW50UmVzcG9uc2Ui2gGKtRgecmVhZDpoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRzirUYDndyaXRlOmNsdXN0ZXJzqLUYALq1GDoKG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZBIbaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkgtPkkwJeElwvYXBpL2h5YnJpZC92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vaHlicmlkLWNsb3VkLWVudmlyb25tZW50cy97aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkfRK/BAocQ3JlYXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudBI7LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuQ3JlYXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlcXVlc3QaPC5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkNyZWF0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXNwb25zZSKjA4q1GB93cml0ZTpoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRzkrUYI2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5hY2NvdW50X2lkurUYPgodaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X25hbWUSHWh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5uYW1lyvMYsAEIARIYaHlicmlkLWNsb3VkLWVudmlyb25tZW50IiByZXNwLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5pZCpwL2FjY291bnRzL3tyZXEuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmFjY291bnRfaWR9L2h5YnJpZC1jbG91ZC1lbnZpcm9ubWVudHMve3Jlc3AuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmlkfYLT5JMCXDoBKiJXL2FwaS9oeWJyaWQvdjEvYWNjb3VudHMve2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5hY2NvdW50X2lkfS9oeWJyaWQtY2xvdWQtZW52aXJvbm1lbnRzEtcEChxVcGRhdGVIeWJyaWRDbG91ZEVudmlyb25tZW50EjsucWRyYW50LmNsb3VkLmh5YnJpZC52MS5VcGRhdGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVxdWVzdBo8LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuVXBkYXRlSHlicmlkQ2xvdWRFbnZpcm9ubWVudFJlc3BvbnNlIrsDirUYH3dyaXRlOmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudHOStRgjaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmFjY291bnRfaWS6tRg6ChtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWQSG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5pZMrzGK4BCAISGGh5YnJpZC1jbG91ZC1lbnZpcm9ubWVudCIfcmVxLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5pZCpvL2FjY291bnRzL3tyZXEuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmFjY291bnRfaWR9L2h5YnJpZC1jbG91ZC1lbnZpcm9ubWVudHMve3JlcS5oeWJyaWRfY2xvdWRfZW52aXJvbm1lbnQuaWR9gtPkkwJ6OgEqGnUvYXBpL2h5YnJpZC92MS9hY2NvdW50cy97aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50LmFjY291bnRfaWR9L2h5YnJpZC1jbG91ZC1lbnZpcm9ubWVudHMve2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudC5pZH0S/AMKHERlbGV0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnQSOy5xZHJhbnQuY2xvdWQuaHlicmlkLnYxLkRlbGV0ZUh5YnJpZENsb3VkRW52aXJvbm1lbnRSZXF1ZXN0GjwucWRyYW50LmNsb3VkLmh5YnJpZC52MS5EZWxldGVIeWJyaWRDbG91ZEVudmlyb25tZW50UmVzcG9uc2Ui4AKKtRggZGVsZXRlOmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudHO6tRg6ChtoeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWQSG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZMrzGJUBCAMSGGh5YnJpZC1jbG91ZC1lbnZpcm9ubWVudCIfcmVxLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZCpWL2FjY291bnRzL3tyZXEuYWNjb3VudF9pZH0vaHlicmlkLWNsb3VkLWVudmlyb25tZW50cy97cmVxLmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZH2C0+STAl4qXC9hcGkvaHlicmlkL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9oeWJyaWQtY2xvdWQtZW52aXJvbm1lbnRzL3toeWJyaWRfY2xvdWRfZW52aXJvbm1lbnRfaWR9EsIEChlHZW5lcmF0ZUJvb3RzdHJhcENvbW1hbmRzEjgucWRyYW50LmNsb3VkLmh5YnJpZC52MS5HZW5lcmF0ZUJvb3RzdHJhcENvbW1hbmRzUmVxdWVzdBo5LnFkcmFudC5jbG91ZC5oeWJyaWQudjEuR2VuZXJhdGVCb290c3RyYXBDb21tYW5kc1Jlc3BvbnNlIq8DirUYH3dyaXRlOmh5YnJpZF9jbG91ZF9lbnZpcm9ubWVudHOKtRgVd3JpdGU6bWFuYWdlbWVudF9rZXlzqLUYAbq1GDoKG2h5YnJpZF9jbG91ZF9lbnZpcm9ubWVudF9pZBIbaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkyvMYsgEIBBIYaHlicmlkLWNsb3VkLWVudmlyb25tZW50Ih9yZXEuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkKlYvYWNjb3VudHMve3JlcS5hY2NvdW50X2lkfS9oeWJyaWQtY2xvdWQtZW52aXJvbm1lbnRzL3tyZXEuaHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkfTIbZ2VuZXJhdGUtYm9vdHN0cmFwLWNvbW1hbmRzgtPkkwJ0OgEqIm8vYXBpL2h5YnJpZC92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vaHlicmlkLWNsb3VkLWVudmlyb25tZW50cy97aHlicmlkX2Nsb3VkX2Vudmlyb25tZW50X2lkfS9ib290c3RyYXAtY29tbWFuZHMaBsK1GAIIAUL7AQoaY29tLnFkcmFudC5jbG91ZC5oeWJyaWQudjFCEEh5YnJpZENsb3VkUHJvdG9QAVpQZ2l0aHViLmNvbS9xZHJhbnQvcWRyYW50LWNsb3VkLXB1YmxpYy1hcGkvZ2VuL2dvL3FkcmFudC9jbG91ZC9oeWJyaWQvdjE7aHlicmlkdjGiAgNRQ0iqAhZRZHJhbnQuQ2xvdWQuSHlicmlkLlYxygIWUWRyYW50XENsb3VkXEh5YnJpZFxWMeICIlFkcmFudFxDbG91ZFxIeWJyaWRcVjFcR1BCTWV0YWRhdGHqAhlRZHJhbnQ6OkNsb3VkOjpIeWJyaWQ6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_annotations, file_google_protobuf_struct, file_google_protobuf_timestamp, file_qdrant_cloud_cluster_v1_cluster, file_qdrant_cloud_common_v1_common, file_qdrant_cloud_event_v1_events]); /** * Describes the message qdrant.cloud.hybrid.v1.GenerateBootstrapCommandsRequest. @@ -198,11 +198,25 @@ export const QdrantClusterCreationStatusSchema = /*@__PURE__*/ export const QdrantClusterCreationStatus = /*@__PURE__*/ tsEnum(QdrantClusterCreationStatusSchema); +/** + * Describes the enum qdrant.cloud.hybrid.v1.StorageConfigurationReadiness. + */ +export const StorageConfigurationReadinessSchema = /*@__PURE__*/ + enumDesc(file_qdrant_cloud_hybrid_v1_hybrid_cloud, 2); + +/** + * StorageConfigurationReadiness expresses the storage configuration state of the hybrid cloud environment. + * + * @generated from enum qdrant.cloud.hybrid.v1.StorageConfigurationReadiness + */ +export const StorageConfigurationReadiness = /*@__PURE__*/ + tsEnum(StorageConfigurationReadinessSchema); + /** * Describes the enum qdrant.cloud.hybrid.v1.HybridCloudEnvironmentStatusPhase. */ export const HybridCloudEnvironmentStatusPhaseSchema = /*@__PURE__*/ - enumDesc(file_qdrant_cloud_hybrid_v1_hybrid_cloud, 2); + enumDesc(file_qdrant_cloud_hybrid_v1_hybrid_cloud, 3); /** * Status phase of hybrid cloud environment @@ -216,7 +230,7 @@ export const HybridCloudEnvironmentStatusPhase = /*@__PURE__*/ * Describes the enum qdrant.cloud.hybrid.v1.HybridCloudEnvironmentComponentStatusPhase. */ export const HybridCloudEnvironmentComponentStatusPhaseSchema = /*@__PURE__*/ - enumDesc(file_qdrant_cloud_hybrid_v1_hybrid_cloud, 3); + enumDesc(file_qdrant_cloud_hybrid_v1_hybrid_cloud, 4); /** * Component status phase @@ -230,7 +244,7 @@ export const HybridCloudEnvironmentComponentStatusPhase = /*@__PURE__*/ * Describes the enum qdrant.cloud.hybrid.v1.KubernetesDistribution. */ export const KubernetesDistributionSchema = /*@__PURE__*/ - enumDesc(file_qdrant_cloud_hybrid_v1_hybrid_cloud, 4); + enumDesc(file_qdrant_cloud_hybrid_v1_hybrid_cloud, 5); /** * Kubernetes distributions diff --git a/gen/typescript/qdrant/cloud/platform/v1/platform_pb.d.ts b/gen/typescript/qdrant/cloud/platform/v1/platform_pb.d.ts index 720fdebf..78668bdd 100644 --- a/gen/typescript/qdrant/cloud/platform/v1/platform_pb.d.ts +++ b/gen/typescript/qdrant/cloud/platform/v1/platform_pb.d.ts @@ -2,7 +2,7 @@ // @generated from file qdrant/cloud/platform/v1/platform.proto (package qdrant.cloud.platform.v1, syntax proto3) /* eslint-disable */ -import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; +import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import type { Message } from "@bufbuild/protobuf"; /** @@ -422,6 +422,13 @@ export declare type CloudProviderRegion = Message<"qdrant.cloud.platform.v1.Clou * @generated from field: qdrant.cloud.platform.v1.CloudProviderRegionCapabilities capabilities = 9; */ capabilities?: CloudProviderRegionCapabilities; + + /** + * Surfaces the specific reason cluster creation should be blocked for this region. + * + * @generated from field: qdrant.cloud.platform.v1.ClusterCreationBlockingReason cluster_creation_blocking_reason = 10; + */ + clusterCreationBlockingReason: ClusterCreationBlockingReason; }; export declare type CloudProviderRegionValid = CloudProviderRegion; @@ -461,6 +468,47 @@ export declare type CloudProviderRegionCapabilitiesValid = CloudProviderRegionCa */ export declare const CloudProviderRegionCapabilitiesSchema: GenMessage; +/** + * ClusterCreationBlockingReason surfaces the specific reason cluster creation should be blocked. + * It is informational and does not change the semantics of available. + * + * @generated from enum qdrant.cloud.platform.v1.ClusterCreationBlockingReason + */ +export enum ClusterCreationBlockingReason { + /** + * No blocking reason / N/A (used for non-hybrid regions) + * + * @generated from enum value: CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * No blocker, creation allowed + * + * @generated from enum value: CLUSTER_CREATION_BLOCKING_REASON_NONE = 1; + */ + NONE = 1, + + /** + * Operator/agent not yet ready + * + * @generated from enum value: CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY = 2; + */ + ENVIRONMENT_NOT_READY = 2, + + /** + * Storage config not set + * + * @generated from enum value: CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY = 3; + */ + STORAGE_CONFIGURATION_NOT_READY = 3, +} + +/** + * Describes the enum qdrant.cloud.platform.v1.ClusterCreationBlockingReason. + */ +export declare const ClusterCreationBlockingReasonSchema: GenEnum; + /** * PlatformService is the API used to query for cloud provider & regional information. * diff --git a/gen/typescript/qdrant/cloud/platform/v1/platform_pb.js b/gen/typescript/qdrant/cloud/platform/v1/platform_pb.js index f9528dc2..e068d989 100644 --- a/gen/typescript/qdrant/cloud/platform/v1/platform_pb.js +++ b/gen/typescript/qdrant/cloud/platform/v1/platform_pb.js @@ -2,7 +2,7 @@ // @generated from file qdrant/cloud/platform/v1/platform.proto (package qdrant.cloud.platform.v1, syntax proto3) /* eslint-disable */ -import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2"; +import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/protobuf/codegenv2"; import { file_buf_validate_validate } from "../../../../buf/validate/validate_pb.js"; import { file_google_api_annotations } from "../../../../google/api/annotations_pb.js"; import { file_qdrant_cloud_common_v1_common } from "../../common/v1/common_pb.js"; @@ -11,7 +11,7 @@ import { file_qdrant_cloud_common_v1_common } from "../../common/v1/common_pb.js * Describes the file qdrant/cloud/platform/v1/platform.proto. */ export const file_qdrant_cloud_platform_v1_platform = /*@__PURE__*/ - fileDesc("CidxZHJhbnQvY2xvdWQvcGxhdGZvcm0vdjEvcGxhdGZvcm0ucHJvdG8SGHFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MSI5ChlMaXN0Q2xvdWRQcm92aWRlcnNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBIlQKGkxpc3RDbG91ZFByb3ZpZGVyc1Jlc3BvbnNlEjYKBWl0ZW1zGAEgAygLMicucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkNsb3VkUHJvdmlkZXIiIQofTGlzdEdsb2JhbENsb3VkUHJvdmlkZXJzUmVxdWVzdCJaCiBMaXN0R2xvYmFsQ2xvdWRQcm92aWRlcnNSZXNwb25zZRI2CgVpdGVtcxgBIAMoCzInLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5DbG91ZFByb3ZpZGVyIksKJUxpc3RHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uc1JlcXVlc3QSIgoRY2xvdWRfcHJvdmlkZXJfaWQYASABKAlCB7pIBHICEAMiZgomTGlzdEdsb2JhbENsb3VkUHJvdmlkZXJSZWdpb25zUmVzcG9uc2USPAoFaXRlbXMYASADKAsyLS5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuQ2xvdWRQcm92aWRlclJlZ2lvbiJlCiNHZXRHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uUmVxdWVzdBIiChFjbG91ZF9wcm92aWRlcl9pZBgBIAEoCUIHukgEcgIQAxIaCglyZWdpb25faWQYAiABKAlCB7pIBHICEAEiZQokR2V0R2xvYmFsQ2xvdWRQcm92aWRlclJlZ2lvblJlc3BvbnNlEj0KBnJlZ2lvbhgBIAEoCzItLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5DbG91ZFByb3ZpZGVyUmVnaW9uImMKH0xpc3RDbG91ZFByb3ZpZGVyUmVnaW9uc1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQESIgoRY2xvdWRfcHJvdmlkZXJfaWQYAiABKAlCB7pIBHICEAMiYAogTGlzdENsb3VkUHJvdmlkZXJSZWdpb25zUmVzcG9uc2USPAoFaXRlbXMYASADKAsyLS5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuQ2xvdWRQcm92aWRlclJlZ2lvbiJ9Ch1HZXRDbG91ZFByb3ZpZGVyUmVnaW9uUmVxdWVzdBIcCgphY2NvdW50X2lkGAEgASgJQgi6SAVyA7ABARIiChFjbG91ZF9wcm92aWRlcl9pZBgCIAEoCUIHukgEcgIQAxIaCglyZWdpb25faWQYAyABKAlCB7pIBHICEAEiXwoeR2V0Q2xvdWRQcm92aWRlclJlZ2lvblJlc3BvbnNlEj0KBnJlZ2lvbhgBIAEoCzItLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5DbG91ZFByb3ZpZGVyUmVnaW9uImEKDUNsb3VkUHJvdmlkZXISEwoCaWQYASABKAlCB7pIBHICEAMSFQoEbmFtZRgCIAEoCUIHukgEcgIQARIRCglmcmVlX3RpZXIYAyABKAgSEQoJYXZhaWxhYmxlGAQgASgIIpcDChNDbG91ZFByb3ZpZGVyUmVnaW9uEhMKAmlkGAEgASgJQge6SARyAhABEhUKBG5hbWUYAiABKAlCB7pIBHICEAESEQoJZnJlZV90aWVyGAMgASgIEhEKCWF2YWlsYWJsZRgEIAEoCBIZCghwcm92aWRlchgFIAEoCUIHukgEcgIQARIzChBjb3VudHJ5X2lzb19jb2RlGAYgASgJQhS6SBFyDzIKXltBLVpdezJ9JJgBAkgAiAEBEi0KF2dlb2dyYXBoaWNhbF9zdWJfcmVnaW9uGAcgASgJQge6SARyAhABSAGIAQESHwoJbmFtZXNwYWNlGAggASgJQge6SARyAhABSAKIAQESTwoMY2FwYWJpbGl0aWVzGAkgASgLMjkucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkNsb3VkUHJvdmlkZXJSZWdpb25DYXBhYmlsaXRpZXNCEwoRX2NvdW50cnlfaXNvX2NvZGVCGgoYX2dlb2dyYXBoaWNhbF9zdWJfcmVnaW9uQgwKCl9uYW1lc3BhY2UiVAofQ2xvdWRQcm92aWRlclJlZ2lvbkNhcGFiaWxpdGllcxIXCg92b2x1bWVfc25hcHNob3QYASABKAgSGAoQdm9sdW1lX2V4cGFuc2lvbhgCIAEoCDLUDAoPUGxhdGZvcm1TZXJ2aWNlEr8BChhMaXN0R2xvYmFsQ2xvdWRQcm92aWRlcnMSOS5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuTGlzdEdsb2JhbENsb3VkUHJvdmlkZXJzUmVxdWVzdBo6LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5MaXN0R2xvYmFsQ2xvdWRQcm92aWRlcnNSZXNwb25zZSIsmLUYAILT5JMCIhIgL2FwaS9wbGF0Zm9ybS92MS9jbG91ZC1wcm92aWRlcnMSwwEKEkxpc3RDbG91ZFByb3ZpZGVycxIzLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5MaXN0Q2xvdWRQcm92aWRlcnNSZXF1ZXN0GjQucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkxpc3RDbG91ZFByb3ZpZGVyc1Jlc3BvbnNlIkKKtRgAgtPkkwI4EjYvYXBpL3BsYXRmb3JtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9jbG91ZC1wcm92aWRlcnMSlwIKHkxpc3RHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9ucxI/LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5MaXN0R2xvYmFsQ2xvdWRQcm92aWRlclJlZ2lvbnNSZXF1ZXN0GkAucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkxpc3RHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uc1Jlc3BvbnNlInKYtRgAurUYJgoRY2xvdWRfcHJvdmlkZXJfaWQSEWNsb3VkX3Byb3ZpZGVyX2lkgtPkkwI+EjwvYXBpL3BsYXRmb3JtL3YxL2Nsb3VkLXByb3ZpZGVycy97Y2xvdWRfcHJvdmlkZXJfaWR9L3JlZ2lvbnMSuAIKHEdldEdsb2JhbENsb3VkUHJvdmlkZXJSZWdpb24SPS5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuR2V0R2xvYmFsQ2xvdWRQcm92aWRlclJlZ2lvblJlcXVlc3QaPi5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuR2V0R2xvYmFsQ2xvdWRQcm92aWRlclJlZ2lvblJlc3BvbnNlIpgBmLUYALq1GCYKEWNsb3VkX3Byb3ZpZGVyX2lkEhFjbG91ZF9wcm92aWRlcl9pZLq1GBYKCXJlZ2lvbl9pZBIJcmVnaW9uX2lkgtPkkwJKEkgvYXBpL3BsYXRmb3JtL3YxL2Nsb3VkLXByb3ZpZGVycy97Y2xvdWRfcHJvdmlkZXJfaWR9L3JlZ2lvbnMve3JlZ2lvbl9pZH0SnAIKGExpc3RDbG91ZFByb3ZpZGVyUmVnaW9ucxI5LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5MaXN0Q2xvdWRQcm92aWRlclJlZ2lvbnNSZXF1ZXN0GjoucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkxpc3RDbG91ZFByb3ZpZGVyUmVnaW9uc1Jlc3BvbnNlIogBirUYALq1GCYKEWNsb3VkX3Byb3ZpZGVyX2lkEhFjbG91ZF9wcm92aWRlcl9pZILT5JMCVBJSL2FwaS9wbGF0Zm9ybS92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vY2xvdWQtcHJvdmlkZXJzL3tjbG91ZF9wcm92aWRlcl9pZH0vcmVnaW9ucxK8AgoWR2V0Q2xvdWRQcm92aWRlclJlZ2lvbhI3LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5HZXRDbG91ZFByb3ZpZGVyUmVnaW9uUmVxdWVzdBo4LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5HZXRDbG91ZFByb3ZpZGVyUmVnaW9uUmVzcG9uc2UirgGKtRgAurUYJgoRY2xvdWRfcHJvdmlkZXJfaWQSEWNsb3VkX3Byb3ZpZGVyX2lkurUYFgoJcmVnaW9uX2lkEglyZWdpb25faWSC0+STAmASXi9hcGkvcGxhdGZvcm0vdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2Nsb3VkLXByb3ZpZGVycy97Y2xvdWRfcHJvdmlkZXJfaWR9L3JlZ2lvbnMve3JlZ2lvbl9pZH0aBsK1GAIIAUKGAgocY29tLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MUINUGxhdGZvcm1Qcm90b1ABWlRnaXRodWIuY29tL3FkcmFudC9xZHJhbnQtY2xvdWQtcHVibGljLWFwaS9nZW4vZ28vcWRyYW50L2Nsb3VkL3BsYXRmb3JtL3YxO3BsYXRmb3JtdjGiAgNRQ1CqAhhRZHJhbnQuQ2xvdWQuUGxhdGZvcm0uVjHKAhhRZHJhbnRcQ2xvdWRcUGxhdGZvcm1cVjHiAiRRZHJhbnRcQ2xvdWRcUGxhdGZvcm1cVjFcR1BCTWV0YWRhdGHqAhtRZHJhbnQ6OkNsb3VkOjpQbGF0Zm9ybTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_annotations, file_qdrant_cloud_common_v1_common]); + fileDesc("CidxZHJhbnQvY2xvdWQvcGxhdGZvcm0vdjEvcGxhdGZvcm0ucHJvdG8SGHFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MSI5ChlMaXN0Q2xvdWRQcm92aWRlcnNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBIlQKGkxpc3RDbG91ZFByb3ZpZGVyc1Jlc3BvbnNlEjYKBWl0ZW1zGAEgAygLMicucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkNsb3VkUHJvdmlkZXIiIQofTGlzdEdsb2JhbENsb3VkUHJvdmlkZXJzUmVxdWVzdCJaCiBMaXN0R2xvYmFsQ2xvdWRQcm92aWRlcnNSZXNwb25zZRI2CgVpdGVtcxgBIAMoCzInLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5DbG91ZFByb3ZpZGVyIksKJUxpc3RHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uc1JlcXVlc3QSIgoRY2xvdWRfcHJvdmlkZXJfaWQYASABKAlCB7pIBHICEAMiZgomTGlzdEdsb2JhbENsb3VkUHJvdmlkZXJSZWdpb25zUmVzcG9uc2USPAoFaXRlbXMYASADKAsyLS5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuQ2xvdWRQcm92aWRlclJlZ2lvbiJlCiNHZXRHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uUmVxdWVzdBIiChFjbG91ZF9wcm92aWRlcl9pZBgBIAEoCUIHukgEcgIQAxIaCglyZWdpb25faWQYAiABKAlCB7pIBHICEAEiZQokR2V0R2xvYmFsQ2xvdWRQcm92aWRlclJlZ2lvblJlc3BvbnNlEj0KBnJlZ2lvbhgBIAEoCzItLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5DbG91ZFByb3ZpZGVyUmVnaW9uImMKH0xpc3RDbG91ZFByb3ZpZGVyUmVnaW9uc1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQESIgoRY2xvdWRfcHJvdmlkZXJfaWQYAiABKAlCB7pIBHICEAMiYAogTGlzdENsb3VkUHJvdmlkZXJSZWdpb25zUmVzcG9uc2USPAoFaXRlbXMYASADKAsyLS5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuQ2xvdWRQcm92aWRlclJlZ2lvbiJ9Ch1HZXRDbG91ZFByb3ZpZGVyUmVnaW9uUmVxdWVzdBIcCgphY2NvdW50X2lkGAEgASgJQgi6SAVyA7ABARIiChFjbG91ZF9wcm92aWRlcl9pZBgCIAEoCUIHukgEcgIQAxIaCglyZWdpb25faWQYAyABKAlCB7pIBHICEAEiXwoeR2V0Q2xvdWRQcm92aWRlclJlZ2lvblJlc3BvbnNlEj0KBnJlZ2lvbhgBIAEoCzItLnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5DbG91ZFByb3ZpZGVyUmVnaW9uImEKDUNsb3VkUHJvdmlkZXISEwoCaWQYASABKAlCB7pIBHICEAMSFQoEbmFtZRgCIAEoCUIHukgEcgIQARIRCglmcmVlX3RpZXIYAyABKAgSEQoJYXZhaWxhYmxlGAQgASgIIvoDChNDbG91ZFByb3ZpZGVyUmVnaW9uEhMKAmlkGAEgASgJQge6SARyAhABEhUKBG5hbWUYAiABKAlCB7pIBHICEAESEQoJZnJlZV90aWVyGAMgASgIEhEKCWF2YWlsYWJsZRgEIAEoCBIZCghwcm92aWRlchgFIAEoCUIHukgEcgIQARIzChBjb3VudHJ5X2lzb19jb2RlGAYgASgJQhS6SBFyDzIKXltBLVpdezJ9JJgBAkgAiAEBEi0KF2dlb2dyYXBoaWNhbF9zdWJfcmVnaW9uGAcgASgJQge6SARyAhABSAGIAQESHwoJbmFtZXNwYWNlGAggASgJQge6SARyAhABSAKIAQESTwoMY2FwYWJpbGl0aWVzGAkgASgLMjkucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkNsb3VkUHJvdmlkZXJSZWdpb25DYXBhYmlsaXRpZXMSYQogY2x1c3Rlcl9jcmVhdGlvbl9ibG9ja2luZ19yZWFzb24YCiABKA4yNy5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuQ2x1c3RlckNyZWF0aW9uQmxvY2tpbmdSZWFzb25CEwoRX2NvdW50cnlfaXNvX2NvZGVCGgoYX2dlb2dyYXBoaWNhbF9zdWJfcmVnaW9uQgwKCl9uYW1lc3BhY2UiVAofQ2xvdWRQcm92aWRlclJlZ2lvbkNhcGFiaWxpdGllcxIXCg92b2x1bWVfc25hcHNob3QYASABKAgSGAoQdm9sdW1lX2V4cGFuc2lvbhgCIAEoCCr+AQodQ2x1c3RlckNyZWF0aW9uQmxvY2tpbmdSZWFzb24SMAosQ0xVU1RFUl9DUkVBVElPTl9CTE9DS0lOR19SRUFTT05fVU5TUEVDSUZJRUQQABIpCiVDTFVTVEVSX0NSRUFUSU9OX0JMT0NLSU5HX1JFQVNPTl9OT05FEAESOgo2Q0xVU1RFUl9DUkVBVElPTl9CTE9DS0lOR19SRUFTT05fRU5WSVJPTk1FTlRfTk9UX1JFQURZEAISRApAQ0xVU1RFUl9DUkVBVElPTl9CTE9DS0lOR19SRUFTT05fU1RPUkFHRV9DT05GSUdVUkFUSU9OX05PVF9SRUFEWRADMtQMCg9QbGF0Zm9ybVNlcnZpY2USvwEKGExpc3RHbG9iYWxDbG91ZFByb3ZpZGVycxI5LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5MaXN0R2xvYmFsQ2xvdWRQcm92aWRlcnNSZXF1ZXN0GjoucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkxpc3RHbG9iYWxDbG91ZFByb3ZpZGVyc1Jlc3BvbnNlIiyYtRgAgtPkkwIiEiAvYXBpL3BsYXRmb3JtL3YxL2Nsb3VkLXByb3ZpZGVycxLDAQoSTGlzdENsb3VkUHJvdmlkZXJzEjMucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkxpc3RDbG91ZFByb3ZpZGVyc1JlcXVlc3QaNC5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuTGlzdENsb3VkUHJvdmlkZXJzUmVzcG9uc2UiQoq1GACC0+STAjgSNi9hcGkvcGxhdGZvcm0vdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2Nsb3VkLXByb3ZpZGVycxKXAgoeTGlzdEdsb2JhbENsb3VkUHJvdmlkZXJSZWdpb25zEj8ucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkxpc3RHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uc1JlcXVlc3QaQC5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuTGlzdEdsb2JhbENsb3VkUHJvdmlkZXJSZWdpb25zUmVzcG9uc2Uicpi1GAC6tRgmChFjbG91ZF9wcm92aWRlcl9pZBIRY2xvdWRfcHJvdmlkZXJfaWSC0+STAj4SPC9hcGkvcGxhdGZvcm0vdjEvY2xvdWQtcHJvdmlkZXJzL3tjbG91ZF9wcm92aWRlcl9pZH0vcmVnaW9ucxK4AgocR2V0R2xvYmFsQ2xvdWRQcm92aWRlclJlZ2lvbhI9LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5HZXRHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uUmVxdWVzdBo+LnFkcmFudC5jbG91ZC5wbGF0Zm9ybS52MS5HZXRHbG9iYWxDbG91ZFByb3ZpZGVyUmVnaW9uUmVzcG9uc2UimAGYtRgAurUYJgoRY2xvdWRfcHJvdmlkZXJfaWQSEWNsb3VkX3Byb3ZpZGVyX2lkurUYFgoJcmVnaW9uX2lkEglyZWdpb25faWSC0+STAkoSSC9hcGkvcGxhdGZvcm0vdjEvY2xvdWQtcHJvdmlkZXJzL3tjbG91ZF9wcm92aWRlcl9pZH0vcmVnaW9ucy97cmVnaW9uX2lkfRKcAgoYTGlzdENsb3VkUHJvdmlkZXJSZWdpb25zEjkucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkxpc3RDbG91ZFByb3ZpZGVyUmVnaW9uc1JlcXVlc3QaOi5xZHJhbnQuY2xvdWQucGxhdGZvcm0udjEuTGlzdENsb3VkUHJvdmlkZXJSZWdpb25zUmVzcG9uc2UiiAGKtRgAurUYJgoRY2xvdWRfcHJvdmlkZXJfaWQSEWNsb3VkX3Byb3ZpZGVyX2lkgtPkkwJUElIvYXBpL3BsYXRmb3JtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9jbG91ZC1wcm92aWRlcnMve2Nsb3VkX3Byb3ZpZGVyX2lkfS9yZWdpb25zErwCChZHZXRDbG91ZFByb3ZpZGVyUmVnaW9uEjcucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkdldENsb3VkUHJvdmlkZXJSZWdpb25SZXF1ZXN0GjgucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxLkdldENsb3VkUHJvdmlkZXJSZWdpb25SZXNwb25zZSKuAYq1GAC6tRgmChFjbG91ZF9wcm92aWRlcl9pZBIRY2xvdWRfcHJvdmlkZXJfaWS6tRgWCglyZWdpb25faWQSCXJlZ2lvbl9pZILT5JMCYBJeL2FwaS9wbGF0Zm9ybS92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vY2xvdWQtcHJvdmlkZXJzL3tjbG91ZF9wcm92aWRlcl9pZH0vcmVnaW9ucy97cmVnaW9uX2lkfRoGwrUYAggBQoYCChxjb20ucWRyYW50LmNsb3VkLnBsYXRmb3JtLnYxQg1QbGF0Zm9ybVByb3RvUAFaVGdpdGh1Yi5jb20vcWRyYW50L3FkcmFudC1jbG91ZC1wdWJsaWMtYXBpL2dlbi9nby9xZHJhbnQvY2xvdWQvcGxhdGZvcm0vdjE7cGxhdGZvcm12MaICA1FDUKoCGFFkcmFudC5DbG91ZC5QbGF0Zm9ybS5WMcoCGFFkcmFudFxDbG91ZFxQbGF0Zm9ybVxWMeICJFFkcmFudFxDbG91ZFxQbGF0Zm9ybVxWMVxHUEJNZXRhZGF0YeoCG1FkcmFudDo6Q2xvdWQ6OlBsYXRmb3JtOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_qdrant_cloud_common_v1_common]); /** * Describes the message qdrant.cloud.platform.v1.ListCloudProvidersRequest. @@ -118,6 +118,21 @@ export const CloudProviderRegionSchema = /*@__PURE__*/ export const CloudProviderRegionCapabilitiesSchema = /*@__PURE__*/ messageDesc(file_qdrant_cloud_platform_v1_platform, 14); +/** + * Describes the enum qdrant.cloud.platform.v1.ClusterCreationBlockingReason. + */ +export const ClusterCreationBlockingReasonSchema = /*@__PURE__*/ + enumDesc(file_qdrant_cloud_platform_v1_platform, 0); + +/** + * ClusterCreationBlockingReason surfaces the specific reason cluster creation should be blocked. + * It is informational and does not change the semantics of available. + * + * @generated from enum qdrant.cloud.platform.v1.ClusterCreationBlockingReason + */ +export const ClusterCreationBlockingReason = /*@__PURE__*/ + tsEnum(ClusterCreationBlockingReasonSchema); + /** * PlatformService is the API used to query for cloud provider & regional information. * diff --git a/proto/qdrant/cloud/hybrid/v1/hybrid_cloud.proto b/proto/qdrant/cloud/hybrid/v1/hybrid_cloud.proto index ccf726e2..bf6cb0be 100644 --- a/proto/qdrant/cloud/hybrid/v1/hybrid_cloud.proto +++ b/proto/qdrant/cloud/hybrid/v1/hybrid_cloud.proto @@ -427,6 +427,8 @@ message HybridCloudEnvironmentStatus { repeated HybridCloudEnvironmentVolumeSnapshotClass volume_snapshot_classes = 13; // Volume attributes classes available in the hybrid cloud environment repeated HybridCloudEnvironmentVolumeAttributesClass volume_attributes_classes = 14; + // Expresses the storage configuration state of the hybrid cloud environment. + StorageConfigurationReadiness storage_configuration_readiness = 15; } // QdrantClusterCreationStatus indicates if Qdrant clusters can be created in the environment @@ -439,6 +441,18 @@ enum QdrantClusterCreationStatus { QDRANT_CLUSTER_CREATION_STATUS_NOT_READY = 2; } +// StorageConfigurationReadiness expresses the storage configuration state of the hybrid cloud environment. +enum StorageConfigurationReadiness { + // Default/unknown, safe fallback + STORAGE_CONFIGURATION_READINESS_UNSPECIFIED = 0; + // Storage config explicitly set + STORAGE_CONFIGURATION_READINESS_READY = 1; + // Storage config absent + STORAGE_CONFIGURATION_READINESS_NOT_READY = 2; + // Config present but invalid + STORAGE_CONFIGURATION_READINESS_INVALID = 3; +} + // Status phase of hybrid cloud environment enum HybridCloudEnvironmentStatusPhase { // Unspecified diff --git a/proto/qdrant/cloud/platform/v1/platform.proto b/proto/qdrant/cloud/platform/v1/platform.proto index 57884aed..0a06b490 100644 --- a/proto/qdrant/cloud/platform/v1/platform.proto +++ b/proto/qdrant/cloud/platform/v1/platform.proto @@ -233,6 +233,8 @@ message CloudProviderRegion { optional string namespace = 8 [(buf.validate.field).string.min_len = 1]; // Storage capabilities available in this region. CloudProviderRegionCapabilities capabilities = 9; + // Surfaces the specific reason cluster creation should be blocked for this region. + ClusterCreationBlockingReason cluster_creation_blocking_reason = 10; } // CloudProviderRegionCapabilities represents storage capabilities available in a cloud provider region. @@ -242,3 +244,16 @@ message CloudProviderRegionCapabilities { // Whether volume expansion is supported. bool volume_expansion = 2; } + +// ClusterCreationBlockingReason surfaces the specific reason cluster creation should be blocked. +// It is informational and does not change the semantics of available. +enum ClusterCreationBlockingReason { + // No blocking reason / N/A (used for non-hybrid regions) + CLUSTER_CREATION_BLOCKING_REASON_UNSPECIFIED = 0; + // No blocker, creation allowed + CLUSTER_CREATION_BLOCKING_REASON_NONE = 1; + // Operator/agent not yet ready + CLUSTER_CREATION_BLOCKING_REASON_ENVIRONMENT_NOT_READY = 2; + // Storage config not set + CLUSTER_CREATION_BLOCKING_REASON_STORAGE_CONFIGURATION_NOT_READY = 3; +}