diff --git a/gen/go/qdrant/cloud/metering/v1/metering.pb.go b/gen/go/qdrant/cloud/metering/v1/metering.pb.go index 5f52d24e..5a920bef 100644 --- a/gen/go/qdrant/cloud/metering/v1/metering.pb.go +++ b/gen/go/qdrant/cloud/metering/v1/metering.pb.go @@ -334,7 +334,9 @@ type MeteringItem struct { // The Discount applied as a percentage (e.g., 12.5). DiscountAmountPercent *float64 `protobuf:"fixed64,12,opt,name=discount_amount_percent,json=discountAmountPercent,proto3,oneof" json:"discount_amount_percent,omitempty"` // Currency of the different amount values, in ISO 4217 format (e.g., "USD"). - Currency string `protobuf:"bytes,13,opt,name=currency,proto3" json:"currency,omitempty"` + Currency string `protobuf:"bytes,13,opt,name=currency,proto3" json:"currency,omitempty"` + // Labels associated with the cluster at the time of metering. + ClusterLabels map[string]string `protobuf:"bytes,15,rep,name=cluster_labels,json=clusterLabels,proto3" json:"cluster_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -467,6 +469,13 @@ func (x *MeteringItem) GetCurrency() string { return "" } +func (x *MeteringItem) GetClusterLabels() map[string]string { + if x != nil { + return x.ClusterLabels + } + return nil +} + var File_qdrant_cloud_metering_v1_metering_proto protoreflect.FileDescriptor const file_qdrant_cloud_metering_v1_metering_proto_rawDesc = "" + @@ -489,7 +498,7 @@ const file_qdrant_cloud_metering_v1_metering_proto_rawDesc = "" + "\x05month\x18\x02 \x01(\x05B\t\xbaH\x06\x1a\x04\x18\f(\x01R\x05month\x124\n" + "\x11amount_millicents\x18\x03 \x01(\x03B\a\xbaH\x04\"\x02(\x00R\x10amountMillicents\x120\n" + "\bcurrency\x18\x04 \x01(\tB\x14\xbaH\x11r\x0f2\n" + - "^[A-Z]{3}$\x98\x01\x03R\bcurrency\"\x8d\b\n" + + "^[A-Z]{3}$\x98\x01\x03R\bcurrency\"\xb1\t\n" + "\fMeteringItem\x12'\n" + "\n" + "account_id\x18\x01 \x01(\tB\b\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12'\n" + @@ -510,7 +519,11 @@ const file_qdrant_cloud_metering_v1_metering_proto_rawDesc = "" + "\x1adiscount_amount_millicents\x18\v \x01(\x03B\a\xbaH\x04\"\x02(\x00H\x01R\x18discountAmountMillicents\x88\x01\x01\x12T\n" + "\x17discount_amount_percent\x18\f \x01(\x01B\x17\xbaH\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00Y@)\x00\x00\x00\x00\x00\x00\x00\x00H\x02R\x15discountAmountPercent\x88\x01\x01\x120\n" + "\bcurrency\x18\r \x01(\tB\x14\xbaH\x11r\x0f2\n" + - "^[A-Z]{3}$\x98\x01\x03R\bcurrency:o\xbaHl\x1aj\n" + + "^[A-Z]{3}$\x98\x01\x03R\bcurrency\x12`\n" + + "\x0ecluster_labels\x18\x0f \x03(\v29.qdrant.cloud.metering.v1.MeteringItem.ClusterLabelsEntryR\rclusterLabels\x1a@\n" + + "\x12ClusterLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01:o\xbaHl\x1aj\n" + "$metering_item.end_time_gt_start_time\x12!end_time must be after start_time\x1a\x1fthis.end_time > this.start_timeB!\n" + "\x1f_billable_entity_reference_nameB\x1d\n" + "\x1b_discount_amount_millicentsB\x1a\n" + @@ -532,7 +545,7 @@ func file_qdrant_cloud_metering_v1_metering_proto_rawDescGZIP() []byte { return file_qdrant_cloud_metering_v1_metering_proto_rawDescData } -var file_qdrant_cloud_metering_v1_metering_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_qdrant_cloud_metering_v1_metering_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_qdrant_cloud_metering_v1_metering_proto_goTypes = []any{ (*ListMonthlyMeteringsRequest)(nil), // 0: qdrant.cloud.metering.v1.ListMonthlyMeteringsRequest (*ListMonthlyMeteringsResponse)(nil), // 1: qdrant.cloud.metering.v1.ListMonthlyMeteringsResponse @@ -540,22 +553,24 @@ var file_qdrant_cloud_metering_v1_metering_proto_goTypes = []any{ (*ListMeteringsResponse)(nil), // 3: qdrant.cloud.metering.v1.ListMeteringsResponse (*MonthlyMeteringSummary)(nil), // 4: qdrant.cloud.metering.v1.MonthlyMeteringSummary (*MeteringItem)(nil), // 5: qdrant.cloud.metering.v1.MeteringItem - (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp + nil, // 6: qdrant.cloud.metering.v1.MeteringItem.ClusterLabelsEntry + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp } var file_qdrant_cloud_metering_v1_metering_proto_depIdxs = []int32{ 4, // 0: qdrant.cloud.metering.v1.ListMonthlyMeteringsResponse.items:type_name -> qdrant.cloud.metering.v1.MonthlyMeteringSummary 5, // 1: qdrant.cloud.metering.v1.ListMeteringsResponse.items:type_name -> qdrant.cloud.metering.v1.MeteringItem - 6, // 2: qdrant.cloud.metering.v1.MeteringItem.start_time:type_name -> google.protobuf.Timestamp - 6, // 3: qdrant.cloud.metering.v1.MeteringItem.end_time:type_name -> google.protobuf.Timestamp - 0, // 4: qdrant.cloud.metering.v1.MeteringService.ListMonthlyMeterings:input_type -> qdrant.cloud.metering.v1.ListMonthlyMeteringsRequest - 2, // 5: qdrant.cloud.metering.v1.MeteringService.ListMeterings:input_type -> qdrant.cloud.metering.v1.ListMeteringsRequest - 1, // 6: qdrant.cloud.metering.v1.MeteringService.ListMonthlyMeterings:output_type -> qdrant.cloud.metering.v1.ListMonthlyMeteringsResponse - 3, // 7: qdrant.cloud.metering.v1.MeteringService.ListMeterings:output_type -> qdrant.cloud.metering.v1.ListMeteringsResponse - 6, // [6:8] is the sub-list for method output_type - 4, // [4:6] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 7, // 2: qdrant.cloud.metering.v1.MeteringItem.start_time:type_name -> google.protobuf.Timestamp + 7, // 3: qdrant.cloud.metering.v1.MeteringItem.end_time:type_name -> google.protobuf.Timestamp + 6, // 4: qdrant.cloud.metering.v1.MeteringItem.cluster_labels:type_name -> qdrant.cloud.metering.v1.MeteringItem.ClusterLabelsEntry + 0, // 5: qdrant.cloud.metering.v1.MeteringService.ListMonthlyMeterings:input_type -> qdrant.cloud.metering.v1.ListMonthlyMeteringsRequest + 2, // 6: qdrant.cloud.metering.v1.MeteringService.ListMeterings:input_type -> qdrant.cloud.metering.v1.ListMeteringsRequest + 1, // 7: qdrant.cloud.metering.v1.MeteringService.ListMonthlyMeterings:output_type -> qdrant.cloud.metering.v1.ListMonthlyMeteringsResponse + 3, // 8: qdrant.cloud.metering.v1.MeteringService.ListMeterings:output_type -> qdrant.cloud.metering.v1.ListMeteringsResponse + 7, // [7:9] is the sub-list for method output_type + 5, // [5:7] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_qdrant_cloud_metering_v1_metering_proto_init() } @@ -570,7 +585,7 @@ func file_qdrant_cloud_metering_v1_metering_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_qdrant_cloud_metering_v1_metering_proto_rawDesc), len(file_qdrant_cloud_metering_v1_metering_proto_rawDesc)), NumEnums: 0, - NumMessages: 6, + NumMessages: 7, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/openapiv2/qdrant/cloud/metering/v1/metering.swagger.json b/gen/openapiv2/qdrant/cloud/metering/v1/metering.swagger.json index 27338183..b01d8f4b 100644 --- a/gen/openapiv2/qdrant/cloud/metering/v1/metering.swagger.json +++ b/gen/openapiv2/qdrant/cloud/metering/v1/metering.swagger.json @@ -219,6 +219,13 @@ "currency": { "type": "string", "description": "Currency of the different amount values, in ISO 4217 format (e.g., \"USD\")." + }, + "clusterLabels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Labels associated with the cluster at the time of metering." } }, "description": "Metering represents a detailed metering item." diff --git a/gen/python/qdrant/cloud/metering/v1/metering_pb2.py b/gen/python/qdrant/cloud/metering/v1/metering_pb2.py index 8fec45b8..d9316500 100644 --- a/gen/python/qdrant/cloud/metering/v1/metering_pb2.py +++ b/gen/python/qdrant/cloud/metering/v1/metering_pb2.py @@ -28,7 +28,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/metering/v1/metering.proto\x12\x18qdrant.cloud.metering.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a#qdrant/cloud/common/v1/common.proto\"F\n\x1bListMonthlyMeteringsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"f\n\x1cListMonthlyMeteringsResponse\x12\x46\n\x05items\x18\x01 \x03(\x0b\x32\x30.qdrant.cloud.metering.v1.MonthlyMeteringSummaryR\x05items\"\x81\x01\n\x14ListMeteringsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x1f\n\x04year\x18\x02 \x01(\x05\x42\x0b\xbaH\x08\x1a\x06\x18\xb8\x17(\xd0\x0fR\x04year\x12\x1f\n\x05month\x18\x03 \x01(\x05\x42\t\xbaH\x06\x1a\x04\x18\x0c(\x01R\x05month\"U\n\x15ListMeteringsResponse\x12<\n\x05items\x18\x01 \x03(\x0b\x32&.qdrant.cloud.metering.v1.MeteringItemR\x05items\"\xc2\x01\n\x16MonthlyMeteringSummary\x12\x1f\n\x04year\x18\x01 \x01(\x05\x42\x0b\xbaH\x08\x1a\x06\x18\xb8\x17(\xd0\x0fR\x04year\x12\x1f\n\x05month\x18\x02 \x01(\x05\x42\t\xbaH\x06\x1a\x04\x18\x0c(\x01R\x05month\x12\x34\n\x11\x61mount_millicents\x18\x03 \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00R\x10\x61mountMillicents\x12\x30\n\x08\x63urrency\x18\x04 \x01(\tB\x14\xbaH\x11r\x0f\x32\n^[A-Z]{3}$\x98\x01\x03R\x08\x63urrency\"\x8d\x08\n\x0cMeteringItem\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\'\n\ncluster_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\tclusterId\x12*\n\x0c\x63luster_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0b\x63lusterName\x12\x41\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\tstartTime\x12=\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x07\x65ndTime\x12\x36\n\x12\x62illable_entity_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x10\x62illableEntityId\x12Q\n\x1e\x62illable_entity_reference_name\x18\x0e \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x1b\x62illableEntityReferenceName\x88\x01\x01\x12\x39\n\x14\x62illable_entity_type\x18\x07 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x12\x62illableEntityType\x12-\n\x0eprice_per_hour\x18\x08 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0cpricePerHour\x12/\n\x0busage_hours\x18\t \x01(\x01\x42\x0e\xbaH\x0b\x12\t)\x00\x00\x00\x00\x00\x00\x00\x00R\nusageHours\x12\x34\n\x11\x61mount_millicents\x18\n \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00R\x10\x61mountMillicents\x12J\n\x1a\x64iscount_amount_millicents\x18\x0b \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00H\x01R\x18\x64iscountAmountMillicents\x88\x01\x01\x12T\n\x17\x64iscount_amount_percent\x18\x0c \x01(\x01\x42\x17\xbaH\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00Y@)\x00\x00\x00\x00\x00\x00\x00\x00H\x02R\x15\x64iscountAmountPercent\x88\x01\x01\x12\x30\n\x08\x63urrency\x18\r \x01(\tB\x14\xbaH\x11r\x0f\x32\n^[A-Z]{3}$\x98\x01\x03R\x08\x63urrency:o\xbaHl\x1aj\n$metering_item.end_time_gt_start_time\x12!end_time must be after start_time\x1a\x1fthis.end_time > this.start_timeB!\n\x1f_billable_entity_reference_nameB\x1d\n\x1b_discount_amount_millicentsB\x1a\n\x18_discount_amount_percent2\xcf\x03\n\x0fMeteringService\x12\xdb\x01\n\x14ListMonthlyMeterings\x12\x35.qdrant.cloud.metering.v1.ListMonthlyMeteringsRequest\x1a\x36.qdrant.cloud.metering.v1.ListMonthlyMeteringsResponse\"T\x8a\xb5\x18\x18read:payment_information\x82\xd3\xe4\x93\x02\x32\x12\x30/api/metering/v1/accounts/{account_id}/meterings\x12\xd5\x01\n\rListMeterings\x12..qdrant.cloud.metering.v1.ListMeteringsRequest\x1a/.qdrant.cloud.metering.v1.ListMeteringsResponse\"c\x8a\xb5\x18\x18read:payment_information\x82\xd3\xe4\x93\x02\x41\x12?/api/metering/v1/accounts/{account_id}/meterings/{year}/{month}\x1a\x06\xc2\xb5\x18\x02\x08\x01\x42\x86\x02\n\x1c\x63om.qdrant.cloud.metering.v1B\rMeteringProtoP\x01ZTgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/metering/v1;meteringv1\xa2\x02\x03QCM\xaa\x02\x18Qdrant.Cloud.Metering.V1\xca\x02\x18Qdrant\\Cloud\\Metering\\V1\xe2\x02$Qdrant\\Cloud\\Metering\\V1\\GPBMetadata\xea\x02\x1bQdrant::Cloud::Metering::V1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\'qdrant/cloud/metering/v1/metering.proto\x12\x18qdrant.cloud.metering.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a#qdrant/cloud/common/v1/common.proto\"F\n\x1bListMonthlyMeteringsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\"f\n\x1cListMonthlyMeteringsResponse\x12\x46\n\x05items\x18\x01 \x03(\x0b\x32\x30.qdrant.cloud.metering.v1.MonthlyMeteringSummaryR\x05items\"\x81\x01\n\x14ListMeteringsRequest\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\x1f\n\x04year\x18\x02 \x01(\x05\x42\x0b\xbaH\x08\x1a\x06\x18\xb8\x17(\xd0\x0fR\x04year\x12\x1f\n\x05month\x18\x03 \x01(\x05\x42\t\xbaH\x06\x1a\x04\x18\x0c(\x01R\x05month\"U\n\x15ListMeteringsResponse\x12<\n\x05items\x18\x01 \x03(\x0b\x32&.qdrant.cloud.metering.v1.MeteringItemR\x05items\"\xc2\x01\n\x16MonthlyMeteringSummary\x12\x1f\n\x04year\x18\x01 \x01(\x05\x42\x0b\xbaH\x08\x1a\x06\x18\xb8\x17(\xd0\x0fR\x04year\x12\x1f\n\x05month\x18\x02 \x01(\x05\x42\t\xbaH\x06\x1a\x04\x18\x0c(\x01R\x05month\x12\x34\n\x11\x61mount_millicents\x18\x03 \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00R\x10\x61mountMillicents\x12\x30\n\x08\x63urrency\x18\x04 \x01(\tB\x14\xbaH\x11r\x0f\x32\n^[A-Z]{3}$\x98\x01\x03R\x08\x63urrency\"\xb1\t\n\x0cMeteringItem\x12\'\n\naccount_id\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\taccountId\x12\'\n\ncluster_id\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\tclusterId\x12*\n\x0c\x63luster_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0b\x63lusterName\x12\x41\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\tstartTime\x12=\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x06\xbaH\x03\xc8\x01\x01R\x07\x65ndTime\x12\x36\n\x12\x62illable_entity_id\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x10\x62illableEntityId\x12Q\n\x1e\x62illable_entity_reference_name\x18\x0e \x01(\tB\x07\xbaH\x04r\x02\x10\x01H\x00R\x1b\x62illableEntityReferenceName\x88\x01\x01\x12\x39\n\x14\x62illable_entity_type\x18\x07 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x12\x62illableEntityType\x12-\n\x0eprice_per_hour\x18\x08 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0cpricePerHour\x12/\n\x0busage_hours\x18\t \x01(\x01\x42\x0e\xbaH\x0b\x12\t)\x00\x00\x00\x00\x00\x00\x00\x00R\nusageHours\x12\x34\n\x11\x61mount_millicents\x18\n \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00R\x10\x61mountMillicents\x12J\n\x1a\x64iscount_amount_millicents\x18\x0b \x01(\x03\x42\x07\xbaH\x04\"\x02(\x00H\x01R\x18\x64iscountAmountMillicents\x88\x01\x01\x12T\n\x17\x64iscount_amount_percent\x18\x0c \x01(\x01\x42\x17\xbaH\x14\x12\x12\x19\x00\x00\x00\x00\x00\x00Y@)\x00\x00\x00\x00\x00\x00\x00\x00H\x02R\x15\x64iscountAmountPercent\x88\x01\x01\x12\x30\n\x08\x63urrency\x18\r \x01(\tB\x14\xbaH\x11r\x0f\x32\n^[A-Z]{3}$\x98\x01\x03R\x08\x63urrency\x12`\n\x0e\x63luster_labels\x18\x0f \x03(\x0b\x32\x39.qdrant.cloud.metering.v1.MeteringItem.ClusterLabelsEntryR\rclusterLabels\x1a@\n\x12\x43lusterLabelsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01:o\xbaHl\x1aj\n$metering_item.end_time_gt_start_time\x12!end_time must be after start_time\x1a\x1fthis.end_time > this.start_timeB!\n\x1f_billable_entity_reference_nameB\x1d\n\x1b_discount_amount_millicentsB\x1a\n\x18_discount_amount_percent2\xcf\x03\n\x0fMeteringService\x12\xdb\x01\n\x14ListMonthlyMeterings\x12\x35.qdrant.cloud.metering.v1.ListMonthlyMeteringsRequest\x1a\x36.qdrant.cloud.metering.v1.ListMonthlyMeteringsResponse\"T\x8a\xb5\x18\x18read:payment_information\x82\xd3\xe4\x93\x02\x32\x12\x30/api/metering/v1/accounts/{account_id}/meterings\x12\xd5\x01\n\rListMeterings\x12..qdrant.cloud.metering.v1.ListMeteringsRequest\x1a/.qdrant.cloud.metering.v1.ListMeteringsResponse\"c\x8a\xb5\x18\x18read:payment_information\x82\xd3\xe4\x93\x02\x41\x12?/api/metering/v1/accounts/{account_id}/meterings/{year}/{month}\x1a\x06\xc2\xb5\x18\x02\x08\x01\x42\x86\x02\n\x1c\x63om.qdrant.cloud.metering.v1B\rMeteringProtoP\x01ZTgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/metering/v1;meteringv1\xa2\x02\x03QCM\xaa\x02\x18Qdrant.Cloud.Metering.V1\xca\x02\x18Qdrant\\Cloud\\Metering\\V1\xe2\x02$Qdrant\\Cloud\\Metering\\V1\\GPBMetadata\xea\x02\x1bQdrant::Cloud::Metering::V1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -52,6 +52,8 @@ _globals['_MONTHLYMETERINGSUMMARY'].fields_by_name['amount_millicents']._serialized_options = b'\272H\004\"\002(\000' _globals['_MONTHLYMETERINGSUMMARY'].fields_by_name['currency']._loaded_options = None _globals['_MONTHLYMETERINGSUMMARY'].fields_by_name['currency']._serialized_options = b'\272H\021r\0172\n^[A-Z]{3}$\230\001\003' + _globals['_METERINGITEM_CLUSTERLABELSENTRY']._loaded_options = None + _globals['_METERINGITEM_CLUSTERLABELSENTRY']._serialized_options = b'8\001' _globals['_METERINGITEM'].fields_by_name['account_id']._loaded_options = None _globals['_METERINGITEM'].fields_by_name['account_id']._serialized_options = b'\272H\005r\003\260\001\001' _globals['_METERINGITEM'].fields_by_name['cluster_id']._loaded_options = None @@ -99,7 +101,9 @@ _globals['_MONTHLYMETERINGSUMMARY']._serialized_start=594 _globals['_MONTHLYMETERINGSUMMARY']._serialized_end=788 _globals['_METERINGITEM']._serialized_start=791 - _globals['_METERINGITEM']._serialized_end=1828 - _globals['_METERINGSERVICE']._serialized_start=1831 - _globals['_METERINGSERVICE']._serialized_end=2294 + _globals['_METERINGITEM']._serialized_end=1992 + _globals['_METERINGITEM_CLUSTERLABELSENTRY']._serialized_start=1721 + _globals['_METERINGITEM_CLUSTERLABELSENTRY']._serialized_end=1785 + _globals['_METERINGSERVICE']._serialized_start=1995 + _globals['_METERINGSERVICE']._serialized_end=2458 # @@protoc_insertion_point(module_scope) diff --git a/gen/python/qdrant/cloud/metering/v1/metering_pb2.pyi b/gen/python/qdrant/cloud/metering/v1/metering_pb2.pyi index 23d2c9cf..66b79d81 100644 --- a/gen/python/qdrant/cloud/metering/v1/metering_pb2.pyi +++ b/gen/python/qdrant/cloud/metering/v1/metering_pb2.pyi @@ -53,7 +53,14 @@ class MonthlyMeteringSummary(_message.Message): def __init__(self, year: _Optional[int] = ..., month: _Optional[int] = ..., amount_millicents: _Optional[int] = ..., currency: _Optional[str] = ...) -> None: ... class MeteringItem(_message.Message): - __slots__ = ("account_id", "cluster_id", "cluster_name", "start_time", "end_time", "billable_entity_id", "billable_entity_reference_name", "billable_entity_type", "price_per_hour", "usage_hours", "amount_millicents", "discount_amount_millicents", "discount_amount_percent", "currency") + __slots__ = ("account_id", "cluster_id", "cluster_name", "start_time", "end_time", "billable_entity_id", "billable_entity_reference_name", "billable_entity_type", "price_per_hour", "usage_hours", "amount_millicents", "discount_amount_millicents", "discount_amount_percent", "currency", "cluster_labels") + class ClusterLabelsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] CLUSTER_ID_FIELD_NUMBER: _ClassVar[int] CLUSTER_NAME_FIELD_NUMBER: _ClassVar[int] @@ -68,6 +75,7 @@ class MeteringItem(_message.Message): DISCOUNT_AMOUNT_MILLICENTS_FIELD_NUMBER: _ClassVar[int] DISCOUNT_AMOUNT_PERCENT_FIELD_NUMBER: _ClassVar[int] CURRENCY_FIELD_NUMBER: _ClassVar[int] + CLUSTER_LABELS_FIELD_NUMBER: _ClassVar[int] account_id: str cluster_id: str cluster_name: str @@ -82,4 +90,5 @@ class MeteringItem(_message.Message): discount_amount_millicents: int discount_amount_percent: float currency: str - def __init__(self, account_id: _Optional[str] = ..., cluster_id: _Optional[str] = ..., cluster_name: _Optional[str] = ..., start_time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., billable_entity_id: _Optional[str] = ..., billable_entity_reference_name: _Optional[str] = ..., billable_entity_type: _Optional[str] = ..., price_per_hour: _Optional[int] = ..., usage_hours: _Optional[float] = ..., amount_millicents: _Optional[int] = ..., discount_amount_millicents: _Optional[int] = ..., discount_amount_percent: _Optional[float] = ..., currency: _Optional[str] = ...) -> None: ... + cluster_labels: _containers.ScalarMap[str, str] + def __init__(self, account_id: _Optional[str] = ..., cluster_id: _Optional[str] = ..., cluster_name: _Optional[str] = ..., start_time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., billable_entity_id: _Optional[str] = ..., billable_entity_reference_name: _Optional[str] = ..., billable_entity_type: _Optional[str] = ..., price_per_hour: _Optional[int] = ..., usage_hours: _Optional[float] = ..., amount_millicents: _Optional[int] = ..., discount_amount_millicents: _Optional[int] = ..., discount_amount_percent: _Optional[float] = ..., currency: _Optional[str] = ..., cluster_labels: _Optional[_Mapping[str, str]] = ...) -> None: ... diff --git a/gen/typescript/qdrant/cloud/metering/v1/metering_pb.d.ts b/gen/typescript/qdrant/cloud/metering/v1/metering_pb.d.ts index 18f509f1..d983a075 100644 --- a/gen/typescript/qdrant/cloud/metering/v1/metering_pb.d.ts +++ b/gen/typescript/qdrant/cloud/metering/v1/metering_pb.d.ts @@ -275,6 +275,13 @@ export declare type MeteringItem = Message<"qdrant.cloud.metering.v1.MeteringIte * @generated from field: string currency = 13; */ currency: string; + + /** + * Labels associated with the cluster at the time of metering. + * + * @generated from field: map cluster_labels = 15; + */ + clusterLabels: { [key: string]: string }; }; /** @@ -381,6 +388,13 @@ export declare type MeteringItemValid = Message<"qdrant.cloud.metering.v1.Meteri * @generated from field: string currency = 13; */ currency: string; + + /** + * Labels associated with the cluster at the time of metering. + * + * @generated from field: map cluster_labels = 15; + */ + clusterLabels: { [key: string]: string }; }; /** diff --git a/gen/typescript/qdrant/cloud/metering/v1/metering_pb.js b/gen/typescript/qdrant/cloud/metering/v1/metering_pb.js index 8b41be47..689bff93 100644 --- a/gen/typescript/qdrant/cloud/metering/v1/metering_pb.js +++ b/gen/typescript/qdrant/cloud/metering/v1/metering_pb.js @@ -12,7 +12,7 @@ import { file_qdrant_cloud_common_v1_common } from "../../common/v1/common_pb.js * Describes the file qdrant/cloud/metering/v1/metering.proto. */ export const file_qdrant_cloud_metering_v1_metering = /*@__PURE__*/ - fileDesc("CidxZHJhbnQvY2xvdWQvbWV0ZXJpbmcvdjEvbWV0ZXJpbmcucHJvdG8SGHFkcmFudC5jbG91ZC5tZXRlcmluZy52MSI7ChtMaXN0TW9udGhseU1ldGVyaW5nc1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQEiXwocTGlzdE1vbnRobHlNZXRlcmluZ3NSZXNwb25zZRI/CgVpdGVtcxgBIAMoCzIwLnFkcmFudC5jbG91ZC5tZXRlcmluZy52MS5Nb250aGx5TWV0ZXJpbmdTdW1tYXJ5ImkKFExpc3RNZXRlcmluZ3NSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhkKBHllYXIYAiABKAVCC7pICBoGGLgXKNAPEhgKBW1vbnRoGAMgASgFQgm6SAYaBBgMKAEiTgoVTGlzdE1ldGVyaW5nc1Jlc3BvbnNlEjUKBWl0ZW1zGAEgAygLMiYucWRyYW50LmNsb3VkLm1ldGVyaW5nLnYxLk1ldGVyaW5nSXRlbSKZAQoWTW9udGhseU1ldGVyaW5nU3VtbWFyeRIZCgR5ZWFyGAEgASgFQgu6SAgaBhi4FyjQDxIYCgVtb250aBgCIAEoBUIJukgGGgQYDCgBEiIKEWFtb3VudF9taWxsaWNlbnRzGAMgASgDQge6SAQiAigAEiYKCGN1cnJlbmN5GAQgASgJQhS6SBFyDzIKXltBLVpdezN9JJgBAyKsBgoMTWV0ZXJpbmdJdGVtEhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhwKCmNsdXN0ZXJfaWQYAiABKAlCCLpIBXIDsAEBEh0KDGNsdXN0ZXJfbmFtZRgDIAEoCUIHukgEcgIQARI2CgpzdGFydF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEjQKCGVuZF90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEiQKEmJpbGxhYmxlX2VudGl0eV9pZBgGIAEoCUIIukgFcgOwAQESNAoeYmlsbGFibGVfZW50aXR5X3JlZmVyZW5jZV9uYW1lGA4gASgJQge6SARyAhABSACIAQESJQoUYmlsbGFibGVfZW50aXR5X3R5cGUYByABKAlCB7pIBHICEAESHwoOcHJpY2VfcGVyX2hvdXIYCCABKAVCB7pIBBoCKAASIwoLdXNhZ2VfaG91cnMYCSABKAFCDrpICxIJKQAAAAAAAAAAEiIKEWFtb3VudF9taWxsaWNlbnRzGAogASgDQge6SAQiAigAEjAKGmRpc2NvdW50X2Ftb3VudF9taWxsaWNlbnRzGAsgASgDQge6SAQiAigASAGIAQESPQoXZGlzY291bnRfYW1vdW50X3BlcmNlbnQYDCABKAFCF7pIFBISGQAAAAAAAFlAKQAAAAAAAAAASAKIAQESJgoIY3VycmVuY3kYDSABKAlCFLpIEXIPMgpeW0EtWl17M30kmAEDOm+6SGwaagokbWV0ZXJpbmdfaXRlbS5lbmRfdGltZV9ndF9zdGFydF90aW1lEiFlbmRfdGltZSBtdXN0IGJlIGFmdGVyIHN0YXJ0X3RpbWUaH3RoaXMuZW5kX3RpbWUgPiB0aGlzLnN0YXJ0X3RpbWVCIQofX2JpbGxhYmxlX2VudGl0eV9yZWZlcmVuY2VfbmFtZUIdChtfZGlzY291bnRfYW1vdW50X21pbGxpY2VudHNCGgoYX2Rpc2NvdW50X2Ftb3VudF9wZXJjZW50Ms8DCg9NZXRlcmluZ1NlcnZpY2US2wEKFExpc3RNb250aGx5TWV0ZXJpbmdzEjUucWRyYW50LmNsb3VkLm1ldGVyaW5nLnYxLkxpc3RNb250aGx5TWV0ZXJpbmdzUmVxdWVzdBo2LnFkcmFudC5jbG91ZC5tZXRlcmluZy52MS5MaXN0TW9udGhseU1ldGVyaW5nc1Jlc3BvbnNlIlSKtRgYcmVhZDpwYXltZW50X2luZm9ybWF0aW9ugtPkkwIyEjAvYXBpL21ldGVyaW5nL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9tZXRlcmluZ3MS1QEKDUxpc3RNZXRlcmluZ3MSLi5xZHJhbnQuY2xvdWQubWV0ZXJpbmcudjEuTGlzdE1ldGVyaW5nc1JlcXVlc3QaLy5xZHJhbnQuY2xvdWQubWV0ZXJpbmcudjEuTGlzdE1ldGVyaW5nc1Jlc3BvbnNlImOKtRgYcmVhZDpwYXltZW50X2luZm9ybWF0aW9ugtPkkwJBEj8vYXBpL21ldGVyaW5nL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9tZXRlcmluZ3Mve3llYXJ9L3ttb250aH0aBsK1GAIIAUKGAgocY29tLnFkcmFudC5jbG91ZC5tZXRlcmluZy52MUINTWV0ZXJpbmdQcm90b1ABWlRnaXRodWIuY29tL3FkcmFudC9xZHJhbnQtY2xvdWQtcHVibGljLWFwaS9nZW4vZ28vcWRyYW50L2Nsb3VkL21ldGVyaW5nL3YxO21ldGVyaW5ndjGiAgNRQ02qAhhRZHJhbnQuQ2xvdWQuTWV0ZXJpbmcuVjHKAhhRZHJhbnRcQ2xvdWRcTWV0ZXJpbmdcVjHiAiRRZHJhbnRcQ2xvdWRcTWV0ZXJpbmdcVjFcR1BCTWV0YWRhdGHqAhtRZHJhbnQ6OkNsb3VkOjpNZXRlcmluZzo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_annotations, file_google_protobuf_timestamp, file_qdrant_cloud_common_v1_common]); + fileDesc("CidxZHJhbnQvY2xvdWQvbWV0ZXJpbmcvdjEvbWV0ZXJpbmcucHJvdG8SGHFkcmFudC5jbG91ZC5tZXRlcmluZy52MSI7ChtMaXN0TW9udGhseU1ldGVyaW5nc1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQEiXwocTGlzdE1vbnRobHlNZXRlcmluZ3NSZXNwb25zZRI/CgVpdGVtcxgBIAMoCzIwLnFkcmFudC5jbG91ZC5tZXRlcmluZy52MS5Nb250aGx5TWV0ZXJpbmdTdW1tYXJ5ImkKFExpc3RNZXRlcmluZ3NSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhkKBHllYXIYAiABKAVCC7pICBoGGLgXKNAPEhgKBW1vbnRoGAMgASgFQgm6SAYaBBgMKAEiTgoVTGlzdE1ldGVyaW5nc1Jlc3BvbnNlEjUKBWl0ZW1zGAEgAygLMiYucWRyYW50LmNsb3VkLm1ldGVyaW5nLnYxLk1ldGVyaW5nSXRlbSKZAQoWTW9udGhseU1ldGVyaW5nU3VtbWFyeRIZCgR5ZWFyGAEgASgFQgu6SAgaBhi4FyjQDxIYCgVtb250aBgCIAEoBUIJukgGGgQYDCgBEiIKEWFtb3VudF9taWxsaWNlbnRzGAMgASgDQge6SAQiAigAEiYKCGN1cnJlbmN5GAQgASgJQhS6SBFyDzIKXltBLVpdezN9JJgBAyK1BwoMTWV0ZXJpbmdJdGVtEhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhwKCmNsdXN0ZXJfaWQYAiABKAlCCLpIBXIDsAEBEh0KDGNsdXN0ZXJfbmFtZRgDIAEoCUIHukgEcgIQARI2CgpzdGFydF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEjQKCGVuZF90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEiQKEmJpbGxhYmxlX2VudGl0eV9pZBgGIAEoCUIIukgFcgOwAQESNAoeYmlsbGFibGVfZW50aXR5X3JlZmVyZW5jZV9uYW1lGA4gASgJQge6SARyAhABSACIAQESJQoUYmlsbGFibGVfZW50aXR5X3R5cGUYByABKAlCB7pIBHICEAESHwoOcHJpY2VfcGVyX2hvdXIYCCABKAVCB7pIBBoCKAASIwoLdXNhZ2VfaG91cnMYCSABKAFCDrpICxIJKQAAAAAAAAAAEiIKEWFtb3VudF9taWxsaWNlbnRzGAogASgDQge6SAQiAigAEjAKGmRpc2NvdW50X2Ftb3VudF9taWxsaWNlbnRzGAsgASgDQge6SAQiAigASAGIAQESPQoXZGlzY291bnRfYW1vdW50X3BlcmNlbnQYDCABKAFCF7pIFBISGQAAAAAAAFlAKQAAAAAAAAAASAKIAQESJgoIY3VycmVuY3kYDSABKAlCFLpIEXIPMgpeW0EtWl17M30kmAEDElEKDmNsdXN0ZXJfbGFiZWxzGA8gAygLMjkucWRyYW50LmNsb3VkLm1ldGVyaW5nLnYxLk1ldGVyaW5nSXRlbS5DbHVzdGVyTGFiZWxzRW50cnkaNAoSQ2x1c3RlckxhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAE6b7pIbBpqCiRtZXRlcmluZ19pdGVtLmVuZF90aW1lX2d0X3N0YXJ0X3RpbWUSIWVuZF90aW1lIG11c3QgYmUgYWZ0ZXIgc3RhcnRfdGltZRofdGhpcy5lbmRfdGltZSA+IHRoaXMuc3RhcnRfdGltZUIhCh9fYmlsbGFibGVfZW50aXR5X3JlZmVyZW5jZV9uYW1lQh0KG19kaXNjb3VudF9hbW91bnRfbWlsbGljZW50c0IaChhfZGlzY291bnRfYW1vdW50X3BlcmNlbnQyzwMKD01ldGVyaW5nU2VydmljZRLbAQoUTGlzdE1vbnRobHlNZXRlcmluZ3MSNS5xZHJhbnQuY2xvdWQubWV0ZXJpbmcudjEuTGlzdE1vbnRobHlNZXRlcmluZ3NSZXF1ZXN0GjYucWRyYW50LmNsb3VkLm1ldGVyaW5nLnYxLkxpc3RNb250aGx5TWV0ZXJpbmdzUmVzcG9uc2UiVIq1GBhyZWFkOnBheW1lbnRfaW5mb3JtYXRpb26C0+STAjISMC9hcGkvbWV0ZXJpbmcvdjEvYWNjb3VudHMve2FjY291bnRfaWR9L21ldGVyaW5ncxLVAQoNTGlzdE1ldGVyaW5ncxIuLnFkcmFudC5jbG91ZC5tZXRlcmluZy52MS5MaXN0TWV0ZXJpbmdzUmVxdWVzdBovLnFkcmFudC5jbG91ZC5tZXRlcmluZy52MS5MaXN0TWV0ZXJpbmdzUmVzcG9uc2UiY4q1GBhyZWFkOnBheW1lbnRfaW5mb3JtYXRpb26C0+STAkESPy9hcGkvbWV0ZXJpbmcvdjEvYWNjb3VudHMve2FjY291bnRfaWR9L21ldGVyaW5ncy97eWVhcn0ve21vbnRofRoGwrUYAggBQoYCChxjb20ucWRyYW50LmNsb3VkLm1ldGVyaW5nLnYxQg1NZXRlcmluZ1Byb3RvUAFaVGdpdGh1Yi5jb20vcWRyYW50L3FkcmFudC1jbG91ZC1wdWJsaWMtYXBpL2dlbi9nby9xZHJhbnQvY2xvdWQvbWV0ZXJpbmcvdjE7bWV0ZXJpbmd2MaICA1FDTaoCGFFkcmFudC5DbG91ZC5NZXRlcmluZy5WMcoCGFFkcmFudFxDbG91ZFxNZXRlcmluZ1xWMeICJFFkcmFudFxDbG91ZFxNZXRlcmluZ1xWMVxHUEJNZXRhZGF0YeoCG1FkcmFudDo6Q2xvdWQ6Ok1ldGVyaW5nOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_protobuf_timestamp, file_qdrant_cloud_common_v1_common]); /** * Describes the message qdrant.cloud.metering.v1.ListMonthlyMeteringsRequest. diff --git a/proto/qdrant/cloud/metering/v1/metering.proto b/proto/qdrant/cloud/metering/v1/metering.proto index 62e51d8f..2978ca3a 100644 --- a/proto/qdrant/cloud/metering/v1/metering.proto +++ b/proto/qdrant/cloud/metering/v1/metering.proto @@ -137,4 +137,6 @@ message MeteringItem { len: 3 pattern: "^[A-Z]{3}$" }]; + // Labels associated with the cluster at the time of metering. + map cluster_labels = 15; }