diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt index afd7df0b..56b8a64e 100644 --- a/.github/actions/spelling/allow.txt +++ b/.github/actions/spelling/allow.txt @@ -19,3 +19,5 @@ nvidia amd linode openshift +timeseries +vcpu diff --git a/gen/go/qdrant/cloud/monitoring/v1/monitoring.pb.go b/gen/go/qdrant/cloud/monitoring/v1/monitoring.pb.go new file mode 100644 index 00000000..c9b2b619 --- /dev/null +++ b/gen/go/qdrant/cloud/monitoring/v1/monitoring.pb.go @@ -0,0 +1,1543 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.4 +// protoc (unknown) +// source: qdrant/cloud/monitoring/v1/monitoring.proto + +package monitoringv1 + +import ( + _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate" + _ "github.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/common/v1" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Aggregator defines how metrics should be aggregated over time. +type Aggregator int32 + +const ( + // Unspecified aggregation function. + Aggregator_AGGREGATOR_UNSPECIFIED Aggregator = 0 + // SUM aggregation function. + Aggregator_AGGREGATOR_SUM Aggregator = 1 + // AVG aggregation function. + Aggregator_AGGREGATOR_AVG Aggregator = 2 + // MAX aggregation function. + Aggregator_AGGREGATOR_MAX Aggregator = 3 + // MIN aggregation function. + Aggregator_AGGREGATOR_MIN Aggregator = 4 +) + +// Enum value maps for Aggregator. +var ( + Aggregator_name = map[int32]string{ + 0: "AGGREGATOR_UNSPECIFIED", + 1: "AGGREGATOR_SUM", + 2: "AGGREGATOR_AVG", + 3: "AGGREGATOR_MAX", + 4: "AGGREGATOR_MIN", + } + Aggregator_value = map[string]int32{ + "AGGREGATOR_UNSPECIFIED": 0, + "AGGREGATOR_SUM": 1, + "AGGREGATOR_AVG": 2, + "AGGREGATOR_MAX": 3, + "AGGREGATOR_MIN": 4, + } +) + +func (x Aggregator) Enum() *Aggregator { + p := new(Aggregator) + *p = x + return p +} + +func (x Aggregator) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Aggregator) Descriptor() protoreflect.EnumDescriptor { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_enumTypes[0].Descriptor() +} + +func (Aggregator) Type() protoreflect.EnumType { + return &file_qdrant_cloud_monitoring_v1_monitoring_proto_enumTypes[0] +} + +func (x Aggregator) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Aggregator.Descriptor instead. +func (Aggregator) EnumDescriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{0} +} + +// GetClusterSummaryMetricsRequest is the request for the GetClusterSummaryMetrics function +type GetClusterSummaryMetricsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The identifier of the account (in GUID format). + // This is a required field. + AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterSummaryMetricsRequest) Reset() { + *x = GetClusterSummaryMetricsRequest{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterSummaryMetricsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterSummaryMetricsRequest) ProtoMessage() {} + +func (x *GetClusterSummaryMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterSummaryMetricsRequest.ProtoReflect.Descriptor instead. +func (*GetClusterSummaryMetricsRequest) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{0} +} + +func (x *GetClusterSummaryMetricsRequest) GetAccountId() string { + if x != nil { + return x.AccountId + } + return "" +} + +func (x *GetClusterSummaryMetricsRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +// GetClusterSummaryMetricsResponse is the response from the GetClusterSummaryMetrics function +type GetClusterSummaryMetricsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // List of metrics aggregated per node in the cluster. + Nodes []*ClusterNodeMetrics `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterSummaryMetricsResponse) Reset() { + *x = GetClusterSummaryMetricsResponse{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterSummaryMetricsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterSummaryMetricsResponse) ProtoMessage() {} + +func (x *GetClusterSummaryMetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterSummaryMetricsResponse.ProtoReflect.Descriptor instead. +func (*GetClusterSummaryMetricsResponse) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{1} +} + +func (x *GetClusterSummaryMetricsResponse) GetNodes() []*ClusterNodeMetrics { + if x != nil { + return x.Nodes + } + return nil +} + +// GetClusterUsageMetricsRequest is the request for the GetClusterUsageMetrics function +type GetClusterUsageMetricsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The identifier of the account (in GUID format). + // This is a required field. + AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // Optional start time for the metrics query. + // If omitted, defaults to 1 hour ago. + Since *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=since,proto3,oneof" json:"since,omitempty"` + // Optional end time for the metrics query. + // If omitted, defaults to current time. + Until *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=until,proto3,oneof" json:"until,omitempty"` + // Aggregation function to apply to the time series data. + // If omitted, defaults to SUM. + Aggregator *Aggregator `protobuf:"varint,5,opt,name=aggregator,proto3,enum=qdrant.cloud.monitoring.v1.Aggregator,oneof" json:"aggregator,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterUsageMetricsRequest) Reset() { + *x = GetClusterUsageMetricsRequest{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterUsageMetricsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterUsageMetricsRequest) ProtoMessage() {} + +func (x *GetClusterUsageMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterUsageMetricsRequest.ProtoReflect.Descriptor instead. +func (*GetClusterUsageMetricsRequest) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{2} +} + +func (x *GetClusterUsageMetricsRequest) GetAccountId() string { + if x != nil { + return x.AccountId + } + return "" +} + +func (x *GetClusterUsageMetricsRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +func (x *GetClusterUsageMetricsRequest) GetSince() *timestamppb.Timestamp { + if x != nil { + return x.Since + } + return nil +} + +func (x *GetClusterUsageMetricsRequest) GetUntil() *timestamppb.Timestamp { + if x != nil { + return x.Until + } + return nil +} + +func (x *GetClusterUsageMetricsRequest) GetAggregator() Aggregator { + if x != nil && x.Aggregator != nil { + return *x.Aggregator + } + return Aggregator_AGGREGATOR_UNSPECIFIED +} + +// GetClusterUsageMetricsResponse is the response from the GetClusterUsageMetrics function +type GetClusterUsageMetricsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Timeseries of overall CPU usage across the cluster. + Cpu []*Metric `protobuf:"bytes,1,rep,name=cpu,proto3" json:"cpu,omitempty"` + // Timeseries of overall RAM usage across the cluster. + Ram []*Metric `protobuf:"bytes,2,rep,name=ram,proto3" json:"ram,omitempty"` + // Timeseries of RAM used for cache across the cluster. + RamCache []*Metric `protobuf:"bytes,3,rep,name=ram_cache,json=ramCache,proto3" json:"ram_cache,omitempty"` + // Timeseries of RSS memory used across the cluster. + RamRss []*Metric `protobuf:"bytes,4,rep,name=ram_rss,json=ramRss,proto3" json:"ram_rss,omitempty"` + // Timeseries of RSS memory used by the Qdrant database across the cluster. + RamQdrantRss []*Metric `protobuf:"bytes,5,rep,name=ram_qdrant_rss,json=ramQdrantRss,proto3" json:"ram_qdrant_rss,omitempty"` + // Timeseries of disk usage across the cluster. + Disk []*Metric `protobuf:"bytes,6,rep,name=disk,proto3" json:"disk,omitempty"` + // Timeseries of requests per second (RPS) across the cluster. + Rps []*Metric `protobuf:"bytes,7,rep,name=rps,proto3" json:"rps,omitempty"` + // Timeseries of request latency across the cluster. + Latency []*Metric `protobuf:"bytes,8,rep,name=latency,proto3" json:"latency,omitempty"` + // Per-node metrics. + Nodes []*ClusterNodeUsageMetrics `protobuf:"bytes,9,rep,name=nodes,proto3" json:"nodes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterUsageMetricsResponse) Reset() { + *x = GetClusterUsageMetricsResponse{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterUsageMetricsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterUsageMetricsResponse) ProtoMessage() {} + +func (x *GetClusterUsageMetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterUsageMetricsResponse.ProtoReflect.Descriptor instead. +func (*GetClusterUsageMetricsResponse) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{3} +} + +func (x *GetClusterUsageMetricsResponse) GetCpu() []*Metric { + if x != nil { + return x.Cpu + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetRam() []*Metric { + if x != nil { + return x.Ram + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetRamCache() []*Metric { + if x != nil { + return x.RamCache + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetRamRss() []*Metric { + if x != nil { + return x.RamRss + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetRamQdrantRss() []*Metric { + if x != nil { + return x.RamQdrantRss + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetDisk() []*Metric { + if x != nil { + return x.Disk + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetRps() []*Metric { + if x != nil { + return x.Rps + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetLatency() []*Metric { + if x != nil { + return x.Latency + } + return nil +} + +func (x *GetClusterUsageMetricsResponse) GetNodes() []*ClusterNodeUsageMetrics { + if x != nil { + return x.Nodes + } + return nil +} + +// GetClusterLogsRequest is the request for the GetClusterLogs function +type GetClusterLogsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The identifier of the account (in GUID format). + // This is a required field. + AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // Optional start time for the logs query. + // If omitted, defaults to 3 days ago. + Since *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=since,proto3,oneof" json:"since,omitempty"` + // Optional end time for the logs query. + // If omitted, defaults to current time. + Until *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=until,proto3,oneof" json:"until,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterLogsRequest) Reset() { + *x = GetClusterLogsRequest{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterLogsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterLogsRequest) ProtoMessage() {} + +func (x *GetClusterLogsRequest) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterLogsRequest.ProtoReflect.Descriptor instead. +func (*GetClusterLogsRequest) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{4} +} + +func (x *GetClusterLogsRequest) GetAccountId() string { + if x != nil { + return x.AccountId + } + return "" +} + +func (x *GetClusterLogsRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +func (x *GetClusterLogsRequest) GetSince() *timestamppb.Timestamp { + if x != nil { + return x.Since + } + return nil +} + +func (x *GetClusterLogsRequest) GetUntil() *timestamppb.Timestamp { + if x != nil { + return x.Until + } + return nil +} + +// GetClusterLogsResponse is the response from the GetClusterLogs function +type GetClusterLogsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // A list of log entries from the cluster. + Items []*LogEntry `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterLogsResponse) Reset() { + *x = GetClusterLogsResponse{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterLogsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterLogsResponse) ProtoMessage() {} + +func (x *GetClusterLogsResponse) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterLogsResponse.ProtoReflect.Descriptor instead. +func (*GetClusterLogsResponse) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{5} +} + +func (x *GetClusterLogsResponse) GetItems() []*LogEntry { + if x != nil { + return x.Items + } + return nil +} + +// GetClusterEventsRequest is the request for the GetClusterEvents function +type GetClusterEventsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The identifier of the account (in GUID format). + // This is a required field. + AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // Optional start time for the events query. + // If omitted, defaults to 7 days ago. + Since *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=since,proto3,oneof" json:"since,omitempty"` + // Optional end time for the events query. + // If omitted, defaults to current time. + Until *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=until,proto3,oneof" json:"until,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterEventsRequest) Reset() { + *x = GetClusterEventsRequest{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterEventsRequest) ProtoMessage() {} + +func (x *GetClusterEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterEventsRequest.ProtoReflect.Descriptor instead. +func (*GetClusterEventsRequest) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{6} +} + +func (x *GetClusterEventsRequest) GetAccountId() string { + if x != nil { + return x.AccountId + } + return "" +} + +func (x *GetClusterEventsRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +func (x *GetClusterEventsRequest) GetSince() *timestamppb.Timestamp { + if x != nil { + return x.Since + } + return nil +} + +func (x *GetClusterEventsRequest) GetUntil() *timestamppb.Timestamp { + if x != nil { + return x.Until + } + return nil +} + +// GetClusterEventsRequest is the response from the GetClusterEvents function +type GetClusterEventsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // A list of entries representing events that have happened in the cluster. + Items []*LogEntry `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetClusterEventsResponse) Reset() { + *x = GetClusterEventsResponse{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetClusterEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterEventsResponse) ProtoMessage() {} + +func (x *GetClusterEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClusterEventsResponse.ProtoReflect.Descriptor instead. +func (*GetClusterEventsResponse) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{7} +} + +func (x *GetClusterEventsResponse) GetItems() []*LogEntry { + if x != nil { + return x.Items + } + return nil +} + +// ClusterNodeMetrics contains metric overview for a node. +type ClusterNodeMetrics struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Unique identifier of the node. + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Overview of CPU usage. + Cpu *ClusterMetricOverview `protobuf:"bytes,2,opt,name=cpu,proto3" json:"cpu,omitempty"` + // Overview of RAM usage. + Ram *ClusterMetricOverview `protobuf:"bytes,3,opt,name=ram,proto3" json:"ram,omitempty"` + // Overview of RAM cache usage. + RamCache *ClusterMetricOverview `protobuf:"bytes,4,opt,name=ram_cache,json=ramCache,proto3" json:"ram_cache,omitempty"` + // Overview of RSS memory usage. + RamRss *ClusterMetricOverview `protobuf:"bytes,5,opt,name=ram_rss,json=ramRss,proto3" json:"ram_rss,omitempty"` + // Overview of RSS memory usage by the Qdrant database. + RamQdrantRss *ClusterMetricOverview `protobuf:"bytes,6,opt,name=ram_qdrant_rss,json=ramQdrantRss,proto3" json:"ram_qdrant_rss,omitempty"` + // Overview of disk usage. + Disk *ClusterMetricOverview `protobuf:"bytes,7,opt,name=disk,proto3" json:"disk,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ClusterNodeMetrics) Reset() { + *x = ClusterNodeMetrics{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ClusterNodeMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClusterNodeMetrics) ProtoMessage() {} + +func (x *ClusterNodeMetrics) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClusterNodeMetrics.ProtoReflect.Descriptor instead. +func (*ClusterNodeMetrics) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{8} +} + +func (x *ClusterNodeMetrics) GetNodeId() string { + if x != nil { + return x.NodeId + } + return "" +} + +func (x *ClusterNodeMetrics) GetCpu() *ClusterMetricOverview { + if x != nil { + return x.Cpu + } + return nil +} + +func (x *ClusterNodeMetrics) GetRam() *ClusterMetricOverview { + if x != nil { + return x.Ram + } + return nil +} + +func (x *ClusterNodeMetrics) GetRamCache() *ClusterMetricOverview { + if x != nil { + return x.RamCache + } + return nil +} + +func (x *ClusterNodeMetrics) GetRamRss() *ClusterMetricOverview { + if x != nil { + return x.RamRss + } + return nil +} + +func (x *ClusterNodeMetrics) GetRamQdrantRss() *ClusterMetricOverview { + if x != nil { + return x.RamQdrantRss + } + return nil +} + +func (x *ClusterNodeMetrics) GetDisk() *ClusterMetricOverview { + if x != nil { + return x.Disk + } + return nil +} + +// ClusterMetricOverview contains both the average values of a metric over +// predefined intervals, and the total available value of that resource. +type ClusterMetricOverview struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Average metric values calculated over various time intervals. + Avg []*IntervalAverage `protobuf:"bytes,1,rep,name=avg,proto3" json:"avg,omitempty"` + // Total available value of the resource on the node. + Total *ResourceValue `protobuf:"bytes,2,opt,name=total,proto3" json:"total,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ClusterMetricOverview) Reset() { + *x = ClusterMetricOverview{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ClusterMetricOverview) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClusterMetricOverview) ProtoMessage() {} + +func (x *ClusterMetricOverview) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClusterMetricOverview.ProtoReflect.Descriptor instead. +func (*ClusterMetricOverview) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{9} +} + +func (x *ClusterMetricOverview) GetAvg() []*IntervalAverage { + if x != nil { + return x.Avg + } + return nil +} + +func (x *ClusterMetricOverview) GetTotal() *ResourceValue { + if x != nil { + return x.Total + } + return nil +} + +// IntervalAverage represents the average value of a metric over a specific time interval. +type IntervalAverage struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The duration of the interval. + Interval *durationpb.Duration `protobuf:"bytes,1,opt,name=interval,proto3" json:"interval,omitempty"` + // Average value of the metric during the specified interval. + Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IntervalAverage) Reset() { + *x = IntervalAverage{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IntervalAverage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntervalAverage) ProtoMessage() {} + +func (x *IntervalAverage) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IntervalAverage.ProtoReflect.Descriptor instead. +func (*IntervalAverage) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{10} +} + +func (x *IntervalAverage) GetInterval() *durationpb.Duration { + if x != nil { + return x.Interval + } + return nil +} + +func (x *IntervalAverage) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +// ResourceValue represents the total value of a resource along with its unit. +type ResourceValue struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Value of the resource, e.g., 0.5. + Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` + // Unit of the resource value, e.g., "vcpu/core". + Unit string `protobuf:"bytes,2,opt,name=unit,proto3" json:"unit,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ResourceValue) Reset() { + *x = ResourceValue{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceValue) ProtoMessage() {} + +func (x *ResourceValue) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceValue.ProtoReflect.Descriptor instead. +func (*ResourceValue) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{11} +} + +func (x *ResourceValue) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *ResourceValue) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + +// ClusterNodeUsageMetrics defines per-node usage metrics. +type ClusterNodeUsageMetrics struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Unique identifier of the node. + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Timeseries of CPU usage for the node. + Cpu []*Metric `protobuf:"bytes,2,rep,name=cpu,proto3" json:"cpu,omitempty"` + // Timeseries of RAM usage for the node. + Ram []*Metric `protobuf:"bytes,3,rep,name=ram,proto3" json:"ram,omitempty"` + // Timeseries of RAM cache usage for the node. + RamCache []*Metric `protobuf:"bytes,4,rep,name=ram_cache,json=ramCache,proto3" json:"ram_cache,omitempty"` + // Timeseries of RSS memory usage for the node. + RamRss []*Metric `protobuf:"bytes,5,rep,name=ram_rss,json=ramRss,proto3" json:"ram_rss,omitempty"` + // Timeseries of RSS memory usage by the Qdrant database for the node. + RamQdrantRss []*Metric `protobuf:"bytes,6,rep,name=ram_qdrant_rss,json=ramQdrantRss,proto3" json:"ram_qdrant_rss,omitempty"` + // Timeseries of disk usage for the node. + Disk []*Metric `protobuf:"bytes,7,rep,name=disk,proto3" json:"disk,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ClusterNodeUsageMetrics) Reset() { + *x = ClusterNodeUsageMetrics{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ClusterNodeUsageMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClusterNodeUsageMetrics) ProtoMessage() {} + +func (x *ClusterNodeUsageMetrics) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClusterNodeUsageMetrics.ProtoReflect.Descriptor instead. +func (*ClusterNodeUsageMetrics) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{12} +} + +func (x *ClusterNodeUsageMetrics) GetNodeId() string { + if x != nil { + return x.NodeId + } + return "" +} + +func (x *ClusterNodeUsageMetrics) GetCpu() []*Metric { + if x != nil { + return x.Cpu + } + return nil +} + +func (x *ClusterNodeUsageMetrics) GetRam() []*Metric { + if x != nil { + return x.Ram + } + return nil +} + +func (x *ClusterNodeUsageMetrics) GetRamCache() []*Metric { + if x != nil { + return x.RamCache + } + return nil +} + +func (x *ClusterNodeUsageMetrics) GetRamRss() []*Metric { + if x != nil { + return x.RamRss + } + return nil +} + +func (x *ClusterNodeUsageMetrics) GetRamQdrantRss() []*Metric { + if x != nil { + return x.RamQdrantRss + } + return nil +} + +func (x *ClusterNodeUsageMetrics) GetDisk() []*Metric { + if x != nil { + return x.Disk + } + return nil +} + +// A single metric data point. +type Metric struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Timestamp of the data point. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // Numerical value of the metric at the given timestamp. + Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Metric) Reset() { + *x = Metric{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Metric) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metric) ProtoMessage() {} + +func (x *Metric) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Metric.ProtoReflect.Descriptor instead. +func (*Metric) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{13} +} + +func (x *Metric) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *Metric) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +// LogEntry represents a single log line. +type LogEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The timestamp indicating when the log entry was recorded. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // The content of the log message. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogEntry) Reset() { + *x = LogEntry{} + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogEntry) ProtoMessage() {} + +func (x *LogEntry) ProtoReflect() protoreflect.Message { + mi := &file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogEntry.ProtoReflect.Descriptor instead. +func (*LogEntry) Descriptor() ([]byte, []int) { + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP(), []int{14} +} + +func (x *LogEntry) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *LogEntry) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +var File_qdrant_cloud_monitoring_v1_monitoring_proto protoreflect.FileDescriptor + +var file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDesc = string([]byte{ + 0x0a, 0x2b, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x73, 0x0a, 0x1f, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, + 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, + 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x68, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0xcf, 0x02, 0x0a, 0x1d, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, + 0x01, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, + 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, + 0x01, 0x52, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x69, 0x6e, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xcb, 0x04, 0x0a, 0x1e, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, + 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, + 0x03, 0x63, 0x70, 0x75, 0x12, 0x34, 0x0a, 0x03, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x03, 0x72, 0x61, 0x6d, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x61, + 0x6d, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x52, 0x08, 0x72, 0x61, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x72, + 0x61, 0x6d, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x06, 0x72, 0x61, 0x6d, 0x52, 0x73, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x72, 0x61, 0x6d, 0x5f, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x72, 0x61, 0x6d, 0x51, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x52, + 0x73, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x12, 0x34, 0x0a, 0x03, 0x72, 0x70, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x03, 0x72, 0x70, 0x73, + 0x12, 0x3c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x49, + 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, + 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, + 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x05, + 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x22, 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xed, 0x01, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0a, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, + 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, + 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x73, + 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x05, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, + 0x05, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x69, + 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x22, 0x56, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xf3, 0x03, 0x0a, 0x12, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x17, 0x0a, 0x07, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x43, 0x0a, 0x03, 0x72, 0x61, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x03, 0x72, 0x61, 0x6d, 0x12, + 0x4e, 0x0a, 0x09, 0x72, 0x61, 0x6d, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x08, 0x72, 0x61, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, + 0x4a, 0x0a, 0x07, 0x72, 0x61, 0x6d, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x76, 0x65, 0x72, 0x76, + 0x69, 0x65, 0x77, 0x52, 0x06, 0x72, 0x61, 0x6d, 0x52, 0x73, 0x73, 0x12, 0x57, 0x0a, 0x0e, 0x72, + 0x61, 0x6d, 0x5f, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x76, + 0x65, 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x0c, 0x72, 0x61, 0x6d, 0x51, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x52, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x52, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x22, 0x97, 0x01, 0x0a, 0x15, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4f, 0x76, 0x65, + 0x72, 0x76, 0x69, 0x65, 0x77, 0x12, 0x3d, 0x0a, 0x03, 0x61, 0x76, 0x67, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x52, + 0x03, 0x61, 0x76, 0x67, 0x12, 0x3f, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x5e, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x39, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, + 0x22, 0x9e, 0x03, 0x0a, 0x17, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x17, 0x0a, 0x07, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x34, 0x0a, 0x03, 0x72, + 0x61, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x03, 0x72, 0x61, + 0x6d, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x61, 0x6d, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x08, 0x72, 0x61, 0x6d, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x61, 0x6d, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x06, 0x72, 0x61, 0x6d, 0x52, 0x73, 0x73, 0x12, + 0x48, 0x0a, 0x0e, 0x72, 0x61, 0x6d, 0x5f, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x73, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x72, 0x61, 0x6d, + 0x51, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x69, 0x73, + 0x6b, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x04, 0x64, 0x69, 0x73, + 0x6b, 0x22, 0x58, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x38, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5e, 0x0a, 0x08, 0x4c, + 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x78, 0x0a, 0x0a, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x47, 0x47, + 0x52, 0x45, 0x47, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, + 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x47, 0x47, + 0x52, 0x45, 0x47, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x56, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x58, 0x10, + 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x4f, 0x52, 0x5f, + 0x4d, 0x49, 0x4e, 0x10, 0x04, 0x32, 0xc1, 0x07, 0x0a, 0x11, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xfd, 0x01, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3b, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, + 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x66, 0x8a, 0xb5, 0x18, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x12, 0x4d, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, + 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x2d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0xf5, 0x01, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x39, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3a, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x8a, + 0xb5, 0x18, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x12, 0x4b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x2d, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x8a, + 0xb5, 0x18, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0xdc, 0x01, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x33, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x8a, 0xb5, 0x18, 0x0d, + 0x72, 0x65, 0x61, 0x64, 0x3a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x2f, 0x7b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x7d, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x96, 0x02, 0x0a, 0x1e, 0x63, 0x6f, + 0x6d, 0x2e, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x4d, 0x6f, + 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x58, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x71, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x2f, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, + 0x6f, 0x2f, 0x71, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x51, 0x43, 0x4d, 0xaa, + 0x02, 0x1a, 0x51, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x51, + 0x64, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4d, 0x6f, 0x6e, 0x69, + 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x26, 0x51, 0x64, 0x72, 0x61, + 0x6e, 0x74, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x1d, 0x51, 0x64, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x3a, 0x3a, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +}) + +var ( + file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescOnce sync.Once + file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescData []byte +) + +func file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescGZIP() []byte { + file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescOnce.Do(func() { + file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDesc), len(file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDesc))) + }) + return file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDescData +} + +var file_qdrant_cloud_monitoring_v1_monitoring_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_qdrant_cloud_monitoring_v1_monitoring_proto_goTypes = []any{ + (Aggregator)(0), // 0: qdrant.cloud.monitoring.v1.Aggregator + (*GetClusterSummaryMetricsRequest)(nil), // 1: qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsRequest + (*GetClusterSummaryMetricsResponse)(nil), // 2: qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse + (*GetClusterUsageMetricsRequest)(nil), // 3: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest + (*GetClusterUsageMetricsResponse)(nil), // 4: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse + (*GetClusterLogsRequest)(nil), // 5: qdrant.cloud.monitoring.v1.GetClusterLogsRequest + (*GetClusterLogsResponse)(nil), // 6: qdrant.cloud.monitoring.v1.GetClusterLogsResponse + (*GetClusterEventsRequest)(nil), // 7: qdrant.cloud.monitoring.v1.GetClusterEventsRequest + (*GetClusterEventsResponse)(nil), // 8: qdrant.cloud.monitoring.v1.GetClusterEventsResponse + (*ClusterNodeMetrics)(nil), // 9: qdrant.cloud.monitoring.v1.ClusterNodeMetrics + (*ClusterMetricOverview)(nil), // 10: qdrant.cloud.monitoring.v1.ClusterMetricOverview + (*IntervalAverage)(nil), // 11: qdrant.cloud.monitoring.v1.IntervalAverage + (*ResourceValue)(nil), // 12: qdrant.cloud.monitoring.v1.ResourceValue + (*ClusterNodeUsageMetrics)(nil), // 13: qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics + (*Metric)(nil), // 14: qdrant.cloud.monitoring.v1.Metric + (*LogEntry)(nil), // 15: qdrant.cloud.monitoring.v1.LogEntry + (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 17: google.protobuf.Duration +} +var file_qdrant_cloud_monitoring_v1_monitoring_proto_depIdxs = []int32{ + 9, // 0: qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse.nodes:type_name -> qdrant.cloud.monitoring.v1.ClusterNodeMetrics + 16, // 1: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest.since:type_name -> google.protobuf.Timestamp + 16, // 2: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest.until:type_name -> google.protobuf.Timestamp + 0, // 3: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest.aggregator:type_name -> qdrant.cloud.monitoring.v1.Aggregator + 14, // 4: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.cpu:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 5: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.ram:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 6: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.ram_cache:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 7: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.ram_rss:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 8: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.ram_qdrant_rss:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 9: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.disk:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 10: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.rps:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 11: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.latency:type_name -> qdrant.cloud.monitoring.v1.Metric + 13, // 12: qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse.nodes:type_name -> qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics + 16, // 13: qdrant.cloud.monitoring.v1.GetClusterLogsRequest.since:type_name -> google.protobuf.Timestamp + 16, // 14: qdrant.cloud.monitoring.v1.GetClusterLogsRequest.until:type_name -> google.protobuf.Timestamp + 15, // 15: qdrant.cloud.monitoring.v1.GetClusterLogsResponse.items:type_name -> qdrant.cloud.monitoring.v1.LogEntry + 16, // 16: qdrant.cloud.monitoring.v1.GetClusterEventsRequest.since:type_name -> google.protobuf.Timestamp + 16, // 17: qdrant.cloud.monitoring.v1.GetClusterEventsRequest.until:type_name -> google.protobuf.Timestamp + 15, // 18: qdrant.cloud.monitoring.v1.GetClusterEventsResponse.items:type_name -> qdrant.cloud.monitoring.v1.LogEntry + 10, // 19: qdrant.cloud.monitoring.v1.ClusterNodeMetrics.cpu:type_name -> qdrant.cloud.monitoring.v1.ClusterMetricOverview + 10, // 20: qdrant.cloud.monitoring.v1.ClusterNodeMetrics.ram:type_name -> qdrant.cloud.monitoring.v1.ClusterMetricOverview + 10, // 21: qdrant.cloud.monitoring.v1.ClusterNodeMetrics.ram_cache:type_name -> qdrant.cloud.monitoring.v1.ClusterMetricOverview + 10, // 22: qdrant.cloud.monitoring.v1.ClusterNodeMetrics.ram_rss:type_name -> qdrant.cloud.monitoring.v1.ClusterMetricOverview + 10, // 23: qdrant.cloud.monitoring.v1.ClusterNodeMetrics.ram_qdrant_rss:type_name -> qdrant.cloud.monitoring.v1.ClusterMetricOverview + 10, // 24: qdrant.cloud.monitoring.v1.ClusterNodeMetrics.disk:type_name -> qdrant.cloud.monitoring.v1.ClusterMetricOverview + 11, // 25: qdrant.cloud.monitoring.v1.ClusterMetricOverview.avg:type_name -> qdrant.cloud.monitoring.v1.IntervalAverage + 12, // 26: qdrant.cloud.monitoring.v1.ClusterMetricOverview.total:type_name -> qdrant.cloud.monitoring.v1.ResourceValue + 17, // 27: qdrant.cloud.monitoring.v1.IntervalAverage.interval:type_name -> google.protobuf.Duration + 14, // 28: qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics.cpu:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 29: qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics.ram:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 30: qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics.ram_cache:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 31: qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics.ram_rss:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 32: qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics.ram_qdrant_rss:type_name -> qdrant.cloud.monitoring.v1.Metric + 14, // 33: qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics.disk:type_name -> qdrant.cloud.monitoring.v1.Metric + 16, // 34: qdrant.cloud.monitoring.v1.Metric.timestamp:type_name -> google.protobuf.Timestamp + 16, // 35: qdrant.cloud.monitoring.v1.LogEntry.timestamp:type_name -> google.protobuf.Timestamp + 1, // 36: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterSummaryMetrics:input_type -> qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsRequest + 3, // 37: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterUsageMetrics:input_type -> qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest + 5, // 38: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterLogs:input_type -> qdrant.cloud.monitoring.v1.GetClusterLogsRequest + 7, // 39: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterEvents:input_type -> qdrant.cloud.monitoring.v1.GetClusterEventsRequest + 2, // 40: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterSummaryMetrics:output_type -> qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse + 4, // 41: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterUsageMetrics:output_type -> qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse + 6, // 42: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterLogs:output_type -> qdrant.cloud.monitoring.v1.GetClusterLogsResponse + 8, // 43: qdrant.cloud.monitoring.v1.MonitoringService.GetClusterEvents:output_type -> qdrant.cloud.monitoring.v1.GetClusterEventsResponse + 40, // [40:44] is the sub-list for method output_type + 36, // [36:40] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name +} + +func init() { file_qdrant_cloud_monitoring_v1_monitoring_proto_init() } +func file_qdrant_cloud_monitoring_v1_monitoring_proto_init() { + if File_qdrant_cloud_monitoring_v1_monitoring_proto != nil { + return + } + file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[2].OneofWrappers = []any{} + file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[4].OneofWrappers = []any{} + file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes[6].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDesc), len(file_qdrant_cloud_monitoring_v1_monitoring_proto_rawDesc)), + NumEnums: 1, + NumMessages: 15, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_qdrant_cloud_monitoring_v1_monitoring_proto_goTypes, + DependencyIndexes: file_qdrant_cloud_monitoring_v1_monitoring_proto_depIdxs, + EnumInfos: file_qdrant_cloud_monitoring_v1_monitoring_proto_enumTypes, + MessageInfos: file_qdrant_cloud_monitoring_v1_monitoring_proto_msgTypes, + }.Build() + File_qdrant_cloud_monitoring_v1_monitoring_proto = out.File + file_qdrant_cloud_monitoring_v1_monitoring_proto_goTypes = nil + file_qdrant_cloud_monitoring_v1_monitoring_proto_depIdxs = nil +} diff --git a/gen/go/qdrant/cloud/monitoring/v1/monitoring_grpc.pb.go b/gen/go/qdrant/cloud/monitoring/v1/monitoring_grpc.pb.go new file mode 100644 index 00000000..e76e2c68 --- /dev/null +++ b/gen/go/qdrant/cloud/monitoring/v1/monitoring_grpc.pb.go @@ -0,0 +1,265 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc (unknown) +// source: qdrant/cloud/monitoring/v1/monitoring.proto + +package monitoringv1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + MonitoringService_GetClusterSummaryMetrics_FullMethodName = "/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterSummaryMetrics" + MonitoringService_GetClusterUsageMetrics_FullMethodName = "/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterUsageMetrics" + MonitoringService_GetClusterLogs_FullMethodName = "/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterLogs" + MonitoringService_GetClusterEvents_FullMethodName = "/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterEvents" +) + +// MonitoringServiceClient is the client API for MonitoringService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +// +// MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. +type MonitoringServiceClient interface { + // Get summary metrics of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + GetClusterSummaryMetrics(ctx context.Context, in *GetClusterSummaryMetricsRequest, opts ...grpc.CallOption) (*GetClusterSummaryMetricsResponse, error) + // Get detailed usage metrics (as timeseries) of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + GetClusterUsageMetrics(ctx context.Context, in *GetClusterUsageMetricsRequest, opts ...grpc.CallOption) (*GetClusterUsageMetricsResponse, error) + // Get the logs of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + GetClusterLogs(ctx context.Context, in *GetClusterLogsRequest, opts ...grpc.CallOption) (*GetClusterLogsResponse, error) + // Get the events of a cluster in the account identified by the given ID. + // This method is currently available only for clusters running in hybrid cloud environments. + // Required permissions: + // - read:clusters + GetClusterEvents(ctx context.Context, in *GetClusterEventsRequest, opts ...grpc.CallOption) (*GetClusterEventsResponse, error) +} + +type monitoringServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewMonitoringServiceClient(cc grpc.ClientConnInterface) MonitoringServiceClient { + return &monitoringServiceClient{cc} +} + +func (c *monitoringServiceClient) GetClusterSummaryMetrics(ctx context.Context, in *GetClusterSummaryMetricsRequest, opts ...grpc.CallOption) (*GetClusterSummaryMetricsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetClusterSummaryMetricsResponse) + err := c.cc.Invoke(ctx, MonitoringService_GetClusterSummaryMetrics_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *monitoringServiceClient) GetClusterUsageMetrics(ctx context.Context, in *GetClusterUsageMetricsRequest, opts ...grpc.CallOption) (*GetClusterUsageMetricsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetClusterUsageMetricsResponse) + err := c.cc.Invoke(ctx, MonitoringService_GetClusterUsageMetrics_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *monitoringServiceClient) GetClusterLogs(ctx context.Context, in *GetClusterLogsRequest, opts ...grpc.CallOption) (*GetClusterLogsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetClusterLogsResponse) + err := c.cc.Invoke(ctx, MonitoringService_GetClusterLogs_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *monitoringServiceClient) GetClusterEvents(ctx context.Context, in *GetClusterEventsRequest, opts ...grpc.CallOption) (*GetClusterEventsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetClusterEventsResponse) + err := c.cc.Invoke(ctx, MonitoringService_GetClusterEvents_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MonitoringServiceServer is the server API for MonitoringService service. +// All implementations must embed UnimplementedMonitoringServiceServer +// for forward compatibility. +// +// MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. +type MonitoringServiceServer interface { + // Get summary metrics of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + GetClusterSummaryMetrics(context.Context, *GetClusterSummaryMetricsRequest) (*GetClusterSummaryMetricsResponse, error) + // Get detailed usage metrics (as timeseries) of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + GetClusterUsageMetrics(context.Context, *GetClusterUsageMetricsRequest) (*GetClusterUsageMetricsResponse, error) + // Get the logs of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + GetClusterLogs(context.Context, *GetClusterLogsRequest) (*GetClusterLogsResponse, error) + // Get the events of a cluster in the account identified by the given ID. + // This method is currently available only for clusters running in hybrid cloud environments. + // Required permissions: + // - read:clusters + GetClusterEvents(context.Context, *GetClusterEventsRequest) (*GetClusterEventsResponse, error) + mustEmbedUnimplementedMonitoringServiceServer() +} + +// UnimplementedMonitoringServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedMonitoringServiceServer struct{} + +func (UnimplementedMonitoringServiceServer) GetClusterSummaryMetrics(context.Context, *GetClusterSummaryMetricsRequest) (*GetClusterSummaryMetricsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetClusterSummaryMetrics not implemented") +} +func (UnimplementedMonitoringServiceServer) GetClusterUsageMetrics(context.Context, *GetClusterUsageMetricsRequest) (*GetClusterUsageMetricsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetClusterUsageMetrics not implemented") +} +func (UnimplementedMonitoringServiceServer) GetClusterLogs(context.Context, *GetClusterLogsRequest) (*GetClusterLogsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetClusterLogs not implemented") +} +func (UnimplementedMonitoringServiceServer) GetClusterEvents(context.Context, *GetClusterEventsRequest) (*GetClusterEventsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetClusterEvents not implemented") +} +func (UnimplementedMonitoringServiceServer) mustEmbedUnimplementedMonitoringServiceServer() {} +func (UnimplementedMonitoringServiceServer) testEmbeddedByValue() {} + +// UnsafeMonitoringServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to MonitoringServiceServer will +// result in compilation errors. +type UnsafeMonitoringServiceServer interface { + mustEmbedUnimplementedMonitoringServiceServer() +} + +func RegisterMonitoringServiceServer(s grpc.ServiceRegistrar, srv MonitoringServiceServer) { + // If the following call pancis, it indicates UnimplementedMonitoringServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&MonitoringService_ServiceDesc, srv) +} + +func _MonitoringService_GetClusterSummaryMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClusterSummaryMetricsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MonitoringServiceServer).GetClusterSummaryMetrics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MonitoringService_GetClusterSummaryMetrics_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MonitoringServiceServer).GetClusterSummaryMetrics(ctx, req.(*GetClusterSummaryMetricsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MonitoringService_GetClusterUsageMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClusterUsageMetricsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MonitoringServiceServer).GetClusterUsageMetrics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MonitoringService_GetClusterUsageMetrics_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MonitoringServiceServer).GetClusterUsageMetrics(ctx, req.(*GetClusterUsageMetricsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MonitoringService_GetClusterLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClusterLogsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MonitoringServiceServer).GetClusterLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MonitoringService_GetClusterLogs_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MonitoringServiceServer).GetClusterLogs(ctx, req.(*GetClusterLogsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MonitoringService_GetClusterEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClusterEventsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MonitoringServiceServer).GetClusterEvents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MonitoringService_GetClusterEvents_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MonitoringServiceServer).GetClusterEvents(ctx, req.(*GetClusterEventsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// MonitoringService_ServiceDesc is the grpc.ServiceDesc for MonitoringService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var MonitoringService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "qdrant.cloud.monitoring.v1.MonitoringService", + HandlerType: (*MonitoringServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetClusterSummaryMetrics", + Handler: _MonitoringService_GetClusterSummaryMetrics_Handler, + }, + { + MethodName: "GetClusterUsageMetrics", + Handler: _MonitoringService_GetClusterUsageMetrics_Handler, + }, + { + MethodName: "GetClusterLogs", + Handler: _MonitoringService_GetClusterLogs_Handler, + }, + { + MethodName: "GetClusterEvents", + Handler: _MonitoringService_GetClusterEvents_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "qdrant/cloud/monitoring/v1/monitoring.proto", +} diff --git a/gen/openapiv2/qdrant/cloud/monitoring/v1/monitoring.swagger.json b/gen/openapiv2/qdrant/cloud/monitoring/v1/monitoring.swagger.json new file mode 100644 index 00000000..885448d7 --- /dev/null +++ b/gen/openapiv2/qdrant/cloud/monitoring/v1/monitoring.swagger.json @@ -0,0 +1,572 @@ +{ + "swagger": "2.0", + "info": { + "title": "qdrant/cloud/monitoring/v1/monitoring.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "MonitoringService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/api/monitoring/v1/accounts/{accountId}/cluster/{clusterId}/events": { + "get": { + "summary": "Get the events of a cluster in the account identified by the given ID.\nThis method is currently available only for clusters running in hybrid cloud environments.\nRequired permissions:\n- read:clusters", + "operationId": "MonitoringService_GetClusterEvents", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetClusterEventsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "accountId", + "description": "The identifier of the account (in GUID format).\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterId", + "description": "The identifier for the cluster (in GUID format).\nThis cluster should be part of the provided account.\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "since", + "description": "Optional start time for the events query.\nIf omitted, defaults to 7 days ago.", + "in": "query", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "until", + "description": "Optional end time for the events query.\nIf omitted, defaults to current time.", + "in": "query", + "required": false, + "type": "string", + "format": "date-time" + } + ], + "tags": [ + "MonitoringService" + ] + } + }, + "/api/monitoring/v1/accounts/{accountId}/cluster/{clusterId}/logs": { + "get": { + "summary": "Get the logs of a cluster in the account identified by the given ID.\nRequired permissions:\n- read:clusters", + "operationId": "MonitoringService_GetClusterLogs", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetClusterLogsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "accountId", + "description": "The identifier of the account (in GUID format).\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterId", + "description": "The identifier for the cluster (in GUID format).\nThis cluster should be part of the provided account.\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "since", + "description": "Optional start time for the logs query.\nIf omitted, defaults to 3 days ago.", + "in": "query", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "until", + "description": "Optional end time for the logs query.\nIf omitted, defaults to current time.", + "in": "query", + "required": false, + "type": "string", + "format": "date-time" + } + ], + "tags": [ + "MonitoringService" + ] + } + }, + "/api/monitoring/v1/accounts/{accountId}/cluster/{clusterId}/summary-metrics": { + "get": { + "summary": "Get summary metrics of a cluster in the account identified by the given ID.\nRequired permissions:\n- read:clusters", + "operationId": "MonitoringService_GetClusterSummaryMetrics", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetClusterSummaryMetricsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "accountId", + "description": "The identifier of the account (in GUID format).\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterId", + "description": "The identifier for the cluster (in GUID format).\nThis cluster should be part of the provided account.\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "MonitoringService" + ] + } + }, + "/api/monitoring/v1/accounts/{accountId}/cluster/{clusterId}/usage-metrics": { + "get": { + "summary": "Get detailed usage metrics (as timeseries) of a cluster in the account identified by the given ID.\nRequired permissions:\n- read:clusters", + "operationId": "MonitoringService_GetClusterUsageMetrics", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetClusterUsageMetricsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "accountId", + "description": "The identifier of the account (in GUID format).\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "clusterId", + "description": "The identifier for the cluster (in GUID format).\nThis cluster should be part of the provided account.\nThis is a required field.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "since", + "description": "Optional start time for the metrics query.\nIf omitted, defaults to 1 hour ago.", + "in": "query", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "until", + "description": "Optional end time for the metrics query.\nIf omitted, defaults to current time.", + "in": "query", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "aggregator", + "description": "Aggregation function to apply to the time series data.\nIf omitted, defaults to SUM.\n\n - AGGREGATOR_UNSPECIFIED: Unspecified aggregation function.\n - AGGREGATOR_SUM: SUM aggregation function.\n - AGGREGATOR_AVG: AVG aggregation function.\n - AGGREGATOR_MAX: MAX aggregation function.\n - AGGREGATOR_MIN: MIN aggregation function.", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "AGGREGATOR_UNSPECIFIED", + "AGGREGATOR_SUM", + "AGGREGATOR_AVG", + "AGGREGATOR_MAX", + "AGGREGATOR_MIN" + ], + "default": "AGGREGATOR_UNSPECIFIED" + } + ], + "tags": [ + "MonitoringService" + ] + } + } + }, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1Aggregator": { + "type": "string", + "enum": [ + "AGGREGATOR_UNSPECIFIED", + "AGGREGATOR_SUM", + "AGGREGATOR_AVG", + "AGGREGATOR_MAX", + "AGGREGATOR_MIN" + ], + "default": "AGGREGATOR_UNSPECIFIED", + "description": "Aggregator defines how metrics should be aggregated over time.\n\n - AGGREGATOR_UNSPECIFIED: Unspecified aggregation function.\n - AGGREGATOR_SUM: SUM aggregation function.\n - AGGREGATOR_AVG: AVG aggregation function.\n - AGGREGATOR_MAX: MAX aggregation function.\n - AGGREGATOR_MIN: MIN aggregation function." + }, + "v1ClusterMetricOverview": { + "type": "object", + "properties": { + "avg": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1IntervalAverage" + }, + "description": "Average metric values calculated over various time intervals." + }, + "total": { + "$ref": "#/definitions/v1ResourceValue", + "description": "Total available value of the resource on the node." + } + }, + "description": "ClusterMetricOverview contains both the average values of a metric over\npredefined intervals, and the total available value of that resource." + }, + "v1ClusterNodeMetrics": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "description": "Unique identifier of the node." + }, + "cpu": { + "$ref": "#/definitions/v1ClusterMetricOverview", + "description": "Overview of CPU usage." + }, + "ram": { + "$ref": "#/definitions/v1ClusterMetricOverview", + "description": "Overview of RAM usage." + }, + "ramCache": { + "$ref": "#/definitions/v1ClusterMetricOverview", + "description": "Overview of RAM cache usage." + }, + "ramRss": { + "$ref": "#/definitions/v1ClusterMetricOverview", + "description": "Overview of RSS memory usage." + }, + "ramQdrantRss": { + "$ref": "#/definitions/v1ClusterMetricOverview", + "description": "Overview of RSS memory usage by the Qdrant database." + }, + "disk": { + "$ref": "#/definitions/v1ClusterMetricOverview", + "description": "Overview of disk usage." + } + }, + "description": "ClusterNodeMetrics contains metric overview for a node." + }, + "v1ClusterNodeUsageMetrics": { + "type": "object", + "properties": { + "nodeId": { + "type": "string", + "description": "Unique identifier of the node." + }, + "cpu": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of CPU usage for the node." + }, + "ram": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of RAM usage for the node." + }, + "ramCache": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of RAM cache usage for the node." + }, + "ramRss": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of RSS memory usage for the node." + }, + "ramQdrantRss": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of RSS memory usage by the Qdrant database for the node." + }, + "disk": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of disk usage for the node." + } + }, + "description": "ClusterNodeUsageMetrics defines per-node usage metrics." + }, + "v1GetClusterEventsResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1LogEntry" + }, + "description": "A list of entries representing events that have happened in the cluster." + } + }, + "title": "GetClusterEventsRequest is the response from the GetClusterEvents function" + }, + "v1GetClusterLogsResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1LogEntry" + }, + "description": "A list of log entries from the cluster." + } + }, + "title": "GetClusterLogsResponse is the response from the GetClusterLogs function" + }, + "v1GetClusterSummaryMetricsResponse": { + "type": "object", + "properties": { + "nodes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1ClusterNodeMetrics" + }, + "description": "List of metrics aggregated per node in the cluster." + } + }, + "title": "GetClusterSummaryMetricsResponse is the response from the GetClusterSummaryMetrics function" + }, + "v1GetClusterUsageMetricsResponse": { + "type": "object", + "properties": { + "cpu": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of overall CPU usage across the cluster." + }, + "ram": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of overall RAM usage across the cluster." + }, + "ramCache": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of RAM used for cache across the cluster." + }, + "ramRss": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of RSS memory used across the cluster." + }, + "ramQdrantRss": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of RSS memory used by the Qdrant database across the cluster." + }, + "disk": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of disk usage across the cluster." + }, + "rps": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of requests per second (RPS) across the cluster." + }, + "latency": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1Metric" + }, + "description": "Timeseries of request latency across the cluster." + }, + "nodes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v1ClusterNodeUsageMetrics" + }, + "description": "Per-node metrics." + } + }, + "title": "GetClusterUsageMetricsResponse is the response from the GetClusterUsageMetrics function" + }, + "v1IntervalAverage": { + "type": "object", + "properties": { + "interval": { + "type": "string", + "description": "The duration of the interval." + }, + "value": { + "type": "number", + "format": "double", + "description": "Average value of the metric during the specified interval." + } + }, + "description": "IntervalAverage represents the average value of a metric over a specific time interval." + }, + "v1LogEntry": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time", + "description": "The timestamp indicating when the log entry was recorded." + }, + "message": { + "type": "string", + "description": "The content of the log message." + } + }, + "description": "LogEntry represents a single log line." + }, + "v1Metric": { + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the data point." + }, + "value": { + "type": "number", + "format": "double", + "description": "Numerical value of the metric at the given timestamp." + } + }, + "description": "A single metric data point." + }, + "v1ResourceValue": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "Value of the resource, e.g., 0.5." + }, + "unit": { + "type": "string", + "description": "Unit of the resource value, e.g., \"vcpu/core\"." + } + }, + "description": "ResourceValue represents the total value of a resource along with its unit." + } + } +} diff --git a/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2.py b/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2.py new file mode 100644 index 00000000..28086806 --- /dev/null +++ b/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: qdrant/cloud/monitoring/v1/monitoring.proto +# Protobuf Python Version: 5.29.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 3, + '', + 'qdrant/cloud/monitoring/v1/monitoring.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 +from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +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/monitoring/v1/monitoring.proto\x12\x1aqdrant.cloud.monitoring.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a#qdrant/cloud/common/v1/common.proto\"s\n\x1fGetClusterSummaryMetricsRequest\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\"h\n GetClusterSummaryMetricsResponse\x12\x44\n\x05nodes\x18\x01 \x03(\x0b\x32..qdrant.cloud.monitoring.v1.ClusterNodeMetricsR\x05nodes\"\xcf\x02\n\x1dGetClusterUsageMetricsRequest\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\x35\n\x05since\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x05since\x88\x01\x01\x12\x35\n\x05until\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\x05until\x88\x01\x01\x12K\n\naggregator\x18\x05 \x01(\x0e\x32&.qdrant.cloud.monitoring.v1.AggregatorH\x02R\naggregator\x88\x01\x01\x42\x08\n\x06_sinceB\x08\n\x06_untilB\r\n\x0b_aggregator\"\xcb\x04\n\x1eGetClusterUsageMetricsResponse\x12\x34\n\x03\x63pu\x18\x01 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x03\x63pu\x12\x34\n\x03ram\x18\x02 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x03ram\x12?\n\tram_cache\x18\x03 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x08ramCache\x12;\n\x07ram_rss\x18\x04 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x06ramRss\x12H\n\x0eram_qdrant_rss\x18\x05 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x0cramQdrantRss\x12\x36\n\x04\x64isk\x18\x06 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x04\x64isk\x12\x34\n\x03rps\x18\x07 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x03rps\x12<\n\x07latency\x18\x08 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x07latency\x12I\n\x05nodes\x18\t \x03(\x0b\x32\x33.qdrant.cloud.monitoring.v1.ClusterNodeUsageMetricsR\x05nodes\"\xeb\x01\n\x15GetClusterLogsRequest\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\x35\n\x05since\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x05since\x88\x01\x01\x12\x35\n\x05until\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\x05until\x88\x01\x01\x42\x08\n\x06_sinceB\x08\n\x06_until\"T\n\x16GetClusterLogsResponse\x12:\n\x05items\x18\x01 \x03(\x0b\x32$.qdrant.cloud.monitoring.v1.LogEntryR\x05items\"\xed\x01\n\x17GetClusterEventsRequest\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\x35\n\x05since\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x05since\x88\x01\x01\x12\x35\n\x05until\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\x05until\x88\x01\x01\x42\x08\n\x06_sinceB\x08\n\x06_until\"V\n\x18GetClusterEventsResponse\x12:\n\x05items\x18\x01 \x03(\x0b\x32$.qdrant.cloud.monitoring.v1.LogEntryR\x05items\"\xf3\x03\n\x12\x43lusterNodeMetrics\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\x12\x43\n\x03\x63pu\x18\x02 \x01(\x0b\x32\x31.qdrant.cloud.monitoring.v1.ClusterMetricOverviewR\x03\x63pu\x12\x43\n\x03ram\x18\x03 \x01(\x0b\x32\x31.qdrant.cloud.monitoring.v1.ClusterMetricOverviewR\x03ram\x12N\n\tram_cache\x18\x04 \x01(\x0b\x32\x31.qdrant.cloud.monitoring.v1.ClusterMetricOverviewR\x08ramCache\x12J\n\x07ram_rss\x18\x05 \x01(\x0b\x32\x31.qdrant.cloud.monitoring.v1.ClusterMetricOverviewR\x06ramRss\x12W\n\x0eram_qdrant_rss\x18\x06 \x01(\x0b\x32\x31.qdrant.cloud.monitoring.v1.ClusterMetricOverviewR\x0cramQdrantRss\x12\x45\n\x04\x64isk\x18\x07 \x01(\x0b\x32\x31.qdrant.cloud.monitoring.v1.ClusterMetricOverviewR\x04\x64isk\"\x97\x01\n\x15\x43lusterMetricOverview\x12=\n\x03\x61vg\x18\x01 \x03(\x0b\x32+.qdrant.cloud.monitoring.v1.IntervalAverageR\x03\x61vg\x12?\n\x05total\x18\x02 \x01(\x0b\x32).qdrant.cloud.monitoring.v1.ResourceValueR\x05total\"^\n\x0fIntervalAverage\x12\x35\n\x08interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x08interval\x12\x14\n\x05value\x18\x02 \x01(\x01R\x05value\"9\n\rResourceValue\x12\x14\n\x05value\x18\x01 \x01(\x01R\x05value\x12\x12\n\x04unit\x18\x02 \x01(\tR\x04unit\"\x9e\x03\n\x17\x43lusterNodeUsageMetrics\x12\x17\n\x07node_id\x18\x01 \x01(\tR\x06nodeId\x12\x34\n\x03\x63pu\x18\x02 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x03\x63pu\x12\x34\n\x03ram\x18\x03 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x03ram\x12?\n\tram_cache\x18\x04 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x08ramCache\x12;\n\x07ram_rss\x18\x05 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x06ramRss\x12H\n\x0eram_qdrant_rss\x18\x06 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x0cramQdrantRss\x12\x36\n\x04\x64isk\x18\x07 \x03(\x0b\x32\".qdrant.cloud.monitoring.v1.MetricR\x04\x64isk\"X\n\x06Metric\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12\x14\n\x05value\x18\x02 \x01(\x01R\x05value\"^\n\x08LogEntry\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message*x\n\nAggregator\x12\x1a\n\x16\x41GGREGATOR_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x41GGREGATOR_SUM\x10\x01\x12\x12\n\x0e\x41GGREGATOR_AVG\x10\x02\x12\x12\n\x0e\x41GGREGATOR_MAX\x10\x03\x12\x12\n\x0e\x41GGREGATOR_MIN\x10\x04\x32\xc1\x07\n\x11MonitoringService\x12\xfd\x01\n\x18GetClusterSummaryMetrics\x12;.qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsRequest\x1a<.qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse\"f\x8a\xb5\x18\rread:clusters\x82\xd3\xe4\x93\x02O\x12M/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/summary-metrics\x12\xf5\x01\n\x16GetClusterUsageMetrics\x12\x39.qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest\x1a:.qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse\"d\x8a\xb5\x18\rread:clusters\x82\xd3\xe4\x93\x02M\x12K/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/usage-metrics\x12\xd4\x01\n\x0eGetClusterLogs\x12\x31.qdrant.cloud.monitoring.v1.GetClusterLogsRequest\x1a\x32.qdrant.cloud.monitoring.v1.GetClusterLogsResponse\"[\x8a\xb5\x18\rread:clusters\x82\xd3\xe4\x93\x02\x44\x12\x42/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/logs\x12\xdc\x01\n\x10GetClusterEvents\x12\x33.qdrant.cloud.monitoring.v1.GetClusterEventsRequest\x1a\x34.qdrant.cloud.monitoring.v1.GetClusterEventsResponse\"]\x8a\xb5\x18\rread:clusters\x82\xd3\xe4\x93\x02\x46\x12\x44/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/eventsB\x96\x02\n\x1e\x63om.qdrant.cloud.monitoring.v1B\x0fMonitoringProtoP\x01ZXgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/monitoring/v1;monitoringv1\xa2\x02\x03QCM\xaa\x02\x1aQdrant.Cloud.Monitoring.V1\xca\x02\x1aQdrant\\Cloud\\Monitoring\\V1\xe2\x02&Qdrant\\Cloud\\Monitoring\\V1\\GPBMetadata\xea\x02\x1dQdrant::Cloud::Monitoring::V1b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'qdrant.cloud.monitoring.v1.monitoring_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\036com.qdrant.cloud.monitoring.v1B\017MonitoringProtoP\001ZXgithub.com/qdrant/qdrant-cloud-public-api/gen/go/qdrant/cloud/monitoring/v1;monitoringv1\242\002\003QCM\252\002\032Qdrant.Cloud.Monitoring.V1\312\002\032Qdrant\\Cloud\\Monitoring\\V1\342\002&Qdrant\\Cloud\\Monitoring\\V1\\GPBMetadata\352\002\035Qdrant::Cloud::Monitoring::V1' + _globals['_GETCLUSTERSUMMARYMETRICSREQUEST'].fields_by_name['account_id']._loaded_options = None + _globals['_GETCLUSTERSUMMARYMETRICSREQUEST'].fields_by_name['account_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETCLUSTERSUMMARYMETRICSREQUEST'].fields_by_name['cluster_id']._loaded_options = None + _globals['_GETCLUSTERSUMMARYMETRICSREQUEST'].fields_by_name['cluster_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETCLUSTERUSAGEMETRICSREQUEST'].fields_by_name['account_id']._loaded_options = None + _globals['_GETCLUSTERUSAGEMETRICSREQUEST'].fields_by_name['account_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETCLUSTERUSAGEMETRICSREQUEST'].fields_by_name['cluster_id']._loaded_options = None + _globals['_GETCLUSTERUSAGEMETRICSREQUEST'].fields_by_name['cluster_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETCLUSTERLOGSREQUEST'].fields_by_name['account_id']._loaded_options = None + _globals['_GETCLUSTERLOGSREQUEST'].fields_by_name['account_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETCLUSTERLOGSREQUEST'].fields_by_name['cluster_id']._loaded_options = None + _globals['_GETCLUSTERLOGSREQUEST'].fields_by_name['cluster_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETCLUSTEREVENTSREQUEST'].fields_by_name['account_id']._loaded_options = None + _globals['_GETCLUSTEREVENTSREQUEST'].fields_by_name['account_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_GETCLUSTEREVENTSREQUEST'].fields_by_name['cluster_id']._loaded_options = None + _globals['_GETCLUSTEREVENTSREQUEST'].fields_by_name['cluster_id']._serialized_options = b'\272H\005r\003\260\001\001' + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterSummaryMetrics']._loaded_options = None + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterSummaryMetrics']._serialized_options = b'\212\265\030\rread:clusters\202\323\344\223\002O\022M/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/summary-metrics' + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterUsageMetrics']._loaded_options = None + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterUsageMetrics']._serialized_options = b'\212\265\030\rread:clusters\202\323\344\223\002M\022K/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/usage-metrics' + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterLogs']._loaded_options = None + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterLogs']._serialized_options = b'\212\265\030\rread:clusters\202\323\344\223\002D\022B/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/logs' + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterEvents']._loaded_options = None + _globals['_MONITORINGSERVICE'].methods_by_name['GetClusterEvents']._serialized_options = b'\212\265\030\rread:clusters\202\323\344\223\002F\022D/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/events' + _globals['_AGGREGATOR']._serialized_start=3453 + _globals['_AGGREGATOR']._serialized_end=3573 + _globals['_GETCLUSTERSUMMARYMETRICSREQUEST']._serialized_start=236 + _globals['_GETCLUSTERSUMMARYMETRICSREQUEST']._serialized_end=351 + _globals['_GETCLUSTERSUMMARYMETRICSRESPONSE']._serialized_start=353 + _globals['_GETCLUSTERSUMMARYMETRICSRESPONSE']._serialized_end=457 + _globals['_GETCLUSTERUSAGEMETRICSREQUEST']._serialized_start=460 + _globals['_GETCLUSTERUSAGEMETRICSREQUEST']._serialized_end=795 + _globals['_GETCLUSTERUSAGEMETRICSRESPONSE']._serialized_start=798 + _globals['_GETCLUSTERUSAGEMETRICSRESPONSE']._serialized_end=1385 + _globals['_GETCLUSTERLOGSREQUEST']._serialized_start=1388 + _globals['_GETCLUSTERLOGSREQUEST']._serialized_end=1623 + _globals['_GETCLUSTERLOGSRESPONSE']._serialized_start=1625 + _globals['_GETCLUSTERLOGSRESPONSE']._serialized_end=1709 + _globals['_GETCLUSTEREVENTSREQUEST']._serialized_start=1712 + _globals['_GETCLUSTEREVENTSREQUEST']._serialized_end=1949 + _globals['_GETCLUSTEREVENTSRESPONSE']._serialized_start=1951 + _globals['_GETCLUSTEREVENTSRESPONSE']._serialized_end=2037 + _globals['_CLUSTERNODEMETRICS']._serialized_start=2040 + _globals['_CLUSTERNODEMETRICS']._serialized_end=2539 + _globals['_CLUSTERMETRICOVERVIEW']._serialized_start=2542 + _globals['_CLUSTERMETRICOVERVIEW']._serialized_end=2693 + _globals['_INTERVALAVERAGE']._serialized_start=2695 + _globals['_INTERVALAVERAGE']._serialized_end=2789 + _globals['_RESOURCEVALUE']._serialized_start=2791 + _globals['_RESOURCEVALUE']._serialized_end=2848 + _globals['_CLUSTERNODEUSAGEMETRICS']._serialized_start=2851 + _globals['_CLUSTERNODEUSAGEMETRICS']._serialized_end=3265 + _globals['_METRIC']._serialized_start=3267 + _globals['_METRIC']._serialized_end=3355 + _globals['_LOGENTRY']._serialized_start=3357 + _globals['_LOGENTRY']._serialized_end=3451 + _globals['_MONITORINGSERVICE']._serialized_start=3576 + _globals['_MONITORINGSERVICE']._serialized_end=4537 +# @@protoc_insertion_point(module_scope) diff --git a/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2.pyi b/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2.pyi new file mode 100644 index 00000000..7b2132d7 --- /dev/null +++ b/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2.pyi @@ -0,0 +1,187 @@ +from buf.validate import validate_pb2 as _validate_pb2 +from google.api import annotations_pb2 as _annotations_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_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 typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Aggregator(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AGGREGATOR_UNSPECIFIED: _ClassVar[Aggregator] + AGGREGATOR_SUM: _ClassVar[Aggregator] + AGGREGATOR_AVG: _ClassVar[Aggregator] + AGGREGATOR_MAX: _ClassVar[Aggregator] + AGGREGATOR_MIN: _ClassVar[Aggregator] +AGGREGATOR_UNSPECIFIED: Aggregator +AGGREGATOR_SUM: Aggregator +AGGREGATOR_AVG: Aggregator +AGGREGATOR_MAX: Aggregator +AGGREGATOR_MIN: Aggregator + +class GetClusterSummaryMetricsRequest(_message.Message): + __slots__ = ("account_id", "cluster_id") + ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + CLUSTER_ID_FIELD_NUMBER: _ClassVar[int] + account_id: str + cluster_id: str + def __init__(self, account_id: _Optional[str] = ..., cluster_id: _Optional[str] = ...) -> None: ... + +class GetClusterSummaryMetricsResponse(_message.Message): + __slots__ = ("nodes",) + NODES_FIELD_NUMBER: _ClassVar[int] + nodes: _containers.RepeatedCompositeFieldContainer[ClusterNodeMetrics] + def __init__(self, nodes: _Optional[_Iterable[_Union[ClusterNodeMetrics, _Mapping]]] = ...) -> None: ... + +class GetClusterUsageMetricsRequest(_message.Message): + __slots__ = ("account_id", "cluster_id", "since", "until", "aggregator") + ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + CLUSTER_ID_FIELD_NUMBER: _ClassVar[int] + SINCE_FIELD_NUMBER: _ClassVar[int] + UNTIL_FIELD_NUMBER: _ClassVar[int] + AGGREGATOR_FIELD_NUMBER: _ClassVar[int] + account_id: str + cluster_id: str + since: _timestamp_pb2.Timestamp + until: _timestamp_pb2.Timestamp + aggregator: Aggregator + def __init__(self, account_id: _Optional[str] = ..., cluster_id: _Optional[str] = ..., since: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., until: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., aggregator: _Optional[_Union[Aggregator, str]] = ...) -> None: ... + +class GetClusterUsageMetricsResponse(_message.Message): + __slots__ = ("cpu", "ram", "ram_cache", "ram_rss", "ram_qdrant_rss", "disk", "rps", "latency", "nodes") + CPU_FIELD_NUMBER: _ClassVar[int] + RAM_FIELD_NUMBER: _ClassVar[int] + RAM_CACHE_FIELD_NUMBER: _ClassVar[int] + RAM_RSS_FIELD_NUMBER: _ClassVar[int] + RAM_QDRANT_RSS_FIELD_NUMBER: _ClassVar[int] + DISK_FIELD_NUMBER: _ClassVar[int] + RPS_FIELD_NUMBER: _ClassVar[int] + LATENCY_FIELD_NUMBER: _ClassVar[int] + NODES_FIELD_NUMBER: _ClassVar[int] + cpu: _containers.RepeatedCompositeFieldContainer[Metric] + ram: _containers.RepeatedCompositeFieldContainer[Metric] + ram_cache: _containers.RepeatedCompositeFieldContainer[Metric] + ram_rss: _containers.RepeatedCompositeFieldContainer[Metric] + ram_qdrant_rss: _containers.RepeatedCompositeFieldContainer[Metric] + disk: _containers.RepeatedCompositeFieldContainer[Metric] + rps: _containers.RepeatedCompositeFieldContainer[Metric] + latency: _containers.RepeatedCompositeFieldContainer[Metric] + nodes: _containers.RepeatedCompositeFieldContainer[ClusterNodeUsageMetrics] + def __init__(self, cpu: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram_cache: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram_rss: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram_qdrant_rss: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., disk: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., rps: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., latency: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., nodes: _Optional[_Iterable[_Union[ClusterNodeUsageMetrics, _Mapping]]] = ...) -> None: ... + +class GetClusterLogsRequest(_message.Message): + __slots__ = ("account_id", "cluster_id", "since", "until") + ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + CLUSTER_ID_FIELD_NUMBER: _ClassVar[int] + SINCE_FIELD_NUMBER: _ClassVar[int] + UNTIL_FIELD_NUMBER: _ClassVar[int] + account_id: str + cluster_id: str + since: _timestamp_pb2.Timestamp + until: _timestamp_pb2.Timestamp + def __init__(self, account_id: _Optional[str] = ..., cluster_id: _Optional[str] = ..., since: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., until: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class GetClusterLogsResponse(_message.Message): + __slots__ = ("items",) + ITEMS_FIELD_NUMBER: _ClassVar[int] + items: _containers.RepeatedCompositeFieldContainer[LogEntry] + def __init__(self, items: _Optional[_Iterable[_Union[LogEntry, _Mapping]]] = ...) -> None: ... + +class GetClusterEventsRequest(_message.Message): + __slots__ = ("account_id", "cluster_id", "since", "until") + ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + CLUSTER_ID_FIELD_NUMBER: _ClassVar[int] + SINCE_FIELD_NUMBER: _ClassVar[int] + UNTIL_FIELD_NUMBER: _ClassVar[int] + account_id: str + cluster_id: str + since: _timestamp_pb2.Timestamp + until: _timestamp_pb2.Timestamp + def __init__(self, account_id: _Optional[str] = ..., cluster_id: _Optional[str] = ..., since: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., until: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class GetClusterEventsResponse(_message.Message): + __slots__ = ("items",) + ITEMS_FIELD_NUMBER: _ClassVar[int] + items: _containers.RepeatedCompositeFieldContainer[LogEntry] + def __init__(self, items: _Optional[_Iterable[_Union[LogEntry, _Mapping]]] = ...) -> None: ... + +class ClusterNodeMetrics(_message.Message): + __slots__ = ("node_id", "cpu", "ram", "ram_cache", "ram_rss", "ram_qdrant_rss", "disk") + NODE_ID_FIELD_NUMBER: _ClassVar[int] + CPU_FIELD_NUMBER: _ClassVar[int] + RAM_FIELD_NUMBER: _ClassVar[int] + RAM_CACHE_FIELD_NUMBER: _ClassVar[int] + RAM_RSS_FIELD_NUMBER: _ClassVar[int] + RAM_QDRANT_RSS_FIELD_NUMBER: _ClassVar[int] + DISK_FIELD_NUMBER: _ClassVar[int] + node_id: str + cpu: ClusterMetricOverview + ram: ClusterMetricOverview + ram_cache: ClusterMetricOverview + ram_rss: ClusterMetricOverview + ram_qdrant_rss: ClusterMetricOverview + disk: ClusterMetricOverview + def __init__(self, node_id: _Optional[str] = ..., cpu: _Optional[_Union[ClusterMetricOverview, _Mapping]] = ..., ram: _Optional[_Union[ClusterMetricOverview, _Mapping]] = ..., ram_cache: _Optional[_Union[ClusterMetricOverview, _Mapping]] = ..., ram_rss: _Optional[_Union[ClusterMetricOverview, _Mapping]] = ..., ram_qdrant_rss: _Optional[_Union[ClusterMetricOverview, _Mapping]] = ..., disk: _Optional[_Union[ClusterMetricOverview, _Mapping]] = ...) -> None: ... + +class ClusterMetricOverview(_message.Message): + __slots__ = ("avg", "total") + AVG_FIELD_NUMBER: _ClassVar[int] + TOTAL_FIELD_NUMBER: _ClassVar[int] + avg: _containers.RepeatedCompositeFieldContainer[IntervalAverage] + total: ResourceValue + def __init__(self, avg: _Optional[_Iterable[_Union[IntervalAverage, _Mapping]]] = ..., total: _Optional[_Union[ResourceValue, _Mapping]] = ...) -> None: ... + +class IntervalAverage(_message.Message): + __slots__ = ("interval", "value") + INTERVAL_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + interval: _duration_pb2.Duration + value: float + def __init__(self, interval: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., value: _Optional[float] = ...) -> None: ... + +class ResourceValue(_message.Message): + __slots__ = ("value", "unit") + VALUE_FIELD_NUMBER: _ClassVar[int] + UNIT_FIELD_NUMBER: _ClassVar[int] + value: float + unit: str + def __init__(self, value: _Optional[float] = ..., unit: _Optional[str] = ...) -> None: ... + +class ClusterNodeUsageMetrics(_message.Message): + __slots__ = ("node_id", "cpu", "ram", "ram_cache", "ram_rss", "ram_qdrant_rss", "disk") + NODE_ID_FIELD_NUMBER: _ClassVar[int] + CPU_FIELD_NUMBER: _ClassVar[int] + RAM_FIELD_NUMBER: _ClassVar[int] + RAM_CACHE_FIELD_NUMBER: _ClassVar[int] + RAM_RSS_FIELD_NUMBER: _ClassVar[int] + RAM_QDRANT_RSS_FIELD_NUMBER: _ClassVar[int] + DISK_FIELD_NUMBER: _ClassVar[int] + node_id: str + cpu: _containers.RepeatedCompositeFieldContainer[Metric] + ram: _containers.RepeatedCompositeFieldContainer[Metric] + ram_cache: _containers.RepeatedCompositeFieldContainer[Metric] + ram_rss: _containers.RepeatedCompositeFieldContainer[Metric] + ram_qdrant_rss: _containers.RepeatedCompositeFieldContainer[Metric] + disk: _containers.RepeatedCompositeFieldContainer[Metric] + def __init__(self, node_id: _Optional[str] = ..., cpu: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram_cache: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram_rss: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., ram_qdrant_rss: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ..., disk: _Optional[_Iterable[_Union[Metric, _Mapping]]] = ...) -> None: ... + +class Metric(_message.Message): + __slots__ = ("timestamp", "value") + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + value: float + def __init__(self, timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., value: _Optional[float] = ...) -> None: ... + +class LogEntry(_message.Message): + __slots__ = ("timestamp", "message") + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + message: str + def __init__(self, timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., message: _Optional[str] = ...) -> None: ... diff --git a/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2_grpc.py b/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2_grpc.py new file mode 100644 index 00000000..55ea0080 --- /dev/null +++ b/gen/python/qdrant/cloud/monitoring/v1/monitoring_pb2_grpc.py @@ -0,0 +1,222 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc + +from qdrant.cloud.monitoring.v1 import monitoring_pb2 as qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2 + + +class MonitoringServiceStub(object): + """MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. + """ + + def __init__(self, channel): + """Constructor. + + Args: + channel: A grpc.Channel. + """ + self.GetClusterSummaryMetrics = channel.unary_unary( + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterSummaryMetrics', + request_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterSummaryMetricsRequest.SerializeToString, + response_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterSummaryMetricsResponse.FromString, + _registered_method=True) + self.GetClusterUsageMetrics = channel.unary_unary( + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterUsageMetrics', + request_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterUsageMetricsRequest.SerializeToString, + response_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterUsageMetricsResponse.FromString, + _registered_method=True) + self.GetClusterLogs = channel.unary_unary( + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterLogs', + request_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterLogsRequest.SerializeToString, + response_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterLogsResponse.FromString, + _registered_method=True) + self.GetClusterEvents = channel.unary_unary( + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterEvents', + request_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterEventsRequest.SerializeToString, + response_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterEventsResponse.FromString, + _registered_method=True) + + +class MonitoringServiceServicer(object): + """MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. + """ + + def GetClusterSummaryMetrics(self, request, context): + """Get summary metrics of a cluster in the account identified by the given ID. + Required permissions: + - read:clusters + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetClusterUsageMetrics(self, request, context): + """Get detailed usage metrics (as timeseries) of a cluster in the account identified by the given ID. + Required permissions: + - read:clusters + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetClusterLogs(self, request, context): + """Get the logs of a cluster in the account identified by the given ID. + Required permissions: + - read:clusters + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def GetClusterEvents(self, request, context): + """Get the events of a cluster in the account identified by the given ID. + This method is currently available only for clusters running in hybrid cloud environments. + Required permissions: + - read:clusters + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + +def add_MonitoringServiceServicer_to_server(servicer, server): + rpc_method_handlers = { + 'GetClusterSummaryMetrics': grpc.unary_unary_rpc_method_handler( + servicer.GetClusterSummaryMetrics, + request_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterSummaryMetricsRequest.FromString, + response_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterSummaryMetricsResponse.SerializeToString, + ), + 'GetClusterUsageMetrics': grpc.unary_unary_rpc_method_handler( + servicer.GetClusterUsageMetrics, + request_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterUsageMetricsRequest.FromString, + response_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterUsageMetricsResponse.SerializeToString, + ), + 'GetClusterLogs': grpc.unary_unary_rpc_method_handler( + servicer.GetClusterLogs, + request_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterLogsRequest.FromString, + response_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterLogsResponse.SerializeToString, + ), + 'GetClusterEvents': grpc.unary_unary_rpc_method_handler( + servicer.GetClusterEvents, + request_deserializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterEventsRequest.FromString, + response_serializer=qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterEventsResponse.SerializeToString, + ), + } + generic_handler = grpc.method_handlers_generic_handler( + 'qdrant.cloud.monitoring.v1.MonitoringService', rpc_method_handlers) + server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('qdrant.cloud.monitoring.v1.MonitoringService', rpc_method_handlers) + + + # This class is part of an EXPERIMENTAL API. +class MonitoringService(object): + """MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. + """ + + @staticmethod + def GetClusterSummaryMetrics(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterSummaryMetrics', + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterSummaryMetricsRequest.SerializeToString, + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterSummaryMetricsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetClusterUsageMetrics(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterUsageMetrics', + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterUsageMetricsRequest.SerializeToString, + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterUsageMetricsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetClusterLogs(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterLogs', + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterLogsRequest.SerializeToString, + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterLogsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def GetClusterEvents(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/qdrant.cloud.monitoring.v1.MonitoringService/GetClusterEvents', + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterEventsRequest.SerializeToString, + qdrant_dot_cloud_dot_monitoring_dot_v1_dot_monitoring__pb2.GetClusterEventsResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/gen/typescript/qdrant/cloud/iam/v1/iam_pb.ts b/gen/typescript/qdrant/cloud/iam/v1/iam_pb.d.ts similarity index 60% rename from gen/typescript/qdrant/cloud/iam/v1/iam_pb.ts rename to gen/typescript/qdrant/cloud/iam/v1/iam_pb.d.ts index 42518dee..a3942135 100644 --- a/gen/typescript/qdrant/cloud/iam/v1/iam_pb.ts +++ b/gen/typescript/qdrant/cloud/iam/v1/iam_pb.d.ts @@ -1,28 +1,22 @@ -// @generated by protoc-gen-es v2.2.3 with parameter "target=ts" +// @generated by protoc-gen-es v2.2.3 with parameter "target=js+dts,import_extension=js" // @generated from file qdrant/cloud/iam/v1/iam.proto (package qdrant.cloud.iam.v1, syntax proto3) /* eslint-disable */ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1"; -import { file_buf_validate_validate } from "../../../../buf/validate/validate_pb"; -import { file_google_api_annotations } from "../../../../google/api/annotations_pb"; -import type { Timestamp } from "@bufbuild/protobuf/wkt"; -import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt"; -import { file_qdrant_cloud_common_v1_common } from "../../common/v1/common_pb"; import type { Message } from "@bufbuild/protobuf"; +import type { Timestamp } from "@bufbuild/protobuf/wkt"; /** * Describes the file qdrant/cloud/iam/v1/iam.proto. */ -export const file_qdrant_cloud_iam_v1_iam: GenFile = /*@__PURE__*/ - fileDesc("Ch1xZHJhbnQvY2xvdWQvaWFtL3YxL2lhbS5wcm90bxITcWRyYW50LmNsb3VkLmlhbS52MSI2ChZMaXN0UGVybWlzc2lvbnNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBIi4KF0xpc3RQZXJtaXNzaW9uc1Jlc3BvbnNlEhMKC3Blcm1pc3Npb25zGAEgAygJIjAKEExpc3RSb2xlc1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQEiPQoRTGlzdFJvbGVzUmVzcG9uc2USKAoFaXRlbXMYASADKAsyGS5xZHJhbnQuY2xvdWQuaWFtLnYxLlJvbGUiSQoOR2V0Um9sZVJlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQESGQoHcm9sZV9pZBgCIAEoCUIIukgFcgOwAQEiOgoPR2V0Um9sZVJlc3BvbnNlEicKBHJvbGUYASABKAsyGS5xZHJhbnQuY2xvdWQuaWFtLnYxLlJvbGUiPAoRQ3JlYXRlUm9sZVJlcXVlc3QSJwoEcm9sZRgBIAEoCzIZLnFkcmFudC5jbG91ZC5pYW0udjEuUm9sZSI9ChJDcmVhdGVSb2xlUmVzcG9uc2USJwoEcm9sZRgBIAEoCzIZLnFkcmFudC5jbG91ZC5pYW0udjEuUm9sZSI8ChFVcGRhdGVSb2xlUmVxdWVzdBInCgRyb2xlGAEgASgLMhkucWRyYW50LmNsb3VkLmlhbS52MS5Sb2xlIj0KElVwZGF0ZVJvbGVSZXNwb25zZRInCgRyb2xlGAEgASgLMhkucWRyYW50LmNsb3VkLmlhbS52MS5Sb2xlIkwKEURlbGV0ZVJvbGVSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhkKB3JvbGVfaWQYAiABKAlCCLpIBXIDsAEBIhQKEkRlbGV0ZVJvbGVSZXNwb25zZSI/Ch9MaXN0RWZmZWN0aXZlUGVybWlzc2lvbnNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBIjcKIExpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc1Jlc3BvbnNlEhMKC3Blcm1pc3Npb25zGAEgAygJIqQBChZBc3NpZ25Vc2VyUm9sZXNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhkKB3VzZXJfaWQYAiABKAlCCLpIBXIDsAEBEiYKD3JvbGVfaWRzX3RvX2FkZBgDIAMoCUINukgKkgEHIgVyA7ABARIpChJyb2xlX2lkc190b19kZWxldGUYBCADKAlCDbpICpIBByIFcgOwAQEiGQoXQXNzaWduVXNlclJvbGVzUmVzcG9uc2Ui1AMKBFJvbGUSCgoCaWQYASABKAkSLgoKY3JlYXRlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbGFzdF9tb2RpZmllZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHAoKYWNjb3VudF9pZBgEIAEoCUIIukgFcgOwAQESKQoEbmFtZRgFIAEoCUIbukgYchYQBBhAMhBeW2EtekEtWjAtOS1fXSskEhMKC2Rlc2NyaXB0aW9uGAYgASgJEjAKCXJvbGVfdHlwZRgHIAEoDjIdLnFkcmFudC5jbG91ZC5pYW0udjEuUm9sZVR5cGUSHQoLcGVybWlzc2lvbnMYCCADKAlCCLpIBZIBAggBOqoBukimARqjAQoKY2x1c3Rlci5pZBIadmFsdWUgbXVzdCBiZSBhIHZhbGlkIFVVSUQaeXRoaXMuaWQubWF0Y2hlcygnXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQnKSB8fCAhaGFzKHRoaXMuY3JlYXRlZF9hdCkqUQoIUm9sZVR5cGUSGQoVUk9MRV9UWVBFX1VOU1BFQ0lGSUVEEAASFAoQUk9MRV9UWVBFX1NZU1RFTRABEhQKEFJPTEVfVFlQRV9DVVNUT00QAjLUCwoKSUFNU2VydmljZRKxAQoPTGlzdFBlcm1pc3Npb25zEisucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0UGVybWlzc2lvbnNSZXF1ZXN0GiwucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0UGVybWlzc2lvbnNSZXNwb25zZSJDirUYCnJlYWQ6cm9sZXOC0+STAi8SLS9hcGkvaWFtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9wZXJtaXNzaW9ucxKZAQoJTGlzdFJvbGVzEiUucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0Um9sZXNSZXF1ZXN0GiYucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0Um9sZXNSZXNwb25zZSI9irUYCnJlYWQ6cm9sZXOC0+STAikSJy9hcGkvaWFtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9yb2xlcxKwAQoHR2V0Um9sZRIjLnFkcmFudC5jbG91ZC5pYW0udjEuR2V0Um9sZVJlcXVlc3QaJC5xZHJhbnQuY2xvdWQuaWFtLnYxLkdldFJvbGVSZXNwb25zZSJairUYCnJlYWQ6cm9sZXOStRgPcm9sZS5hY2NvdW50X2lkgtPkkwIzEjEvYXBpL2lhbS92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vcm9sZXMve3JvbGVfaWR9ErgBCgpDcmVhdGVSb2xlEiYucWRyYW50LmNsb3VkLmlhbS52MS5DcmVhdGVSb2xlUmVxdWVzdBonLnFkcmFudC5jbG91ZC5pYW0udjEuQ3JlYXRlUm9sZVJlc3BvbnNlIlmKtRgLd3JpdGU6cm9sZXOStRgPcm9sZS5hY2NvdW50X2lkgtPkkwIxOgEqIiwvYXBpL2lhbS92MS9hY2NvdW50cy97cm9sZS5hY2NvdW50X2lkfS9yb2xlcxLCAQoKVXBkYXRlUm9sZRImLnFkcmFudC5jbG91ZC5pYW0udjEuVXBkYXRlUm9sZVJlcXVlc3QaJy5xZHJhbnQuY2xvdWQuaWFtLnYxLlVwZGF0ZVJvbGVSZXNwb25zZSJjirUYC3dyaXRlOnJvbGVzkrUYD3JvbGUuYWNjb3VudF9pZILT5JMCOzoBKho2L2FwaS9pYW0vdjEvYWNjb3VudHMve3JvbGUuYWNjb3VudF9pZH0vcm9sZXMve3JvbGUuaWR9EqgBCgpEZWxldGVSb2xlEiYucWRyYW50LmNsb3VkLmlhbS52MS5EZWxldGVSb2xlUmVxdWVzdBonLnFkcmFudC5jbG91ZC5pYW0udjEuRGVsZXRlUm9sZVJlc3BvbnNlIkmKtRgMZGVsZXRlOnJvbGVzgtPkkwIzKjEvYXBpL2lhbS92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vcm9sZXMve3JvbGVfaWR9EtYBChhMaXN0RWZmZWN0aXZlUGVybWlzc2lvbnMSNC5xZHJhbnQuY2xvdWQuaWFtLnYxLkxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc1JlcXVlc3QaNS5xZHJhbnQuY2xvdWQuaWFtLnYxLkxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc1Jlc3BvbnNlIk2KtRgKcmVhZDpyb2xlc4LT5JMCORI3L2FwaS9pYW0vdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2VmZmVjdGl2ZS1wZXJtaXNzaW9ucxK+AQoPQXNzaWduVXNlclJvbGVzEisucWRyYW50LmNsb3VkLmlhbS52MS5Bc3NpZ25Vc2VyUm9sZXNSZXF1ZXN0GiwucWRyYW50LmNsb3VkLmlhbS52MS5Bc3NpZ25Vc2VyUm9sZXNSZXNwb25zZSJQirUYCnJlYWQ6cm9sZXOC0+STAjw6ASoiNy9hcGkvaWFtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS91c2Vycy97dXNlcl9pZH0vcm9sZXNC3gEKF2NvbS5xZHJhbnQuY2xvdWQuaWFtLnYxQghJYW1Qcm90b1ABWkpnaXRodWIuY29tL3FkcmFudC9xZHJhbnQtY2xvdWQtcHVibGljLWFwaS9nZW4vZ28vcWRyYW50L2Nsb3VkL2lhbS92MTtpYW12MaICA1FDSaoCE1FkcmFudC5DbG91ZC5JYW0uVjHKAhNRZHJhbnRcQ2xvdWRcSWFtXFYx4gIfUWRyYW50XENsb3VkXElhbVxWMVxHUEJNZXRhZGF0YeoCFlFkcmFudDo6Q2xvdWQ6OklhbTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_annotations, file_google_protobuf_timestamp, file_qdrant_cloud_common_v1_common]); +export declare const file_qdrant_cloud_iam_v1_iam: GenFile; /** * ListPermissionsRequest is the request for the ListPermissions function * * @generated from message qdrant.cloud.iam.v1.ListPermissionsRequest */ -export type ListPermissionsRequest = Message<"qdrant.cloud.iam.v1.ListPermissionsRequest"> & { +export declare type ListPermissionsRequest = Message<"qdrant.cloud.iam.v1.ListPermissionsRequest"> & { /** * The identifier of the account (in GUID format). * This is a required field. @@ -36,15 +30,14 @@ export type ListPermissionsRequest = Message<"qdrant.cloud.iam.v1.ListPermission * Describes the message qdrant.cloud.iam.v1.ListPermissionsRequest. * Use `create(ListPermissionsRequestSchema)` to create a new message. */ -export const ListPermissionsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 0); +export declare const ListPermissionsRequestSchema: GenMessage; /** * ListPermissionsResponse is the response from the ListPermissions function * * @generated from message qdrant.cloud.iam.v1.ListPermissionsResponse */ -export type ListPermissionsResponse = Message<"qdrant.cloud.iam.v1.ListPermissionsResponse"> & { +export declare type ListPermissionsResponse = Message<"qdrant.cloud.iam.v1.ListPermissionsResponse"> & { /** * The permissions know by the system. * @@ -57,15 +50,14 @@ export type ListPermissionsResponse = Message<"qdrant.cloud.iam.v1.ListPermissio * Describes the message qdrant.cloud.iam.v1.ListPermissionsResponse. * Use `create(ListPermissionsResponseSchema)` to create a new message. */ -export const ListPermissionsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 1); +export declare const ListPermissionsResponseSchema: GenMessage; /** * ListRolesRequest is the request for the ListRoles function * * @generated from message qdrant.cloud.iam.v1.ListRolesRequest */ -export type ListRolesRequest = Message<"qdrant.cloud.iam.v1.ListRolesRequest"> & { +export declare type ListRolesRequest = Message<"qdrant.cloud.iam.v1.ListRolesRequest"> & { /** * The identifier of the account (in GUID format). * This is a required field. @@ -79,15 +71,14 @@ export type ListRolesRequest = Message<"qdrant.cloud.iam.v1.ListRolesRequest"> & * Describes the message qdrant.cloud.iam.v1.ListRolesRequest. * Use `create(ListRolesRequestSchema)` to create a new message. */ -export const ListRolesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 2); +export declare const ListRolesRequestSchema: GenMessage; /** * ListRolesResponse is the response from the ListRoles function * * @generated from message qdrant.cloud.iam.v1.ListRolesResponse */ -export type ListRolesResponse = Message<"qdrant.cloud.iam.v1.ListRolesResponse"> & { +export declare type ListRolesResponse = Message<"qdrant.cloud.iam.v1.ListRolesResponse"> & { /** * The actual roles in this list. * @@ -100,15 +91,14 @@ export type ListRolesResponse = Message<"qdrant.cloud.iam.v1.ListRolesResponse"> * Describes the message qdrant.cloud.iam.v1.ListRolesResponse. * Use `create(ListRolesResponseSchema)` to create a new message. */ -export const ListRolesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 3); +export declare const ListRolesResponseSchema: GenMessage; /** * GetRoleRequest is the request for the GetRole function * * @generated from message qdrant.cloud.iam.v1.GetRoleRequest */ -export type GetRoleRequest = Message<"qdrant.cloud.iam.v1.GetRoleRequest"> & { +export declare type GetRoleRequest = Message<"qdrant.cloud.iam.v1.GetRoleRequest"> & { /** * The identifier of the account (in GUID format). * This is a required field. @@ -130,15 +120,14 @@ export type GetRoleRequest = Message<"qdrant.cloud.iam.v1.GetRoleRequest"> & { * Describes the message qdrant.cloud.iam.v1.GetRoleRequest. * Use `create(GetRoleRequestSchema)` to create a new message. */ -export const GetRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 4); +export declare const GetRoleRequestSchema: GenMessage; /** * GetRoleResponse is the response from the GetRole function * * @generated from message qdrant.cloud.iam.v1.GetRoleResponse */ -export type GetRoleResponse = Message<"qdrant.cloud.iam.v1.GetRoleResponse"> & { +export declare type GetRoleResponse = Message<"qdrant.cloud.iam.v1.GetRoleResponse"> & { /** * The actual role. * @@ -151,15 +140,14 @@ export type GetRoleResponse = Message<"qdrant.cloud.iam.v1.GetRoleResponse"> & { * Describes the message qdrant.cloud.iam.v1.GetRoleResponse. * Use `create(GetRoleResponseSchema)` to create a new message. */ -export const GetRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 5); +export declare const GetRoleResponseSchema: GenMessage; /** * CreateRoleRequest is the request for the CreateRole function. * * @generated from message qdrant.cloud.iam.v1.CreateRoleRequest */ -export type CreateRoleRequest = Message<"qdrant.cloud.iam.v1.CreateRoleRequest"> & { +export declare type CreateRoleRequest = Message<"qdrant.cloud.iam.v1.CreateRoleRequest"> & { /** * The actual role. * @@ -172,15 +160,14 @@ export type CreateRoleRequest = Message<"qdrant.cloud.iam.v1.CreateRoleRequest"> * Describes the message qdrant.cloud.iam.v1.CreateRoleRequest. * Use `create(CreateRoleRequestSchema)` to create a new message. */ -export const CreateRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 6); +export declare const CreateRoleRequestSchema: GenMessage; /** * CreateRoleResponse is the response from the CreateRole function. * * @generated from message qdrant.cloud.iam.v1.CreateRoleResponse */ -export type CreateRoleResponse = Message<"qdrant.cloud.iam.v1.CreateRoleResponse"> & { +export declare type CreateRoleResponse = Message<"qdrant.cloud.iam.v1.CreateRoleResponse"> & { /** * The actual role. * @@ -193,15 +180,14 @@ export type CreateRoleResponse = Message<"qdrant.cloud.iam.v1.CreateRoleResponse * Describes the message qdrant.cloud.iam.v1.CreateRoleResponse. * Use `create(CreateRoleResponseSchema)` to create a new message. */ -export const CreateRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 7); +export declare const CreateRoleResponseSchema: GenMessage; /** * UpdateRoleRequest is the request for the UpdateRole function. * * @generated from message qdrant.cloud.iam.v1.UpdateRoleRequest */ -export type UpdateRoleRequest = Message<"qdrant.cloud.iam.v1.UpdateRoleRequest"> & { +export declare type UpdateRoleRequest = Message<"qdrant.cloud.iam.v1.UpdateRoleRequest"> & { /** * The actual role. * @@ -214,15 +200,14 @@ export type UpdateRoleRequest = Message<"qdrant.cloud.iam.v1.UpdateRoleRequest"> * Describes the message qdrant.cloud.iam.v1.UpdateRoleRequest. * Use `create(UpdateRoleRequestSchema)` to create a new message. */ -export const UpdateRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 8); +export declare const UpdateRoleRequestSchema: GenMessage; /** * UpdateRoleResponse is the response from the UpdateRole function. * * @generated from message qdrant.cloud.iam.v1.UpdateRoleResponse */ -export type UpdateRoleResponse = Message<"qdrant.cloud.iam.v1.UpdateRoleResponse"> & { +export declare type UpdateRoleResponse = Message<"qdrant.cloud.iam.v1.UpdateRoleResponse"> & { /** * The actual role. * @@ -235,15 +220,14 @@ export type UpdateRoleResponse = Message<"qdrant.cloud.iam.v1.UpdateRoleResponse * Describes the message qdrant.cloud.iam.v1.UpdateRoleResponse. * Use `create(UpdateRoleResponseSchema)` to create a new message. */ -export const UpdateRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 9); +export declare const UpdateRoleResponseSchema: GenMessage; /** * DeleteRoleRequest is the request for the DeleteRole function. * * @generated from message qdrant.cloud.iam.v1.DeleteRoleRequest */ -export type DeleteRoleRequest = Message<"qdrant.cloud.iam.v1.DeleteRoleRequest"> & { +export declare type DeleteRoleRequest = Message<"qdrant.cloud.iam.v1.DeleteRoleRequest"> & { /** * The identifier of the account (in GUID format). * This is a required field. @@ -265,8 +249,7 @@ export type DeleteRoleRequest = Message<"qdrant.cloud.iam.v1.DeleteRoleRequest"> * Describes the message qdrant.cloud.iam.v1.DeleteRoleRequest. * Use `create(DeleteRoleRequestSchema)` to create a new message. */ -export const DeleteRoleRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 10); +export declare const DeleteRoleRequestSchema: GenMessage; /** * DeleteRoleResponse is the response from the DeleteRole function. @@ -275,22 +258,21 @@ export const DeleteRoleRequestSchema: GenMessage = /*@__PURE_ * * @generated from message qdrant.cloud.iam.v1.DeleteRoleResponse */ -export type DeleteRoleResponse = Message<"qdrant.cloud.iam.v1.DeleteRoleResponse"> & { +export declare type DeleteRoleResponse = Message<"qdrant.cloud.iam.v1.DeleteRoleResponse"> & { }; /** * Describes the message qdrant.cloud.iam.v1.DeleteRoleResponse. * Use `create(DeleteRoleResponseSchema)` to create a new message. */ -export const DeleteRoleResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 11); +export declare const DeleteRoleResponseSchema: GenMessage; /** * ListEffectivePermissionsRequest is the request for the ListEffectivePermissions function * * @generated from message qdrant.cloud.iam.v1.ListEffectivePermissionsRequest */ -export type ListEffectivePermissionsRequest = Message<"qdrant.cloud.iam.v1.ListEffectivePermissionsRequest"> & { +export declare type ListEffectivePermissionsRequest = Message<"qdrant.cloud.iam.v1.ListEffectivePermissionsRequest"> & { /** * The identifier of the account (in GUID format). * This is a required field. @@ -304,15 +286,14 @@ export type ListEffectivePermissionsRequest = Message<"qdrant.cloud.iam.v1.ListE * Describes the message qdrant.cloud.iam.v1.ListEffectivePermissionsRequest. * Use `create(ListEffectivePermissionsRequestSchema)` to create a new message. */ -export const ListEffectivePermissionsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 12); +export declare const ListEffectivePermissionsRequestSchema: GenMessage; /** * ListEffectivePermissionsResponse is the response from the ListEffectivePermissions function * * @generated from message qdrant.cloud.iam.v1.ListEffectivePermissionsResponse */ -export type ListEffectivePermissionsResponse = Message<"qdrant.cloud.iam.v1.ListEffectivePermissionsResponse"> & { +export declare type ListEffectivePermissionsResponse = Message<"qdrant.cloud.iam.v1.ListEffectivePermissionsResponse"> & { /** * The effective permissions. * @@ -325,15 +306,14 @@ export type ListEffectivePermissionsResponse = Message<"qdrant.cloud.iam.v1.List * Describes the message qdrant.cloud.iam.v1.ListEffectivePermissionsResponse. * Use `create(ListEffectivePermissionsResponseSchema)` to create a new message. */ -export const ListEffectivePermissionsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 13); +export declare const ListEffectivePermissionsResponseSchema: GenMessage; /** * AssignUserRolesRequest is the request for the AssignUserRoles function * * @generated from message qdrant.cloud.iam.v1.AssignUserRolesRequest */ -export type AssignUserRolesRequest = Message<"qdrant.cloud.iam.v1.AssignUserRolesRequest"> & { +export declare type AssignUserRolesRequest = Message<"qdrant.cloud.iam.v1.AssignUserRolesRequest"> & { /** * The identifier of the account (in GUID format). * This is a required field. @@ -372,8 +352,7 @@ export type AssignUserRolesRequest = Message<"qdrant.cloud.iam.v1.AssignUserRole * Describes the message qdrant.cloud.iam.v1.AssignUserRolesRequest. * Use `create(AssignUserRolesRequestSchema)` to create a new message. */ -export const AssignUserRolesRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 14); +export declare const AssignUserRolesRequestSchema: GenMessage; /** * AssignUserRolesResponse is the response from the AssignUserRoles function @@ -382,22 +361,21 @@ export const AssignUserRolesRequestSchema: GenMessage = * * @generated from message qdrant.cloud.iam.v1.AssignUserRolesResponse */ -export type AssignUserRolesResponse = Message<"qdrant.cloud.iam.v1.AssignUserRolesResponse"> & { +export declare type AssignUserRolesResponse = Message<"qdrant.cloud.iam.v1.AssignUserRolesResponse"> & { }; /** * Describes the message qdrant.cloud.iam.v1.AssignUserRolesResponse. * Use `create(AssignUserRolesResponseSchema)` to create a new message. */ -export const AssignUserRolesResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 15); +export declare const AssignUserRolesResponseSchema: GenMessage; /** * A Role represents a role in the Qdrant cloud. * * @generated from message qdrant.cloud.iam.v1.Role */ -export type Role = Message<"qdrant.cloud.iam.v1.Role"> & { +export declare type Role = Message<"qdrant.cloud.iam.v1.Role"> & { /** * Unique identifier for the role (in GUID format). * This is a read-only field and will be available after a role is created. @@ -465,8 +443,7 @@ export type Role = Message<"qdrant.cloud.iam.v1.Role"> & { * Describes the message qdrant.cloud.iam.v1.Role. * Use `create(RoleSchema)` to create a new message. */ -export const RoleSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_qdrant_cloud_iam_v1_iam, 16); +export declare const RoleSchema: GenMessage; /** * RoleType specified the type of the role @@ -500,15 +477,14 @@ export enum RoleType { /** * Describes the enum qdrant.cloud.iam.v1.RoleType. */ -export const RoleTypeSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_qdrant_cloud_iam_v1_iam, 0); +export declare const RoleTypeSchema: GenEnum; /** * IAMService is the API used to configure IAM (identity and access management) objects.. * * @generated from service qdrant.cloud.iam.v1.IAMService */ -export const IAMService: GenService<{ +export declare const IAMService: GenService<{ /** * Fetch all permissions known in the system for the provided account. * Note: If you want to get a list of permissions available for you, please use GetEffectivePermissions instead. @@ -609,6 +585,5 @@ export const IAMService: GenService<{ input: typeof AssignUserRolesRequestSchema; output: typeof AssignUserRolesResponseSchema; }, -}> = /*@__PURE__*/ - serviceDesc(file_qdrant_cloud_iam_v1_iam, 0); +}>; diff --git a/gen/typescript/qdrant/cloud/iam/v1/iam_pb.js b/gen/typescript/qdrant/cloud/iam/v1/iam_pb.js new file mode 100644 index 00000000..04668451 --- /dev/null +++ b/gen/typescript/qdrant/cloud/iam/v1/iam_pb.js @@ -0,0 +1,157 @@ +// @generated by protoc-gen-es v2.2.3 with parameter "target=js+dts,import_extension=js" +// @generated from file qdrant/cloud/iam/v1/iam.proto (package qdrant.cloud.iam.v1, syntax proto3) +/* eslint-disable */ + +import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; +import { file_buf_validate_validate } from "../../../../buf/validate/validate_pb.js"; +import { file_google_api_annotations } from "../../../../google/api/annotations_pb.js"; +import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt"; +import { file_qdrant_cloud_common_v1_common } from "../../common/v1/common_pb.js"; + +/** + * Describes the file qdrant/cloud/iam/v1/iam.proto. + */ +export const file_qdrant_cloud_iam_v1_iam = /*@__PURE__*/ + fileDesc("Ch1xZHJhbnQvY2xvdWQvaWFtL3YxL2lhbS5wcm90bxITcWRyYW50LmNsb3VkLmlhbS52MSI2ChZMaXN0UGVybWlzc2lvbnNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBIi4KF0xpc3RQZXJtaXNzaW9uc1Jlc3BvbnNlEhMKC3Blcm1pc3Npb25zGAEgAygJIjAKEExpc3RSb2xlc1JlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQEiPQoRTGlzdFJvbGVzUmVzcG9uc2USKAoFaXRlbXMYASADKAsyGS5xZHJhbnQuY2xvdWQuaWFtLnYxLlJvbGUiSQoOR2V0Um9sZVJlcXVlc3QSHAoKYWNjb3VudF9pZBgBIAEoCUIIukgFcgOwAQESGQoHcm9sZV9pZBgCIAEoCUIIukgFcgOwAQEiOgoPR2V0Um9sZVJlc3BvbnNlEicKBHJvbGUYASABKAsyGS5xZHJhbnQuY2xvdWQuaWFtLnYxLlJvbGUiPAoRQ3JlYXRlUm9sZVJlcXVlc3QSJwoEcm9sZRgBIAEoCzIZLnFkcmFudC5jbG91ZC5pYW0udjEuUm9sZSI9ChJDcmVhdGVSb2xlUmVzcG9uc2USJwoEcm9sZRgBIAEoCzIZLnFkcmFudC5jbG91ZC5pYW0udjEuUm9sZSI8ChFVcGRhdGVSb2xlUmVxdWVzdBInCgRyb2xlGAEgASgLMhkucWRyYW50LmNsb3VkLmlhbS52MS5Sb2xlIj0KElVwZGF0ZVJvbGVSZXNwb25zZRInCgRyb2xlGAEgASgLMhkucWRyYW50LmNsb3VkLmlhbS52MS5Sb2xlIkwKEURlbGV0ZVJvbGVSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhkKB3JvbGVfaWQYAiABKAlCCLpIBXIDsAEBIhQKEkRlbGV0ZVJvbGVSZXNwb25zZSI/Ch9MaXN0RWZmZWN0aXZlUGVybWlzc2lvbnNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBIjcKIExpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc1Jlc3BvbnNlEhMKC3Blcm1pc3Npb25zGAEgAygJIqQBChZBc3NpZ25Vc2VyUm9sZXNSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhkKB3VzZXJfaWQYAiABKAlCCLpIBXIDsAEBEiYKD3JvbGVfaWRzX3RvX2FkZBgDIAMoCUINukgKkgEHIgVyA7ABARIpChJyb2xlX2lkc190b19kZWxldGUYBCADKAlCDbpICpIBByIFcgOwAQEiGQoXQXNzaWduVXNlclJvbGVzUmVzcG9uc2Ui1AMKBFJvbGUSCgoCaWQYASABKAkSLgoKY3JlYXRlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNAoQbGFzdF9tb2RpZmllZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHAoKYWNjb3VudF9pZBgEIAEoCUIIukgFcgOwAQESKQoEbmFtZRgFIAEoCUIbukgYchYQBBhAMhBeW2EtekEtWjAtOS1fXSskEhMKC2Rlc2NyaXB0aW9uGAYgASgJEjAKCXJvbGVfdHlwZRgHIAEoDjIdLnFkcmFudC5jbG91ZC5pYW0udjEuUm9sZVR5cGUSHQoLcGVybWlzc2lvbnMYCCADKAlCCLpIBZIBAggBOqoBukimARqjAQoKY2x1c3Rlci5pZBIadmFsdWUgbXVzdCBiZSBhIHZhbGlkIFVVSUQaeXRoaXMuaWQubWF0Y2hlcygnXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQnKSB8fCAhaGFzKHRoaXMuY3JlYXRlZF9hdCkqUQoIUm9sZVR5cGUSGQoVUk9MRV9UWVBFX1VOU1BFQ0lGSUVEEAASFAoQUk9MRV9UWVBFX1NZU1RFTRABEhQKEFJPTEVfVFlQRV9DVVNUT00QAjLUCwoKSUFNU2VydmljZRKxAQoPTGlzdFBlcm1pc3Npb25zEisucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0UGVybWlzc2lvbnNSZXF1ZXN0GiwucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0UGVybWlzc2lvbnNSZXNwb25zZSJDirUYCnJlYWQ6cm9sZXOC0+STAi8SLS9hcGkvaWFtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9wZXJtaXNzaW9ucxKZAQoJTGlzdFJvbGVzEiUucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0Um9sZXNSZXF1ZXN0GiYucWRyYW50LmNsb3VkLmlhbS52MS5MaXN0Um9sZXNSZXNwb25zZSI9irUYCnJlYWQ6cm9sZXOC0+STAikSJy9hcGkvaWFtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9yb2xlcxKwAQoHR2V0Um9sZRIjLnFkcmFudC5jbG91ZC5pYW0udjEuR2V0Um9sZVJlcXVlc3QaJC5xZHJhbnQuY2xvdWQuaWFtLnYxLkdldFJvbGVSZXNwb25zZSJairUYCnJlYWQ6cm9sZXOStRgPcm9sZS5hY2NvdW50X2lkgtPkkwIzEjEvYXBpL2lhbS92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vcm9sZXMve3JvbGVfaWR9ErgBCgpDcmVhdGVSb2xlEiYucWRyYW50LmNsb3VkLmlhbS52MS5DcmVhdGVSb2xlUmVxdWVzdBonLnFkcmFudC5jbG91ZC5pYW0udjEuQ3JlYXRlUm9sZVJlc3BvbnNlIlmKtRgLd3JpdGU6cm9sZXOStRgPcm9sZS5hY2NvdW50X2lkgtPkkwIxOgEqIiwvYXBpL2lhbS92MS9hY2NvdW50cy97cm9sZS5hY2NvdW50X2lkfS9yb2xlcxLCAQoKVXBkYXRlUm9sZRImLnFkcmFudC5jbG91ZC5pYW0udjEuVXBkYXRlUm9sZVJlcXVlc3QaJy5xZHJhbnQuY2xvdWQuaWFtLnYxLlVwZGF0ZVJvbGVSZXNwb25zZSJjirUYC3dyaXRlOnJvbGVzkrUYD3JvbGUuYWNjb3VudF9pZILT5JMCOzoBKho2L2FwaS9pYW0vdjEvYWNjb3VudHMve3JvbGUuYWNjb3VudF9pZH0vcm9sZXMve3JvbGUuaWR9EqgBCgpEZWxldGVSb2xlEiYucWRyYW50LmNsb3VkLmlhbS52MS5EZWxldGVSb2xlUmVxdWVzdBonLnFkcmFudC5jbG91ZC5pYW0udjEuRGVsZXRlUm9sZVJlc3BvbnNlIkmKtRgMZGVsZXRlOnJvbGVzgtPkkwIzKjEvYXBpL2lhbS92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vcm9sZXMve3JvbGVfaWR9EtYBChhMaXN0RWZmZWN0aXZlUGVybWlzc2lvbnMSNC5xZHJhbnQuY2xvdWQuaWFtLnYxLkxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc1JlcXVlc3QaNS5xZHJhbnQuY2xvdWQuaWFtLnYxLkxpc3RFZmZlY3RpdmVQZXJtaXNzaW9uc1Jlc3BvbnNlIk2KtRgKcmVhZDpyb2xlc4LT5JMCORI3L2FwaS9pYW0vdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2VmZmVjdGl2ZS1wZXJtaXNzaW9ucxK+AQoPQXNzaWduVXNlclJvbGVzEisucWRyYW50LmNsb3VkLmlhbS52MS5Bc3NpZ25Vc2VyUm9sZXNSZXF1ZXN0GiwucWRyYW50LmNsb3VkLmlhbS52MS5Bc3NpZ25Vc2VyUm9sZXNSZXNwb25zZSJQirUYCnJlYWQ6cm9sZXOC0+STAjw6ASoiNy9hcGkvaWFtL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS91c2Vycy97dXNlcl9pZH0vcm9sZXNC3gEKF2NvbS5xZHJhbnQuY2xvdWQuaWFtLnYxQghJYW1Qcm90b1ABWkpnaXRodWIuY29tL3FkcmFudC9xZHJhbnQtY2xvdWQtcHVibGljLWFwaS9nZW4vZ28vcWRyYW50L2Nsb3VkL2lhbS92MTtpYW12MaICA1FDSaoCE1FkcmFudC5DbG91ZC5JYW0uVjHKAhNRZHJhbnRcQ2xvdWRcSWFtXFYx4gIfUWRyYW50XENsb3VkXElhbVxWMVxHUEJNZXRhZGF0YeoCFlFkcmFudDo6Q2xvdWQ6OklhbTo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_google_api_annotations, file_google_protobuf_timestamp, file_qdrant_cloud_common_v1_common]); + +/** + * Describes the message qdrant.cloud.iam.v1.ListPermissionsRequest. + * Use `create(ListPermissionsRequestSchema)` to create a new message. + */ +export const ListPermissionsRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 0); + +/** + * Describes the message qdrant.cloud.iam.v1.ListPermissionsResponse. + * Use `create(ListPermissionsResponseSchema)` to create a new message. + */ +export const ListPermissionsResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 1); + +/** + * Describes the message qdrant.cloud.iam.v1.ListRolesRequest. + * Use `create(ListRolesRequestSchema)` to create a new message. + */ +export const ListRolesRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 2); + +/** + * Describes the message qdrant.cloud.iam.v1.ListRolesResponse. + * Use `create(ListRolesResponseSchema)` to create a new message. + */ +export const ListRolesResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 3); + +/** + * Describes the message qdrant.cloud.iam.v1.GetRoleRequest. + * Use `create(GetRoleRequestSchema)` to create a new message. + */ +export const GetRoleRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 4); + +/** + * Describes the message qdrant.cloud.iam.v1.GetRoleResponse. + * Use `create(GetRoleResponseSchema)` to create a new message. + */ +export const GetRoleResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 5); + +/** + * Describes the message qdrant.cloud.iam.v1.CreateRoleRequest. + * Use `create(CreateRoleRequestSchema)` to create a new message. + */ +export const CreateRoleRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 6); + +/** + * Describes the message qdrant.cloud.iam.v1.CreateRoleResponse. + * Use `create(CreateRoleResponseSchema)` to create a new message. + */ +export const CreateRoleResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 7); + +/** + * Describes the message qdrant.cloud.iam.v1.UpdateRoleRequest. + * Use `create(UpdateRoleRequestSchema)` to create a new message. + */ +export const UpdateRoleRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 8); + +/** + * Describes the message qdrant.cloud.iam.v1.UpdateRoleResponse. + * Use `create(UpdateRoleResponseSchema)` to create a new message. + */ +export const UpdateRoleResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 9); + +/** + * Describes the message qdrant.cloud.iam.v1.DeleteRoleRequest. + * Use `create(DeleteRoleRequestSchema)` to create a new message. + */ +export const DeleteRoleRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 10); + +/** + * Describes the message qdrant.cloud.iam.v1.DeleteRoleResponse. + * Use `create(DeleteRoleResponseSchema)` to create a new message. + */ +export const DeleteRoleResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 11); + +/** + * Describes the message qdrant.cloud.iam.v1.ListEffectivePermissionsRequest. + * Use `create(ListEffectivePermissionsRequestSchema)` to create a new message. + */ +export const ListEffectivePermissionsRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 12); + +/** + * Describes the message qdrant.cloud.iam.v1.ListEffectivePermissionsResponse. + * Use `create(ListEffectivePermissionsResponseSchema)` to create a new message. + */ +export const ListEffectivePermissionsResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 13); + +/** + * Describes the message qdrant.cloud.iam.v1.AssignUserRolesRequest. + * Use `create(AssignUserRolesRequestSchema)` to create a new message. + */ +export const AssignUserRolesRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 14); + +/** + * Describes the message qdrant.cloud.iam.v1.AssignUserRolesResponse. + * Use `create(AssignUserRolesResponseSchema)` to create a new message. + */ +export const AssignUserRolesResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 15); + +/** + * Describes the message qdrant.cloud.iam.v1.Role. + * Use `create(RoleSchema)` to create a new message. + */ +export const RoleSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_iam_v1_iam, 16); + +/** + * Describes the enum qdrant.cloud.iam.v1.RoleType. + */ +export const RoleTypeSchema = /*@__PURE__*/ + enumDesc(file_qdrant_cloud_iam_v1_iam, 0); + +/** + * RoleType specified the type of the role + * + * @generated from enum qdrant.cloud.iam.v1.RoleType + */ +export const RoleType = /*@__PURE__*/ + tsEnum(RoleTypeSchema); + +/** + * IAMService is the API used to configure IAM (identity and access management) objects.. + * + * @generated from service qdrant.cloud.iam.v1.IAMService + */ +export const IAMService = /*@__PURE__*/ + serviceDesc(file_qdrant_cloud_iam_v1_iam, 0); + diff --git a/gen/typescript/qdrant/cloud/monitoring/v1/monitoring_pb.d.ts b/gen/typescript/qdrant/cloud/monitoring/v1/monitoring_pb.d.ts new file mode 100644 index 00000000..60952632 --- /dev/null +++ b/gen/typescript/qdrant/cloud/monitoring/v1/monitoring_pb.d.ts @@ -0,0 +1,689 @@ +// @generated by protoc-gen-es v2.2.3 with parameter "target=js+dts,import_extension=js" +// @generated from file qdrant/cloud/monitoring/v1/monitoring.proto (package qdrant.cloud.monitoring.v1, syntax proto3) +/* eslint-disable */ + +import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1"; +import type { Message } from "@bufbuild/protobuf"; +import type { Duration, Timestamp } from "@bufbuild/protobuf/wkt"; + +/** + * Describes the file qdrant/cloud/monitoring/v1/monitoring.proto. + */ +export declare const file_qdrant_cloud_monitoring_v1_monitoring: GenFile; + +/** + * GetClusterSummaryMetricsRequest is the request for the GetClusterSummaryMetrics function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsRequest + */ +export declare type GetClusterSummaryMetricsRequest = Message<"qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsRequest"> & { + /** + * The identifier of the account (in GUID format). + * This is a required field. + * + * @generated from field: string account_id = 1; + */ + accountId: string; + + /** + * The identifier for the cluster (in GUID format). + * This cluster should be part of the provided account. + * This is a required field. + * + * @generated from field: string cluster_id = 2; + */ + clusterId: string; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsRequest. + * Use `create(GetClusterSummaryMetricsRequestSchema)` to create a new message. + */ +export declare const GetClusterSummaryMetricsRequestSchema: GenMessage; + +/** + * GetClusterSummaryMetricsResponse is the response from the GetClusterSummaryMetrics function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse + */ +export declare type GetClusterSummaryMetricsResponse = Message<"qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse"> & { + /** + * List of metrics aggregated per node in the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.ClusterNodeMetrics nodes = 1; + */ + nodes: ClusterNodeMetrics[]; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse. + * Use `create(GetClusterSummaryMetricsResponseSchema)` to create a new message. + */ +export declare const GetClusterSummaryMetricsResponseSchema: GenMessage; + +/** + * GetClusterUsageMetricsRequest is the request for the GetClusterUsageMetrics function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest + */ +export declare type GetClusterUsageMetricsRequest = Message<"qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest"> & { + /** + * The identifier of the account (in GUID format). + * This is a required field. + * + * @generated from field: string account_id = 1; + */ + accountId: string; + + /** + * The identifier for the cluster (in GUID format). + * This cluster should be part of the provided account. + * This is a required field. + * + * @generated from field: string cluster_id = 2; + */ + clusterId: string; + + /** + * Optional start time for the metrics query. + * If omitted, defaults to 1 hour ago. + * + * @generated from field: optional google.protobuf.Timestamp since = 3; + */ + since?: Timestamp; + + /** + * Optional end time for the metrics query. + * If omitted, defaults to current time. + * + * @generated from field: optional google.protobuf.Timestamp until = 4; + */ + until?: Timestamp; + + /** + * Aggregation function to apply to the time series data. + * If omitted, defaults to SUM. + * + * @generated from field: optional qdrant.cloud.monitoring.v1.Aggregator aggregator = 5; + */ + aggregator?: Aggregator; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest. + * Use `create(GetClusterUsageMetricsRequestSchema)` to create a new message. + */ +export declare const GetClusterUsageMetricsRequestSchema: GenMessage; + +/** + * GetClusterUsageMetricsResponse is the response from the GetClusterUsageMetrics function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse + */ +export declare type GetClusterUsageMetricsResponse = Message<"qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse"> & { + /** + * Timeseries of overall CPU usage across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric cpu = 1; + */ + cpu: Metric[]; + + /** + * Timeseries of overall RAM usage across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram = 2; + */ + ram: Metric[]; + + /** + * Timeseries of RAM used for cache across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram_cache = 3; + */ + ramCache: Metric[]; + + /** + * Timeseries of RSS memory used across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram_rss = 4; + */ + ramRss: Metric[]; + + /** + * Timeseries of RSS memory used by the Qdrant database across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram_qdrant_rss = 5; + */ + ramQdrantRss: Metric[]; + + /** + * Timeseries of disk usage across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric disk = 6; + */ + disk: Metric[]; + + /** + * Timeseries of requests per second (RPS) across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric rps = 7; + */ + rps: Metric[]; + + /** + * Timeseries of request latency across the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric latency = 8; + */ + latency: Metric[]; + + /** + * Per-node metrics. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics nodes = 9; + */ + nodes: ClusterNodeUsageMetrics[]; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse. + * Use `create(GetClusterUsageMetricsResponseSchema)` to create a new message. + */ +export declare const GetClusterUsageMetricsResponseSchema: GenMessage; + +/** + * GetClusterLogsRequest is the request for the GetClusterLogs function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterLogsRequest + */ +export declare type GetClusterLogsRequest = Message<"qdrant.cloud.monitoring.v1.GetClusterLogsRequest"> & { + /** + * The identifier of the account (in GUID format). + * This is a required field. + * + * @generated from field: string account_id = 1; + */ + accountId: string; + + /** + * The identifier for the cluster (in GUID format). + * This cluster should be part of the provided account. + * This is a required field. + * + * @generated from field: string cluster_id = 2; + */ + clusterId: string; + + /** + * Optional start time for the logs query. + * If omitted, defaults to 3 days ago. + * + * @generated from field: optional google.protobuf.Timestamp since = 3; + */ + since?: Timestamp; + + /** + * Optional end time for the logs query. + * If omitted, defaults to current time. + * + * @generated from field: optional google.protobuf.Timestamp until = 4; + */ + until?: Timestamp; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterLogsRequest. + * Use `create(GetClusterLogsRequestSchema)` to create a new message. + */ +export declare const GetClusterLogsRequestSchema: GenMessage; + +/** + * GetClusterLogsResponse is the response from the GetClusterLogs function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterLogsResponse + */ +export declare type GetClusterLogsResponse = Message<"qdrant.cloud.monitoring.v1.GetClusterLogsResponse"> & { + /** + * A list of log entries from the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.LogEntry items = 1; + */ + items: LogEntry[]; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterLogsResponse. + * Use `create(GetClusterLogsResponseSchema)` to create a new message. + */ +export declare const GetClusterLogsResponseSchema: GenMessage; + +/** + * GetClusterEventsRequest is the request for the GetClusterEvents function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterEventsRequest + */ +export declare type GetClusterEventsRequest = Message<"qdrant.cloud.monitoring.v1.GetClusterEventsRequest"> & { + /** + * The identifier of the account (in GUID format). + * This is a required field. + * + * @generated from field: string account_id = 1; + */ + accountId: string; + + /** + * The identifier for the cluster (in GUID format). + * This cluster should be part of the provided account. + * This is a required field. + * + * @generated from field: string cluster_id = 2; + */ + clusterId: string; + + /** + * Optional start time for the events query. + * If omitted, defaults to 7 days ago. + * + * @generated from field: optional google.protobuf.Timestamp since = 3; + */ + since?: Timestamp; + + /** + * Optional end time for the events query. + * If omitted, defaults to current time. + * + * @generated from field: optional google.protobuf.Timestamp until = 4; + */ + until?: Timestamp; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterEventsRequest. + * Use `create(GetClusterEventsRequestSchema)` to create a new message. + */ +export declare const GetClusterEventsRequestSchema: GenMessage; + +/** + * GetClusterEventsRequest is the response from the GetClusterEvents function + * + * @generated from message qdrant.cloud.monitoring.v1.GetClusterEventsResponse + */ +export declare type GetClusterEventsResponse = Message<"qdrant.cloud.monitoring.v1.GetClusterEventsResponse"> & { + /** + * A list of entries representing events that have happened in the cluster. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.LogEntry items = 1; + */ + items: LogEntry[]; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterEventsResponse. + * Use `create(GetClusterEventsResponseSchema)` to create a new message. + */ +export declare const GetClusterEventsResponseSchema: GenMessage; + +/** + * ClusterNodeMetrics contains metric overview for a node. + * + * @generated from message qdrant.cloud.monitoring.v1.ClusterNodeMetrics + */ +export declare type ClusterNodeMetrics = Message<"qdrant.cloud.monitoring.v1.ClusterNodeMetrics"> & { + /** + * Unique identifier of the node. + * + * @generated from field: string node_id = 1; + */ + nodeId: string; + + /** + * Overview of CPU usage. + * + * @generated from field: qdrant.cloud.monitoring.v1.ClusterMetricOverview cpu = 2; + */ + cpu?: ClusterMetricOverview; + + /** + * Overview of RAM usage. + * + * @generated from field: qdrant.cloud.monitoring.v1.ClusterMetricOverview ram = 3; + */ + ram?: ClusterMetricOverview; + + /** + * Overview of RAM cache usage. + * + * @generated from field: qdrant.cloud.monitoring.v1.ClusterMetricOverview ram_cache = 4; + */ + ramCache?: ClusterMetricOverview; + + /** + * Overview of RSS memory usage. + * + * @generated from field: qdrant.cloud.monitoring.v1.ClusterMetricOverview ram_rss = 5; + */ + ramRss?: ClusterMetricOverview; + + /** + * Overview of RSS memory usage by the Qdrant database. + * + * @generated from field: qdrant.cloud.monitoring.v1.ClusterMetricOverview ram_qdrant_rss = 6; + */ + ramQdrantRss?: ClusterMetricOverview; + + /** + * Overview of disk usage. + * + * @generated from field: qdrant.cloud.monitoring.v1.ClusterMetricOverview disk = 7; + */ + disk?: ClusterMetricOverview; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.ClusterNodeMetrics. + * Use `create(ClusterNodeMetricsSchema)` to create a new message. + */ +export declare const ClusterNodeMetricsSchema: GenMessage; + +/** + * ClusterMetricOverview contains both the average values of a metric over + * predefined intervals, and the total available value of that resource. + * + * @generated from message qdrant.cloud.monitoring.v1.ClusterMetricOverview + */ +export declare type ClusterMetricOverview = Message<"qdrant.cloud.monitoring.v1.ClusterMetricOverview"> & { + /** + * Average metric values calculated over various time intervals. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.IntervalAverage avg = 1; + */ + avg: IntervalAverage[]; + + /** + * Total available value of the resource on the node. + * + * @generated from field: qdrant.cloud.monitoring.v1.ResourceValue total = 2; + */ + total?: ResourceValue; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.ClusterMetricOverview. + * Use `create(ClusterMetricOverviewSchema)` to create a new message. + */ +export declare const ClusterMetricOverviewSchema: GenMessage; + +/** + * IntervalAverage represents the average value of a metric over a specific time interval. + * + * @generated from message qdrant.cloud.monitoring.v1.IntervalAverage + */ +export declare type IntervalAverage = Message<"qdrant.cloud.monitoring.v1.IntervalAverage"> & { + /** + * The duration of the interval. + * + * @generated from field: google.protobuf.Duration interval = 1; + */ + interval?: Duration; + + /** + * Average value of the metric during the specified interval. + * + * @generated from field: double value = 2; + */ + value: number; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.IntervalAverage. + * Use `create(IntervalAverageSchema)` to create a new message. + */ +export declare const IntervalAverageSchema: GenMessage; + +/** + * ResourceValue represents the total value of a resource along with its unit. + * + * @generated from message qdrant.cloud.monitoring.v1.ResourceValue + */ +export declare type ResourceValue = Message<"qdrant.cloud.monitoring.v1.ResourceValue"> & { + /** + * Value of the resource, e.g., 0.5. + * + * @generated from field: double value = 1; + */ + value: number; + + /** + * Unit of the resource value, e.g., "vcpu/core". + * + * @generated from field: string unit = 2; + */ + unit: string; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.ResourceValue. + * Use `create(ResourceValueSchema)` to create a new message. + */ +export declare const ResourceValueSchema: GenMessage; + +/** + * ClusterNodeUsageMetrics defines per-node usage metrics. + * + * @generated from message qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics + */ +export declare type ClusterNodeUsageMetrics = Message<"qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics"> & { + /** + * Unique identifier of the node. + * + * @generated from field: string node_id = 1; + */ + nodeId: string; + + /** + * Timeseries of CPU usage for the node. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric cpu = 2; + */ + cpu: Metric[]; + + /** + * Timeseries of RAM usage for the node. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram = 3; + */ + ram: Metric[]; + + /** + * Timeseries of RAM cache usage for the node. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram_cache = 4; + */ + ramCache: Metric[]; + + /** + * Timeseries of RSS memory usage for the node. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram_rss = 5; + */ + ramRss: Metric[]; + + /** + * Timeseries of RSS memory usage by the Qdrant database for the node. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric ram_qdrant_rss = 6; + */ + ramQdrantRss: Metric[]; + + /** + * Timeseries of disk usage for the node. + * + * @generated from field: repeated qdrant.cloud.monitoring.v1.Metric disk = 7; + */ + disk: Metric[]; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics. + * Use `create(ClusterNodeUsageMetricsSchema)` to create a new message. + */ +export declare const ClusterNodeUsageMetricsSchema: GenMessage; + +/** + * A single metric data point. + * + * @generated from message qdrant.cloud.monitoring.v1.Metric + */ +export declare type Metric = Message<"qdrant.cloud.monitoring.v1.Metric"> & { + /** + * Timestamp of the data point. + * + * @generated from field: google.protobuf.Timestamp timestamp = 1; + */ + timestamp?: Timestamp; + + /** + * Numerical value of the metric at the given timestamp. + * + * @generated from field: double value = 2; + */ + value: number; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.Metric. + * Use `create(MetricSchema)` to create a new message. + */ +export declare const MetricSchema: GenMessage; + +/** + * LogEntry represents a single log line. + * + * @generated from message qdrant.cloud.monitoring.v1.LogEntry + */ +export declare type LogEntry = Message<"qdrant.cloud.monitoring.v1.LogEntry"> & { + /** + * The timestamp indicating when the log entry was recorded. + * + * @generated from field: google.protobuf.Timestamp timestamp = 1; + */ + timestamp?: Timestamp; + + /** + * The content of the log message. + * + * @generated from field: string message = 2; + */ + message: string; +}; + +/** + * Describes the message qdrant.cloud.monitoring.v1.LogEntry. + * Use `create(LogEntrySchema)` to create a new message. + */ +export declare const LogEntrySchema: GenMessage; + +/** + * Aggregator defines how metrics should be aggregated over time. + * + * @generated from enum qdrant.cloud.monitoring.v1.Aggregator + */ +export enum Aggregator { + /** + * Unspecified aggregation function. + * + * @generated from enum value: AGGREGATOR_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * SUM aggregation function. + * + * @generated from enum value: AGGREGATOR_SUM = 1; + */ + SUM = 1, + + /** + * AVG aggregation function. + * + * @generated from enum value: AGGREGATOR_AVG = 2; + */ + AVG = 2, + + /** + * MAX aggregation function. + * + * @generated from enum value: AGGREGATOR_MAX = 3; + */ + MAX = 3, + + /** + * MIN aggregation function. + * + * @generated from enum value: AGGREGATOR_MIN = 4; + */ + MIN = 4, +} + +/** + * Describes the enum qdrant.cloud.monitoring.v1.Aggregator. + */ +export declare const AggregatorSchema: GenEnum; + +/** + * MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. + * + * @generated from service qdrant.cloud.monitoring.v1.MonitoringService + */ +export declare const MonitoringService: GenService<{ + /** + * Get summary metrics of a cluster in the account identified by the given ID. + * Required permissions: + * - read:clusters + * + * @generated from rpc qdrant.cloud.monitoring.v1.MonitoringService.GetClusterSummaryMetrics + */ + getClusterSummaryMetrics: { + methodKind: "unary"; + input: typeof GetClusterSummaryMetricsRequestSchema; + output: typeof GetClusterSummaryMetricsResponseSchema; + }, + /** + * Get detailed usage metrics (as timeseries) of a cluster in the account identified by the given ID. + * Required permissions: + * - read:clusters + * + * @generated from rpc qdrant.cloud.monitoring.v1.MonitoringService.GetClusterUsageMetrics + */ + getClusterUsageMetrics: { + methodKind: "unary"; + input: typeof GetClusterUsageMetricsRequestSchema; + output: typeof GetClusterUsageMetricsResponseSchema; + }, + /** + * Get the logs of a cluster in the account identified by the given ID. + * Required permissions: + * - read:clusters + * + * @generated from rpc qdrant.cloud.monitoring.v1.MonitoringService.GetClusterLogs + */ + getClusterLogs: { + methodKind: "unary"; + input: typeof GetClusterLogsRequestSchema; + output: typeof GetClusterLogsResponseSchema; + }, + /** + * Get the events of a cluster in the account identified by the given ID. + * This method is currently available only for clusters running in hybrid cloud environments. + * Required permissions: + * - read:clusters + * + * @generated from rpc qdrant.cloud.monitoring.v1.MonitoringService.GetClusterEvents + */ + getClusterEvents: { + methodKind: "unary"; + input: typeof GetClusterEventsRequestSchema; + output: typeof GetClusterEventsResponseSchema; + }, +}>; + diff --git a/gen/typescript/qdrant/cloud/monitoring/v1/monitoring_pb.js b/gen/typescript/qdrant/cloud/monitoring/v1/monitoring_pb.js new file mode 100644 index 00000000..3bf20bf7 --- /dev/null +++ b/gen/typescript/qdrant/cloud/monitoring/v1/monitoring_pb.js @@ -0,0 +1,143 @@ +// @generated by protoc-gen-es v2.2.3 with parameter "target=js+dts,import_extension=js" +// @generated from file qdrant/cloud/monitoring/v1/monitoring.proto (package qdrant.cloud.monitoring.v1, syntax proto3) +/* eslint-disable */ + +import { enumDesc, fileDesc, messageDesc, serviceDesc, tsEnum } from "@bufbuild/protobuf/codegenv1"; +import { file_buf_validate_validate } from "../../../../buf/validate/validate_pb.js"; +import { file_google_api_annotations } from "../../../../google/api/annotations_pb.js"; +import { file_google_protobuf_duration, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt"; +import { file_qdrant_cloud_common_v1_common } from "../../common/v1/common_pb.js"; + +/** + * Describes the file qdrant/cloud/monitoring/v1/monitoring.proto. + */ +export const file_qdrant_cloud_monitoring_v1_monitoring = /*@__PURE__*/ + fileDesc("CitxZHJhbnQvY2xvdWQvbW9uaXRvcmluZy92MS9tb25pdG9yaW5nLnByb3RvEhpxZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MSJdCh9HZXRDbHVzdGVyU3VtbWFyeU1ldHJpY3NSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhwKCmNsdXN0ZXJfaWQYAiABKAlCCLpIBXIDsAEBImEKIEdldENsdXN0ZXJTdW1tYXJ5TWV0cmljc1Jlc3BvbnNlEj0KBW5vZGVzGAEgAygLMi4ucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuQ2x1c3Rlck5vZGVNZXRyaWNzIp8CCh1HZXRDbHVzdGVyVXNhZ2VNZXRyaWNzUmVxdWVzdBIcCgphY2NvdW50X2lkGAEgASgJQgi6SAVyA7ABARIcCgpjbHVzdGVyX2lkGAIgASgJQgi6SAVyA7ABARIuCgVzaW5jZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgV1bnRpbBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI/CgphZ2dyZWdhdG9yGAUgASgOMiYucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuQWdncmVnYXRvckgCiAEBQggKBl9zaW5jZUIICgZfdW50aWxCDQoLX2FnZ3JlZ2F0b3IihgQKHkdldENsdXN0ZXJVc2FnZU1ldHJpY3NSZXNwb25zZRIvCgNjcHUYASADKAsyIi5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5NZXRyaWMSLwoDcmFtGAIgAygLMiIucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuTWV0cmljEjUKCXJhbV9jYWNoZRgDIAMoCzIiLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLk1ldHJpYxIzCgdyYW1fcnNzGAQgAygLMiIucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuTWV0cmljEjoKDnJhbV9xZHJhbnRfcnNzGAUgAygLMiIucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuTWV0cmljEjAKBGRpc2sYBiADKAsyIi5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5NZXRyaWMSLwoDcnBzGAcgAygLMiIucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuTWV0cmljEjMKB2xhdGVuY3kYCCADKAsyIi5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5NZXRyaWMSQgoFbm9kZXMYCSADKAsyMy5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5DbHVzdGVyTm9kZVVzYWdlTWV0cmljcyLHAQoVR2V0Q2x1c3RlckxvZ3NSZXF1ZXN0EhwKCmFjY291bnRfaWQYASABKAlCCLpIBXIDsAEBEhwKCmNsdXN0ZXJfaWQYAiABKAlCCLpIBXIDsAEBEi4KBXNpbmNlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEi4KBXVudGlsGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQggKBl9zaW5jZUIICgZfdW50aWwiTQoWR2V0Q2x1c3RlckxvZ3NSZXNwb25zZRIzCgVpdGVtcxgBIAMoCzIkLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLkxvZ0VudHJ5IskBChdHZXRDbHVzdGVyRXZlbnRzUmVxdWVzdBIcCgphY2NvdW50X2lkGAEgASgJQgi6SAVyA7ABARIcCgpjbHVzdGVyX2lkGAIgASgJQgi6SAVyA7ABARIuCgVzaW5jZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgV1bnRpbBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBAUIICgZfc2luY2VCCAoGX3VudGlsIk8KGEdldENsdXN0ZXJFdmVudHNSZXNwb25zZRIzCgVpdGVtcxgBIAMoCzIkLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLkxvZ0VudHJ5IrsDChJDbHVzdGVyTm9kZU1ldHJpY3MSDwoHbm9kZV9pZBgBIAEoCRI+CgNjcHUYAiABKAsyMS5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5DbHVzdGVyTWV0cmljT3ZlcnZpZXcSPgoDcmFtGAMgASgLMjEucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuQ2x1c3Rlck1ldHJpY092ZXJ2aWV3EkQKCXJhbV9jYWNoZRgEIAEoCzIxLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLkNsdXN0ZXJNZXRyaWNPdmVydmlldxJCCgdyYW1fcnNzGAUgASgLMjEucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuQ2x1c3Rlck1ldHJpY092ZXJ2aWV3EkkKDnJhbV9xZHJhbnRfcnNzGAYgASgLMjEucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuQ2x1c3Rlck1ldHJpY092ZXJ2aWV3Ej8KBGRpc2sYByABKAsyMS5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5DbHVzdGVyTWV0cmljT3ZlcnZpZXciiwEKFUNsdXN0ZXJNZXRyaWNPdmVydmlldxI4CgNhdmcYASADKAsyKy5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5JbnRlcnZhbEF2ZXJhZ2USOAoFdG90YWwYAiABKAsyKS5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5SZXNvdXJjZVZhbHVlIk0KD0ludGVydmFsQXZlcmFnZRIrCghpbnRlcnZhbBgBIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhINCgV2YWx1ZRgCIAEoASIsCg1SZXNvdXJjZVZhbHVlEg0KBXZhbHVlGAEgASgBEgwKBHVuaXQYAiABKAki5gIKF0NsdXN0ZXJOb2RlVXNhZ2VNZXRyaWNzEg8KB25vZGVfaWQYASABKAkSLwoDY3B1GAIgAygLMiIucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuTWV0cmljEi8KA3JhbRgDIAMoCzIiLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLk1ldHJpYxI1CglyYW1fY2FjaGUYBCADKAsyIi5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5NZXRyaWMSMwoHcmFtX3JzcxgFIAMoCzIiLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLk1ldHJpYxI6Cg5yYW1fcWRyYW50X3JzcxgGIAMoCzIiLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLk1ldHJpYxIwCgRkaXNrGAcgAygLMiIucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuTWV0cmljIkYKBk1ldHJpYxItCgl0aW1lc3RhbXAYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXZhbHVlGAIgASgBIkoKCExvZ0VudHJ5Ei0KCXRpbWVzdGFtcBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHbWVzc2FnZRgCIAEoCSp4CgpBZ2dyZWdhdG9yEhoKFkFHR1JFR0FUT1JfVU5TUEVDSUZJRUQQABISCg5BR0dSRUdBVE9SX1NVTRABEhIKDkFHR1JFR0FUT1JfQVZHEAISEgoOQUdHUkVHQVRPUl9NQVgQAxISCg5BR0dSRUdBVE9SX01JThAEMsEHChFNb25pdG9yaW5nU2VydmljZRL9AQoYR2V0Q2x1c3RlclN1bW1hcnlNZXRyaWNzEjsucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuR2V0Q2x1c3RlclN1bW1hcnlNZXRyaWNzUmVxdWVzdBo8LnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLkdldENsdXN0ZXJTdW1tYXJ5TWV0cmljc1Jlc3BvbnNlImaKtRgNcmVhZDpjbHVzdGVyc4LT5JMCTxJNL2FwaS9tb25pdG9yaW5nL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9jbHVzdGVyL3tjbHVzdGVyX2lkfS9zdW1tYXJ5LW1ldHJpY3MS9QEKFkdldENsdXN0ZXJVc2FnZU1ldHJpY3MSOS5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5HZXRDbHVzdGVyVXNhZ2VNZXRyaWNzUmVxdWVzdBo6LnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxLkdldENsdXN0ZXJVc2FnZU1ldHJpY3NSZXNwb25zZSJkirUYDXJlYWQ6Y2x1c3RlcnOC0+STAk0SSy9hcGkvbW9uaXRvcmluZy92MS9hY2NvdW50cy97YWNjb3VudF9pZH0vY2x1c3Rlci97Y2x1c3Rlcl9pZH0vdXNhZ2UtbWV0cmljcxLUAQoOR2V0Q2x1c3RlckxvZ3MSMS5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5HZXRDbHVzdGVyTG9nc1JlcXVlc3QaMi5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5HZXRDbHVzdGVyTG9nc1Jlc3BvbnNlIluKtRgNcmVhZDpjbHVzdGVyc4LT5JMCRBJCL2FwaS9tb25pdG9yaW5nL3YxL2FjY291bnRzL3thY2NvdW50X2lkfS9jbHVzdGVyL3tjbHVzdGVyX2lkfS9sb2dzEtwBChBHZXRDbHVzdGVyRXZlbnRzEjMucWRyYW50LmNsb3VkLm1vbml0b3JpbmcudjEuR2V0Q2x1c3RlckV2ZW50c1JlcXVlc3QaNC5xZHJhbnQuY2xvdWQubW9uaXRvcmluZy52MS5HZXRDbHVzdGVyRXZlbnRzUmVzcG9uc2UiXYq1GA1yZWFkOmNsdXN0ZXJzgtPkkwJGEkQvYXBpL21vbml0b3JpbmcvdjEvYWNjb3VudHMve2FjY291bnRfaWR9L2NsdXN0ZXIve2NsdXN0ZXJfaWR9L2V2ZW50c0KWAgoeY29tLnFkcmFudC5jbG91ZC5tb25pdG9yaW5nLnYxQg9Nb25pdG9yaW5nUHJvdG9QAVpYZ2l0aHViLmNvbS9xZHJhbnQvcWRyYW50LWNsb3VkLXB1YmxpYy1hcGkvZ2VuL2dvL3FkcmFudC9jbG91ZC9tb25pdG9yaW5nL3YxO21vbml0b3Jpbmd2MaICA1FDTaoCGlFkcmFudC5DbG91ZC5Nb25pdG9yaW5nLlYxygIaUWRyYW50XENsb3VkXE1vbml0b3JpbmdcVjHiAiZRZHJhbnRcQ2xvdWRcTW9uaXRvcmluZ1xWMVxHUEJNZXRhZGF0YeoCHVFkcmFudDo6Q2xvdWQ6Ok1vbml0b3Jpbmc6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_google_api_annotations, file_google_protobuf_duration, file_google_protobuf_timestamp, file_qdrant_cloud_common_v1_common]); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsRequest. + * Use `create(GetClusterSummaryMetricsRequestSchema)` to create a new message. + */ +export const GetClusterSummaryMetricsRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 0); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterSummaryMetricsResponse. + * Use `create(GetClusterSummaryMetricsResponseSchema)` to create a new message. + */ +export const GetClusterSummaryMetricsResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 1); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterUsageMetricsRequest. + * Use `create(GetClusterUsageMetricsRequestSchema)` to create a new message. + */ +export const GetClusterUsageMetricsRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 2); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterUsageMetricsResponse. + * Use `create(GetClusterUsageMetricsResponseSchema)` to create a new message. + */ +export const GetClusterUsageMetricsResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 3); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterLogsRequest. + * Use `create(GetClusterLogsRequestSchema)` to create a new message. + */ +export const GetClusterLogsRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 4); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterLogsResponse. + * Use `create(GetClusterLogsResponseSchema)` to create a new message. + */ +export const GetClusterLogsResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 5); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterEventsRequest. + * Use `create(GetClusterEventsRequestSchema)` to create a new message. + */ +export const GetClusterEventsRequestSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 6); + +/** + * Describes the message qdrant.cloud.monitoring.v1.GetClusterEventsResponse. + * Use `create(GetClusterEventsResponseSchema)` to create a new message. + */ +export const GetClusterEventsResponseSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 7); + +/** + * Describes the message qdrant.cloud.monitoring.v1.ClusterNodeMetrics. + * Use `create(ClusterNodeMetricsSchema)` to create a new message. + */ +export const ClusterNodeMetricsSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 8); + +/** + * Describes the message qdrant.cloud.monitoring.v1.ClusterMetricOverview. + * Use `create(ClusterMetricOverviewSchema)` to create a new message. + */ +export const ClusterMetricOverviewSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 9); + +/** + * Describes the message qdrant.cloud.monitoring.v1.IntervalAverage. + * Use `create(IntervalAverageSchema)` to create a new message. + */ +export const IntervalAverageSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 10); + +/** + * Describes the message qdrant.cloud.monitoring.v1.ResourceValue. + * Use `create(ResourceValueSchema)` to create a new message. + */ +export const ResourceValueSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 11); + +/** + * Describes the message qdrant.cloud.monitoring.v1.ClusterNodeUsageMetrics. + * Use `create(ClusterNodeUsageMetricsSchema)` to create a new message. + */ +export const ClusterNodeUsageMetricsSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 12); + +/** + * Describes the message qdrant.cloud.monitoring.v1.Metric. + * Use `create(MetricSchema)` to create a new message. + */ +export const MetricSchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 13); + +/** + * Describes the message qdrant.cloud.monitoring.v1.LogEntry. + * Use `create(LogEntrySchema)` to create a new message. + */ +export const LogEntrySchema = /*@__PURE__*/ + messageDesc(file_qdrant_cloud_monitoring_v1_monitoring, 14); + +/** + * Describes the enum qdrant.cloud.monitoring.v1.Aggregator. + */ +export const AggregatorSchema = /*@__PURE__*/ + enumDesc(file_qdrant_cloud_monitoring_v1_monitoring, 0); + +/** + * Aggregator defines how metrics should be aggregated over time. + * + * @generated from enum qdrant.cloud.monitoring.v1.Aggregator + */ +export const Aggregator = /*@__PURE__*/ + tsEnum(AggregatorSchema); + +/** + * MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. + * + * @generated from service qdrant.cloud.monitoring.v1.MonitoringService + */ +export const MonitoringService = /*@__PURE__*/ + serviceDesc(file_qdrant_cloud_monitoring_v1_monitoring, 0); + diff --git a/proto/qdrant/cloud/monitoring/v1/monitoring.proto b/proto/qdrant/cloud/monitoring/v1/monitoring.proto new file mode 100644 index 00000000..760faba7 --- /dev/null +++ b/proto/qdrant/cloud/monitoring/v1/monitoring.proto @@ -0,0 +1,246 @@ +syntax = "proto3"; + +package qdrant.cloud.monitoring.v1; + +import "buf/validate/validate.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "qdrant/cloud/common/v1/common.proto"; + +// MonitoringService provides access to monitoring data such as cluster metrics, logs, and events. +service MonitoringService { + // Get summary metrics of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + rpc GetClusterSummaryMetrics(GetClusterSummaryMetricsRequest) returns (GetClusterSummaryMetricsResponse) { + // permissions + option (common.v1.permissions) = "read:clusters"; + // gRPC Gateway REST call + option (google.api.http) = {get: "/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/summary-metrics"}; + } + // Get detailed usage metrics (as timeseries) of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + rpc GetClusterUsageMetrics(GetClusterUsageMetricsRequest) returns (GetClusterUsageMetricsResponse) { + // permissions + option (common.v1.permissions) = "read:clusters"; + // gRPC Gateway REST call + option (google.api.http) = {get: "/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/usage-metrics"}; + } + // Get the logs of a cluster in the account identified by the given ID. + // Required permissions: + // - read:clusters + rpc GetClusterLogs(GetClusterLogsRequest) returns (GetClusterLogsResponse) { + // permissions + option (common.v1.permissions) = "read:clusters"; + // gRPC Gateway REST call + option (google.api.http) = {get: "/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/logs"}; + } + // Get the events of a cluster in the account identified by the given ID. + // This method is currently available only for clusters running in hybrid cloud environments. + // Required permissions: + // - read:clusters + rpc GetClusterEvents(GetClusterEventsRequest) returns (GetClusterEventsResponse) { + // permissions + option (common.v1.permissions) = "read:clusters"; + // gRPC Gateway REST call + option (google.api.http) = {get: "/api/monitoring/v1/accounts/{account_id}/cluster/{cluster_id}/events"}; + } +} + +// GetClusterSummaryMetricsRequest is the request for the GetClusterSummaryMetrics function +message GetClusterSummaryMetricsRequest { + // The identifier of the account (in GUID format). + // This is a required field. + string account_id = 1 [(buf.validate.field).string = {uuid: true}]; + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + string cluster_id = 2 [(buf.validate.field).string = {uuid: true}]; +} + +// GetClusterSummaryMetricsResponse is the response from the GetClusterSummaryMetrics function +message GetClusterSummaryMetricsResponse { + // List of metrics aggregated per node in the cluster. + repeated ClusterNodeMetrics nodes = 1; +} + +// GetClusterUsageMetricsRequest is the request for the GetClusterUsageMetrics function +message GetClusterUsageMetricsRequest { + // The identifier of the account (in GUID format). + // This is a required field. + string account_id = 1 [(buf.validate.field).string = {uuid: true}]; + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + string cluster_id = 2 [(buf.validate.field).string = {uuid: true}]; + // Optional start time for the metrics query. + // If omitted, defaults to 1 hour ago. + optional google.protobuf.Timestamp since = 3; + // Optional end time for the metrics query. + // If omitted, defaults to current time. + optional google.protobuf.Timestamp until = 4; + // Aggregation function to apply to the time series data. + // If omitted, defaults to SUM. + optional Aggregator aggregator = 5; +} + +// GetClusterUsageMetricsResponse is the response from the GetClusterUsageMetrics function +message GetClusterUsageMetricsResponse { + // Timeseries of overall CPU usage across the cluster. + repeated Metric cpu = 1; + // Timeseries of overall RAM usage across the cluster. + repeated Metric ram = 2; + // Timeseries of RAM used for cache across the cluster. + repeated Metric ram_cache = 3; + // Timeseries of RSS memory used across the cluster. + repeated Metric ram_rss = 4; + // Timeseries of RSS memory used by the Qdrant database across the cluster. + repeated Metric ram_qdrant_rss = 5; + // Timeseries of disk usage across the cluster. + repeated Metric disk = 6; + // Timeseries of requests per second (RPS) across the cluster. + repeated Metric rps = 7; + // Timeseries of request latency across the cluster. + repeated Metric latency = 8; + // Per-node metrics. + repeated ClusterNodeUsageMetrics nodes = 9; +} + +// GetClusterLogsRequest is the request for the GetClusterLogs function +message GetClusterLogsRequest { + // The identifier of the account (in GUID format). + // This is a required field. + string account_id = 1 [(buf.validate.field).string = {uuid: true}]; + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + string cluster_id = 2 [(buf.validate.field).string = {uuid: true}]; + // Optional start time for the logs query. + // If omitted, defaults to 3 days ago. + optional google.protobuf.Timestamp since = 3; + // Optional end time for the logs query. + // If omitted, defaults to current time. + optional google.protobuf.Timestamp until = 4; +} + +// GetClusterLogsResponse is the response from the GetClusterLogs function +message GetClusterLogsResponse { + // A list of log entries from the cluster. + repeated LogEntry items = 1; +} + +// GetClusterEventsRequest is the request for the GetClusterEvents function +message GetClusterEventsRequest { + // The identifier of the account (in GUID format). + // This is a required field. + string account_id = 1 [(buf.validate.field).string = {uuid: true}]; + // The identifier for the cluster (in GUID format). + // This cluster should be part of the provided account. + // This is a required field. + string cluster_id = 2 [(buf.validate.field).string = {uuid: true}]; + // Optional start time for the events query. + // If omitted, defaults to 7 days ago. + optional google.protobuf.Timestamp since = 3; + // Optional end time for the events query. + // If omitted, defaults to current time. + optional google.protobuf.Timestamp until = 4; +} + +// GetClusterEventsRequest is the response from the GetClusterEvents function +message GetClusterEventsResponse { + // A list of entries representing events that have happened in the cluster. + repeated LogEntry items = 1; +} + +// ClusterNodeMetrics contains metric overview for a node. +message ClusterNodeMetrics { + // Unique identifier of the node. + string node_id = 1; + // Overview of CPU usage. + ClusterMetricOverview cpu = 2; + // Overview of RAM usage. + ClusterMetricOverview ram = 3; + // Overview of RAM cache usage. + ClusterMetricOverview ram_cache = 4; + // Overview of RSS memory usage. + ClusterMetricOverview ram_rss = 5; + // Overview of RSS memory usage by the Qdrant database. + ClusterMetricOverview ram_qdrant_rss = 6; + // Overview of disk usage. + ClusterMetricOverview disk = 7; +} + +// ClusterMetricOverview contains both the average values of a metric over +// predefined intervals, and the total available value of that resource. +message ClusterMetricOverview { + // Average metric values calculated over various time intervals. + repeated IntervalAverage avg = 1; + // Total available value of the resource on the node. + ResourceValue total = 2; +} + +// IntervalAverage represents the average value of a metric over a specific time interval. +message IntervalAverage { + // The duration of the interval. + google.protobuf.Duration interval = 1; + // Average value of the metric during the specified interval. + double value = 2; +} + +// ResourceValue represents the total value of a resource along with its unit. +message ResourceValue { + // Value of the resource, e.g., 0.5. + double value = 1; + // Unit of the resource value, e.g., "vcpu/core". + string unit = 2; +} + +// ClusterNodeUsageMetrics defines per-node usage metrics. +message ClusterNodeUsageMetrics { + // Unique identifier of the node. + string node_id = 1; + // Timeseries of CPU usage for the node. + repeated Metric cpu = 2; + // Timeseries of RAM usage for the node. + repeated Metric ram = 3; + // Timeseries of RAM cache usage for the node. + repeated Metric ram_cache = 4; + // Timeseries of RSS memory usage for the node. + repeated Metric ram_rss = 5; + // Timeseries of RSS memory usage by the Qdrant database for the node. + repeated Metric ram_qdrant_rss = 6; + // Timeseries of disk usage for the node. + repeated Metric disk = 7; +} + +// A single metric data point. +message Metric { + // Timestamp of the data point. + google.protobuf.Timestamp timestamp = 1; + // Numerical value of the metric at the given timestamp. + double value = 2; +} + +// LogEntry represents a single log line. +message LogEntry { + // The timestamp indicating when the log entry was recorded. + google.protobuf.Timestamp timestamp = 1; + // The content of the log message. + string message = 2; +} + +// Aggregator defines how metrics should be aggregated over time. +enum Aggregator { + // Unspecified aggregation function. + AGGREGATOR_UNSPECIFIED = 0; + // SUM aggregation function. + AGGREGATOR_SUM = 1; + // AVG aggregation function. + AGGREGATOR_AVG = 2; + // MAX aggregation function. + AGGREGATOR_MAX = 3; + // MIN aggregation function. + AGGREGATOR_MIN = 4; +}