aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/monitoring
diff options
context:
space:
mode:
authorGravatar Jakob Buchgraber <buchgr@google.com>2017-05-30 15:49:37 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-05-30 15:59:48 +0200
commit84a8e95910f069dd03a19b0fc634f95bb0beac95 (patch)
treed3a5cd8e259799e36834b247194c2d1aa3163e16 /third_party/googleapis/google/monitoring
parentc7696b47a4a12b1e56e41246770cbd44ad1c9c3e (diff)
Introduce third_party/googleapis
Add `https://github.com/googleapis/googleapis` as a third_party dependency at commit `001f6702ac4cd72194a5120ff978fcfa740783d6`. These protos are required for the upcoming open sourcing of the BES protocol code. Additionally, add (java_)proto_library() rules for the protobufs required by the BES protocol. Change-Id: Ie78a9941a62f2085a58ad859c91161885e6f390d
Diffstat (limited to 'third_party/googleapis/google/monitoring')
-rw-r--r--third_party/googleapis/google/monitoring/monitoring.yaml83
-rw-r--r--third_party/googleapis/google/monitoring/v3/common.proto323
-rw-r--r--third_party/googleapis/google/monitoring/v3/group.proto74
-rw-r--r--third_party/googleapis/google/monitoring/v3/group_service.proto206
-rw-r--r--third_party/googleapis/google/monitoring/v3/metric.proto87
-rw-r--r--third_party/googleapis/google/monitoring/v3/metric_service.proto286
-rw-r--r--third_party/googleapis/google/monitoring/v3/monitoring_gapic.yaml371
7 files changed, 1430 insertions, 0 deletions
diff --git a/third_party/googleapis/google/monitoring/monitoring.yaml b/third_party/googleapis/google/monitoring/monitoring.yaml
new file mode 100644
index 0000000000..44bd40b1af
--- /dev/null
+++ b/third_party/googleapis/google/monitoring/monitoring.yaml
@@ -0,0 +1,83 @@
+type: google.api.Service
+config_version: 2
+name: monitoring.googleapis.com
+title: Stackdriver Monitoring API
+
+apis:
+- name: google.monitoring.v3.GroupService
+- name: google.monitoring.v3.MetricService
+
+documentation:
+ summary: >
+ Manages your Stackdriver Monitoring data and configurations.
+ Most projects must be associated with a Stackdriver account, with a few
+ exceptions as noted on the individual method pages.
+ rules:
+ - selector: google.monitoring.v3.MetricService.ListMonitoredResourceDescriptors
+ description: >
+ Lists monitored resource descriptors that match a filter.
+ This method does not require a Stackdriver account.
+ - selector: google.monitoring.v3.MetricService.GetMonitoredResourceDescriptor
+ description: >
+ Gets a single monitored resource descriptor.
+ This method does not require a Stackdriver account.
+ - selector: google.monitoring.v3.MetricService.ListMetricDescriptors
+ description: >
+ Lists metric descriptors that match a filter.
+ This method does not require a Stackdriver account.
+ - selector: google.monitoring.v3.MetricService.GetMetricDescriptor
+ description: >
+ Gets a single metric descriptor.
+ This method does not require a Stackdriver account.
+ - selector: google.monitoring.v3.MetricService.ListTimeSeries
+ description: >
+ Lists time series that match a filter.
+ This method does not require a Stackdriver account.
+
+authentication:
+ rules:
+ # Query functions that are also required by publish-only users.
+ - selector: |-
+ google.monitoring.v3.MetricService.ListMonitoredResourceDescriptors,
+ google.monitoring.v3.MetricService.GetMonitoredResourceDescriptor,
+ google.monitoring.v3.MetricService.ListMetricDescriptors,
+ google.monitoring.v3.MetricService.GetMetricDescriptor
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/monitoring,
+ https://www.googleapis.com/auth/monitoring.read,
+ https://www.googleapis.com/auth/monitoring.write
+
+ # Write operations that are allowed for publish-only users.
+ - selector: |-
+ google.monitoring.v3.MetricService.CreateMetricDescriptor,
+ google.monitoring.v3.MetricService.CreateTimeSeries
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/monitoring,
+ https://www.googleapis.com/auth/monitoring.write
+
+ # Query operations that are *not* permitted by publish-only users.
+ - selector: |-
+ google.monitoring.v3.GroupService.ListGroups,
+ google.monitoring.v3.GroupService.GetGroup,
+ google.monitoring.v3.GroupService.ListGroupMembers,
+ google.monitoring.v3.MetricService.ListTimeSeries
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/monitoring,
+ https://www.googleapis.com/auth/monitoring.read
+
+ # Operations that require full access.
+ - selector: |-
+ google.monitoring.v3.GroupService.CreateGroup,
+ google.monitoring.v3.GroupService.UpdateGroup,
+ google.monitoring.v3.GroupService.DeleteGroup,
+ google.monitoring.v3.MetricService.DeleteMetricDescriptor
+ oauth:
+ canonical_scopes: |-
+ https://www.googleapis.com/auth/cloud-platform,
+ https://www.googleapis.com/auth/monitoring
diff --git a/third_party/googleapis/google/monitoring/v3/common.proto b/third_party/googleapis/google/monitoring/v3/common.proto
new file mode 100644
index 0000000000..c8f701eeaa
--- /dev/null
+++ b/third_party/googleapis/google/monitoring/v3/common.proto
@@ -0,0 +1,323 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.monitoring.v3;
+
+import "google/api/distribution.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.V3";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/v3;monitoring";
+option java_multiple_files = true;
+option java_outer_classname = "CommonProto";
+option java_package = "com.google.monitoring.v3";
+
+
+// A single strongly-typed value.
+message TypedValue {
+ // The typed value field.
+ oneof value {
+ // A Boolean value: `true` or `false`.
+ bool bool_value = 1;
+
+ // A 64-bit integer. Its range is approximately &plusmn;9.2x10<sup>18</sup>.
+ int64 int64_value = 2;
+
+ // A 64-bit double-precision floating-point number. Its magnitude
+ // is approximately &plusmn;10<sup>&plusmn;300</sup> and it has 16
+ // significant digits of precision.
+ double double_value = 3;
+
+ // A variable-length string value.
+ string string_value = 4;
+
+ // A distribution value.
+ google.api.Distribution distribution_value = 5;
+ }
+}
+
+// A time interval extending just after a start time through an end time.
+// If the start time is the same as the end time, then the interval
+// represents a single point in time.
+message TimeInterval {
+ // Required. The end of the time interval.
+ google.protobuf.Timestamp end_time = 2;
+
+ // Optional. The beginning of the time interval. The default value
+ // for the start time is the end time. The start time must not be
+ // later than the end time.
+ google.protobuf.Timestamp start_time = 1;
+}
+
+// Describes how to combine multiple time series to provide different views of
+// the data. Aggregation consists of an alignment step on individual time
+// series (`per_series_aligner`) followed by an optional reduction of the data
+// across different time series (`cross_series_reducer`). For more details, see
+// [Aggregation](/monitoring/api/learn_more#aggregation).
+message Aggregation {
+ // The Aligner describes how to bring the data points in a single
+ // time series into temporal alignment.
+ enum Aligner {
+ // No alignment. Raw data is returned. Not valid if cross-time
+ // series reduction is requested. The value type of the result is
+ // the same as the value type of the input.
+ ALIGN_NONE = 0;
+
+ // Align and convert to delta metric type. This alignment is valid
+ // for cumulative metrics and delta metrics. Aligning an existing
+ // delta metric to a delta metric requires that the alignment
+ // period be increased. The value type of the result is the same
+ // as the value type of the input.
+ ALIGN_DELTA = 1;
+
+ // Align and convert to a rate. This alignment is valid for
+ // cumulative metrics and delta metrics with numeric values. The output is a
+ // gauge metric with value type
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_RATE = 2;
+
+ // Align by interpolating between adjacent points around the
+ // period boundary. This alignment is valid for gauge
+ // metrics with numeric values. The value type of the result is the same
+ // as the value type of the input.
+ ALIGN_INTERPOLATE = 3;
+
+ // Align by shifting the oldest data point before the period
+ // boundary to the boundary. This alignment is valid for gauge
+ // metrics. The value type of the result is the same as the
+ // value type of the input.
+ ALIGN_NEXT_OLDER = 4;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the minimum of all data points in the
+ // period. This alignment is valid for gauge and delta metrics with numeric
+ // values. The value type of the result is the same as the value
+ // type of the input.
+ ALIGN_MIN = 10;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the maximum of all data points in the
+ // period. This alignment is valid for gauge and delta metrics with numeric
+ // values. The value type of the result is the same as the value
+ // type of the input.
+ ALIGN_MAX = 11;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the average or arithmetic mean of all
+ // data points in the period. This alignment is valid for gauge and delta
+ // metrics with numeric values. The value type of the output is
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_MEAN = 12;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the count of all data points in the
+ // period. This alignment is valid for gauge and delta metrics with numeric
+ // or Boolean values. The value type of the output is
+ // [INT64][google.api.MetricDescriptor.ValueType.INT64].
+ ALIGN_COUNT = 13;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the sum of all data points in the
+ // period. This alignment is valid for gauge and delta metrics with numeric
+ // and distribution values. The value type of the output is the
+ // same as the value type of the input.
+ ALIGN_SUM = 14;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the standard deviation of all data
+ // points in the period. This alignment is valid for gauge and delta metrics
+ // with numeric values. The value type of the output is
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_STDDEV = 15;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the count of True-valued data points in the
+ // period. This alignment is valid for gauge metrics with
+ // Boolean values. The value type of the output is
+ // [INT64][google.api.MetricDescriptor.ValueType.INT64].
+ ALIGN_COUNT_TRUE = 16;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the fraction of True-valued data points in the
+ // period. This alignment is valid for gauge metrics with Boolean values.
+ // The output value is in the range [0, 1] and has value type
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_FRACTION_TRUE = 17;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the 99th percentile of all data
+ // points in the period. This alignment is valid for gauge and delta metrics
+ // with distribution values. The output is a gauge metric with value type
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_PERCENTILE_99 = 18;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the 95th percentile of all data
+ // points in the period. This alignment is valid for gauge and delta metrics
+ // with distribution values. The output is a gauge metric with value type
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_PERCENTILE_95 = 19;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the 50th percentile of all data
+ // points in the period. This alignment is valid for gauge and delta metrics
+ // with distribution values. The output is a gauge metric with value type
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_PERCENTILE_50 = 20;
+
+ // Align time series via aggregation. The resulting data point in
+ // the alignment period is the 5th percentile of all data
+ // points in the period. This alignment is valid for gauge and delta metrics
+ // with distribution values. The output is a gauge metric with value type
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ ALIGN_PERCENTILE_05 = 21;
+ }
+
+ // A Reducer describes how to aggregate data points from multiple
+ // time series into a single time series.
+ enum Reducer {
+ // No cross-time series reduction. The output of the aligner is
+ // returned.
+ REDUCE_NONE = 0;
+
+ // Reduce by computing the mean across time series for each
+ // alignment period. This reducer is valid for delta and
+ // gauge metrics with numeric or distribution values. The value type of the
+ // output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ REDUCE_MEAN = 1;
+
+ // Reduce by computing the minimum across time series for each
+ // alignment period. This reducer is valid for delta and
+ // gauge metrics with numeric values. The value type of the output
+ // is the same as the value type of the input.
+ REDUCE_MIN = 2;
+
+ // Reduce by computing the maximum across time series for each
+ // alignment period. This reducer is valid for delta and
+ // gauge metrics with numeric values. The value type of the output
+ // is the same as the value type of the input.
+ REDUCE_MAX = 3;
+
+ // Reduce by computing the sum across time series for each
+ // alignment period. This reducer is valid for delta and
+ // gauge metrics with numeric and distribution values. The value type of
+ // the output is the same as the value type of the input.
+ REDUCE_SUM = 4;
+
+ // Reduce by computing the standard deviation across time series
+ // for each alignment period. This reducer is valid for delta
+ // and gauge metrics with numeric or distribution values. The value type of
+ // the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ REDUCE_STDDEV = 5;
+
+ // Reduce by computing the count of data points across time series
+ // for each alignment period. This reducer is valid for delta
+ // and gauge metrics of numeric, Boolean, distribution, and string value
+ // type. The value type of the output is
+ // [INT64][google.api.MetricDescriptor.ValueType.INT64].
+ REDUCE_COUNT = 6;
+
+ // Reduce by computing the count of True-valued data points across time
+ // series for each alignment period. This reducer is valid for delta
+ // and gauge metrics of Boolean value type. The value type of
+ // the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
+ REDUCE_COUNT_TRUE = 7;
+
+ // Reduce by computing the fraction of True-valued data points across time
+ // series for each alignment period. This reducer is valid for delta
+ // and gauge metrics of Boolean value type. The output value is in the
+ // range [0, 1] and has value type
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
+ REDUCE_FRACTION_TRUE = 8;
+
+ // Reduce by computing 99th percentile of data points across time series
+ // for each alignment period. This reducer is valid for gauge and delta
+ // metrics of numeric and distribution type. The value of the output is
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
+ REDUCE_PERCENTILE_99 = 9;
+
+ // Reduce by computing 95th percentile of data points across time series
+ // for each alignment period. This reducer is valid for gauge and delta
+ // metrics of numeric and distribution type. The value of the output is
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
+ REDUCE_PERCENTILE_95 = 10;
+
+ // Reduce by computing 50th percentile of data points across time series
+ // for each alignment period. This reducer is valid for gauge and delta
+ // metrics of numeric and distribution type. The value of the output is
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
+ REDUCE_PERCENTILE_50 = 11;
+
+ // Reduce by computing 5th percentile of data points across time series
+ // for each alignment period. This reducer is valid for gauge and delta
+ // metrics of numeric and distribution type. The value of the output is
+ // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
+ REDUCE_PERCENTILE_05 = 12;
+ }
+
+ // The alignment period for per-[time series][google.monitoring.v3.TimeSeries]
+ // alignment. If present, `alignmentPeriod` must be at least 60
+ // seconds. After per-time series alignment, each time series will
+ // contain data points only on the period boundaries. If
+ // `perSeriesAligner` is not specified or equals `ALIGN_NONE`, then
+ // this field is ignored. If `perSeriesAligner` is specified and
+ // does not equal `ALIGN_NONE`, then this field must be defined;
+ // otherwise an error is returned.
+ google.protobuf.Duration alignment_period = 1;
+
+ // The approach to be used to align individual time series. Not all
+ // alignment functions may be applied to all time series, depending
+ // on the metric type and value type of the original time
+ // series. Alignment may change the metric type or the value type of
+ // the time series.
+ //
+ // Time series data must be aligned in order to perform cross-time
+ // series reduction. If `crossSeriesReducer` is specified, then
+ // `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
+ // and `alignmentPeriod` must be specified; otherwise, an error is
+ // returned.
+ Aligner per_series_aligner = 2;
+
+ // The approach to be used to combine time series. Not all reducer
+ // functions may be applied to all time series, depending on the
+ // metric type and the value type of the original time
+ // series. Reduction may change the metric type of value type of the
+ // time series.
+ //
+ // Time series data must be aligned in order to perform cross-time
+ // series reduction. If `crossSeriesReducer` is specified, then
+ // `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
+ // and `alignmentPeriod` must be specified; otherwise, an error is
+ // returned.
+ Reducer cross_series_reducer = 4;
+
+ // The set of fields to preserve when `crossSeriesReducer` is
+ // specified. The `groupByFields` determine how the time series are
+ // partitioned into subsets prior to applying the aggregation
+ // function. Each subset contains time series that have the same
+ // value for each of the grouping fields. Each individual time
+ // series is a member of exactly one subset. The
+ // `crossSeriesReducer` is applied to each subset of time series.
+ // It is not possible to reduce across different resource types, so
+ // this field implicitly contains `resource.type`. Fields not
+ // specified in `groupByFields` are aggregated away. If
+ // `groupByFields` is not specified and all the time series have
+ // the same resource type, then the time series are aggregated into
+ // a single output time series. If `crossSeriesReducer` is not
+ // defined, this field is ignored.
+ repeated string group_by_fields = 5;
+}
diff --git a/third_party/googleapis/google/monitoring/v3/group.proto b/third_party/googleapis/google/monitoring/v3/group.proto
new file mode 100644
index 0000000000..b6a6cfc45c
--- /dev/null
+++ b/third_party/googleapis/google/monitoring/v3/group.proto
@@ -0,0 +1,74 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.monitoring.v3;
+
+option csharp_namespace = "Google.Cloud.Monitoring.V3";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/v3;monitoring";
+option java_multiple_files = true;
+option java_outer_classname = "GroupProto";
+option java_package = "com.google.monitoring.v3";
+
+
+// The description of a dynamic collection of monitored resources. Each group
+// has a filter that is matched against monitored resources and their associated
+// metadata. If a group's filter matches an available monitored resource, then
+// that resource is a member of that group. Groups can contain any number of
+// monitored resources, and each monitored resource can be a member of any
+// number of groups.
+//
+// Groups can be nested in parent-child hierarchies. The `parentName` field
+// identifies an optional parent for each group. If a group has a parent, then
+// the only monitored resources available to be matched by the group's filter
+// are the resources contained in the parent group. In other words, a group
+// contains the monitored resources that match its filter and the filters of all
+// the group's ancestors. A group without a parent can contain any monitored
+// resource.
+//
+// For example, consider an infrastructure running a set of instances with two
+// user-defined tags: `"environment"` and `"role"`. A parent group has a filter,
+// `environment="production"`. A child of that parent group has a filter,
+// `role="transcoder"`. The parent group contains all instances in the
+// production environment, regardless of their roles. The child group contains
+// instances that have the transcoder role *and* are in the production
+// environment.
+//
+// The monitored resources contained in a group can change at any moment,
+// depending on what resources exist and what filters are associated with the
+// group and its ancestors.
+message Group {
+ // Output only. The name of this group. The format is
+ // `"projects/{project_id_or_number}/groups/{group_id}"`.
+ // When creating a group, this field is ignored and a new name is created
+ // consisting of the project specified in the call to `CreateGroup`
+ // and a unique `{group_id}` that is generated automatically.
+ string name = 1;
+
+ // A user-assigned name for this group, used only for display purposes.
+ string display_name = 2;
+
+ // The name of the group's parent, if it has one.
+ // The format is `"projects/{project_id_or_number}/groups/{group_id}"`.
+ // For groups with no parent, `parentName` is the empty string, `""`.
+ string parent_name = 3;
+
+ // The filter used to determine which monitored resources belong to this group.
+ string filter = 5;
+
+ // If true, the members of this group are considered to be a cluster.
+ // The system can perform additional analysis on groups that are clusters.
+ bool is_cluster = 6;
+}
diff --git a/third_party/googleapis/google/monitoring/v3/group_service.proto b/third_party/googleapis/google/monitoring/v3/group_service.proto
new file mode 100644
index 0000000000..3450580cd8
--- /dev/null
+++ b/third_party/googleapis/google/monitoring/v3/group_service.proto
@@ -0,0 +1,206 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.monitoring.v3;
+
+import "google/api/annotations.proto";
+import "google/api/monitored_resource.proto";
+import "google/monitoring/v3/common.proto";
+import "google/monitoring/v3/group.proto";
+import "google/protobuf/empty.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.V3";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/v3;monitoring";
+option java_multiple_files = true;
+option java_outer_classname = "GroupServiceProto";
+option java_package = "com.google.monitoring.v3";
+
+
+// The Group API lets you inspect and manage your
+// [groups](google.monitoring.v3.Group).
+//
+// A group is a named filter that is used to identify
+// a collection of monitored resources. Groups are typically used to
+// mirror the physical and/or logical topology of the environment.
+// Because group membership is computed dynamically, monitored
+// resources that are started in the future are automatically placed
+// in matching groups. By using a group to name monitored resources in,
+// for example, an alert policy, the target of that alert policy is
+// updated automatically as monitored resources are added and removed
+// from the infrastructure.
+service GroupService {
+ // Lists the existing groups.
+ rpc ListGroups(ListGroupsRequest) returns (ListGroupsResponse) {
+ option (google.api.http) = { get: "/v3/{name=projects/*}/groups" };
+ }
+
+ // Gets a single group.
+ rpc GetGroup(GetGroupRequest) returns (Group) {
+ option (google.api.http) = { get: "/v3/{name=projects/*/groups/*}" };
+ }
+
+ // Creates a new group.
+ rpc CreateGroup(CreateGroupRequest) returns (Group) {
+ option (google.api.http) = { post: "/v3/{name=projects/*}/groups" body: "group" };
+ }
+
+ // Updates an existing group.
+ // You can change any group attributes except `name`.
+ rpc UpdateGroup(UpdateGroupRequest) returns (Group) {
+ option (google.api.http) = { put: "/v3/{group.name=projects/*/groups/*}" body: "group" };
+ }
+
+ // Deletes an existing group.
+ rpc DeleteGroup(DeleteGroupRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = { delete: "/v3/{name=projects/*/groups/*}" };
+ }
+
+ // Lists the monitored resources that are members of a group.
+ rpc ListGroupMembers(ListGroupMembersRequest) returns (ListGroupMembersResponse) {
+ option (google.api.http) = { get: "/v3/{name=projects/*/groups/*}/members" };
+ }
+}
+
+// The `ListGroup` request.
+message ListGroupsRequest {
+ // The project whose groups are to be listed. The format is
+ // `"projects/{project_id_or_number}"`.
+ string name = 7;
+
+ // An optional filter consisting of a single group name. The filters limit the
+ // groups returned based on their parent-child relationship with the specified
+ // group. If no filter is specified, all groups are returned.
+ oneof filter {
+ // A group name: `"projects/{project_id_or_number}/groups/{group_id}"`.
+ // Returns groups whose `parentName` field contains the group
+ // name. If no groups have this parent, the results are empty.
+ string children_of_group = 2;
+
+ // A group name: `"projects/{project_id_or_number}/groups/{group_id}"`.
+ // Returns groups that are ancestors of the specified group.
+ // The groups are returned in order, starting with the immediate parent and
+ // ending with the most distant ancestor. If the specified group has no
+ // immediate parent, the results are empty.
+ string ancestors_of_group = 3;
+
+ // A group name: `"projects/{project_id_or_number}/groups/{group_id}"`.
+ // Returns the descendants of the specified group. This is a superset of
+ // the results returned by the `childrenOfGroup` filter, and includes
+ // children-of-children, and so forth.
+ string descendants_of_group = 4;
+ }
+
+ // A positive number that is the maximum number of results to return.
+ int32 page_size = 5;
+
+ // If this field is not empty then it must contain the `nextPageToken` value
+ // returned by a previous call to this method. Using this field causes the
+ // method to return additional results from the previous method call.
+ string page_token = 6;
+}
+
+// The `ListGroups` response.
+message ListGroupsResponse {
+ // The groups that match the specified filters.
+ repeated Group group = 1;
+
+ // If there are more results than have been returned, then this field is set
+ // to a non-empty value. To see the additional results,
+ // use that value as `pageToken` in the next call to this method.
+ string next_page_token = 2;
+}
+
+// The `GetGroup` request.
+message GetGroupRequest {
+ // The group to retrieve. The format is
+ // `"projects/{project_id_or_number}/groups/{group_id}"`.
+ string name = 3;
+}
+
+// The `CreateGroup` request.
+message CreateGroupRequest {
+ // The project in which to create the group. The format is
+ // `"projects/{project_id_or_number}"`.
+ string name = 4;
+
+ // A group definition. It is an error to define the `name` field because
+ // the system assigns the name.
+ Group group = 2;
+
+ // If true, validate this request but do not create the group.
+ bool validate_only = 3;
+}
+
+// The `UpdateGroup` request.
+message UpdateGroupRequest {
+ // The new definition of the group. All fields of the existing group,
+ // excepting `name`, are replaced with the corresponding fields of this group.
+ Group group = 2;
+
+ // If true, validate this request but do not update the existing group.
+ bool validate_only = 3;
+}
+
+// The `DeleteGroup` request. You can only delete a group if it has no children.
+message DeleteGroupRequest {
+ // The group to delete. The format is
+ // `"projects/{project_id_or_number}/groups/{group_id}"`.
+ string name = 3;
+}
+
+// The `ListGroupMembers` request.
+message ListGroupMembersRequest {
+ // The group whose members are listed. The format is
+ // `"projects/{project_id_or_number}/groups/{group_id}"`.
+ string name = 7;
+
+ // A positive number that is the maximum number of results to return.
+ int32 page_size = 3;
+
+ // If this field is not empty then it must contain the `nextPageToken` value
+ // returned by a previous call to this method. Using this field causes the
+ // method to return additional results from the previous method call.
+ string page_token = 4;
+
+ // An optional [list filter](/monitoring/api/learn_more#filtering) describing
+ // the members to be returned. The filter may reference the type, labels, and
+ // metadata of monitored resources that comprise the group.
+ // For example, to return only resources representing Compute Engine VM
+ // instances, use this filter:
+ //
+ // resource.type = "gce_instance"
+ string filter = 5;
+
+ // An optional time interval for which results should be returned. Only
+ // members that were part of the group during the specified interval are
+ // included in the response. If no interval is provided then the group
+ // membership over the last minute is returned.
+ TimeInterval interval = 6;
+}
+
+// The `ListGroupMembers` response.
+message ListGroupMembersResponse {
+ // A set of monitored resources in the group.
+ repeated google.api.MonitoredResource members = 1;
+
+ // If there are more results than have been returned, then this field is
+ // set to a non-empty value. To see the additional results, use that value as
+ // `pageToken` in the next call to this method.
+ string next_page_token = 2;
+
+ // The total number of elements matching this request.
+ int32 total_size = 3;
+}
diff --git a/third_party/googleapis/google/monitoring/v3/metric.proto b/third_party/googleapis/google/monitoring/v3/metric.proto
new file mode 100644
index 0000000000..73ae603749
--- /dev/null
+++ b/third_party/googleapis/google/monitoring/v3/metric.proto
@@ -0,0 +1,87 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.monitoring.v3;
+
+import "google/api/metric.proto";
+import "google/api/monitored_resource.proto";
+import "google/monitoring/v3/common.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.V3";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/v3;monitoring";
+option java_multiple_files = true;
+option java_outer_classname = "MetricProto";
+option java_package = "com.google.monitoring.v3";
+
+
+// A single data point in a time series.
+message Point {
+ // The time interval to which the data point applies. For GAUGE metrics, only
+ // the end time of the interval is used. For DELTA metrics, the start and end
+ // time should specify a non-zero interval, with subsequent points specifying
+ // contiguous and non-overlapping intervals. For CUMULATIVE metrics, the
+ // start and end time should specify a non-zero interval, with subsequent
+ // points specifying the same start time and increasing end times, until an
+ // event resets the cumulative value to zero and sets a new start time for the
+ // following points.
+ TimeInterval interval = 1;
+
+ // The value of the data point.
+ TypedValue value = 2;
+}
+
+// A collection of data points that describes the time-varying values
+// of a metric. A time series is identified by a combination of a
+// fully-specified monitored resource and a fully-specified metric.
+// This type is used for both listing and creating time series.
+message TimeSeries {
+ // The associated metric. A fully-specified metric used to identify the time
+ // series.
+ google.api.Metric metric = 1;
+
+ // The associated resource. A fully-specified monitored resource used to
+ // identify the time series.
+ google.api.MonitoredResource resource = 2;
+
+ // The metric kind of the time series. When listing time series, this metric
+ // kind might be different from the metric kind of the associated metric if
+ // this time series is an alignment or reduction of other time series.
+ //
+ // When creating a time series, this field is optional. If present, it must be
+ // the same as the metric kind of the associated metric. If the associated
+ // metric's descriptor must be auto-created, then this field specifies the
+ // metric kind of the new descriptor and must be either `GAUGE` (the default)
+ // or `CUMULATIVE`.
+ google.api.MetricDescriptor.MetricKind metric_kind = 3;
+
+ // The value type of the time series. When listing time series, this value
+ // type might be different from the value type of the associated metric if
+ // this time series is an alignment or reduction of other time series.
+ //
+ // When creating a time series, this field is optional. If present, it must be
+ // the same as the type of the data in the `points` field.
+ google.api.MetricDescriptor.ValueType value_type = 4;
+
+ // The data points of this time series. When listing time series, the order of
+ // the points is specified by the list method.
+ //
+ // When creating a time series, this field must contain exactly one point and
+ // the point's type must be the same as the value type of the associated
+ // metric. If the associated metric's descriptor must be auto-created, then
+ // the value type of the descriptor is determined by the point's type, which
+ // must be `BOOL`, `INT64`, `DOUBLE`, or `DISTRIBUTION`.
+ repeated Point points = 5;
+}
diff --git a/third_party/googleapis/google/monitoring/v3/metric_service.proto b/third_party/googleapis/google/monitoring/v3/metric_service.proto
new file mode 100644
index 0000000000..0dd0b19d31
--- /dev/null
+++ b/third_party/googleapis/google/monitoring/v3/metric_service.proto
@@ -0,0 +1,286 @@
+// Copyright 2016 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.monitoring.v3;
+
+import "google/api/annotations.proto";
+import "google/api/metric.proto";
+import "google/api/monitored_resource.proto";
+import "google/monitoring/v3/common.proto";
+import "google/monitoring/v3/metric.proto";
+import "google/protobuf/empty.proto";
+import "google/rpc/status.proto";
+
+option csharp_namespace = "Google.Cloud.Monitoring.V3";
+option go_package = "google.golang.org/genproto/googleapis/monitoring/v3;monitoring";
+option java_multiple_files = true;
+option java_outer_classname = "MetricServiceProto";
+option java_package = "com.google.monitoring.v3";
+
+
+// Manages metric descriptors, monitored resource descriptors, and
+// time series data.
+service MetricService {
+ // Lists monitored resource descriptors that match a filter. This method does not require a Stackdriver account.
+ rpc ListMonitoredResourceDescriptors(ListMonitoredResourceDescriptorsRequest) returns (ListMonitoredResourceDescriptorsResponse) {
+ option (google.api.http) = { get: "/v3/{name=projects/*}/monitoredResourceDescriptors" };
+ }
+
+ // Gets a single monitored resource descriptor. This method does not require a Stackdriver account.
+ rpc GetMonitoredResourceDescriptor(GetMonitoredResourceDescriptorRequest) returns (google.api.MonitoredResourceDescriptor) {
+ option (google.api.http) = { get: "/v3/{name=projects/*/monitoredResourceDescriptors/*}" };
+ }
+
+ // Lists metric descriptors that match a filter. This method does not require a Stackdriver account.
+ rpc ListMetricDescriptors(ListMetricDescriptorsRequest) returns (ListMetricDescriptorsResponse) {
+ option (google.api.http) = { get: "/v3/{name=projects/*}/metricDescriptors" };
+ }
+
+ // Gets a single metric descriptor. This method does not require a Stackdriver account.
+ rpc GetMetricDescriptor(GetMetricDescriptorRequest) returns (google.api.MetricDescriptor) {
+ option (google.api.http) = { get: "/v3/{name=projects/*/metricDescriptors/**}" };
+ }
+
+ // Creates a new metric descriptor.
+ // User-created metric descriptors define
+ // [custom metrics](/monitoring/custom-metrics).
+ rpc CreateMetricDescriptor(CreateMetricDescriptorRequest) returns (google.api.MetricDescriptor) {
+ option (google.api.http) = { post: "/v3/{name=projects/*}/metricDescriptors" body: "metric_descriptor" };
+ }
+
+ // Deletes a metric descriptor. Only user-created
+ // [custom metrics](/monitoring/custom-metrics) can be deleted.
+ rpc DeleteMetricDescriptor(DeleteMetricDescriptorRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = { delete: "/v3/{name=projects/*/metricDescriptors/**}" };
+ }
+
+ // Lists time series that match a filter. This method does not require a Stackdriver account.
+ rpc ListTimeSeries(ListTimeSeriesRequest) returns (ListTimeSeriesResponse) {
+ option (google.api.http) = { get: "/v3/{name=projects/*}/timeSeries" };
+ }
+
+ // Creates or adds data to one or more time series.
+ // The response is empty if all time series in the request were written.
+ // If any time series could not be written, a corresponding failure message is
+ // included in the error response.
+ rpc CreateTimeSeries(CreateTimeSeriesRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = { post: "/v3/{name=projects/*}/timeSeries" body: "*" };
+ }
+}
+
+// The `ListMonitoredResourceDescriptors` request.
+message ListMonitoredResourceDescriptorsRequest {
+ // The project on which to execute the request. The format is
+ // `"projects/{project_id_or_number}"`.
+ string name = 5;
+
+ // An optional [filter](/monitoring/api/v3/filters) describing
+ // the descriptors to be returned. The filter can reference
+ // the descriptor's type and labels. For example, the
+ // following filter returns only Google Compute Engine descriptors
+ // that have an `id` label:
+ //
+ // resource.type = starts_with("gce_") AND resource.label:id
+ string filter = 2;
+
+ // A positive number that is the maximum number of results to return.
+ int32 page_size = 3;
+
+ // If this field is not empty then it must contain the `nextPageToken` value
+ // returned by a previous call to this method. Using this field causes the
+ // method to return additional results from the previous method call.
+ string page_token = 4;
+}
+
+// The `ListMonitoredResourcDescriptors` response.
+message ListMonitoredResourceDescriptorsResponse {
+ // The monitored resource descriptors that are available to this project
+ // and that match `filter`, if present.
+ repeated google.api.MonitoredResourceDescriptor resource_descriptors = 1;
+
+ // If there are more results than have been returned, then this field is set
+ // to a non-empty value. To see the additional results,
+ // use that value as `pageToken` in the next call to this method.
+ string next_page_token = 2;
+}
+
+// The `GetMonitoredResourceDescriptor` request.
+message GetMonitoredResourceDescriptorRequest {
+ // The monitored resource descriptor to get. The format is
+ // `"projects/{project_id_or_number}/monitoredResourceDescriptors/{resource_type}"`.
+ // The `{resource_type}` is a predefined type, such as
+ // `cloudsql_database`.
+ string name = 3;
+}
+
+// The `ListMetricDescriptors` request.
+message ListMetricDescriptorsRequest {
+ // The project on which to execute the request. The format is
+ // `"projects/{project_id_or_number}"`.
+ string name = 5;
+
+ // If this field is empty, all custom and
+ // system-defined metric descriptors are returned.
+ // Otherwise, the [filter](/monitoring/api/v3/filters)
+ // specifies which metric descriptors are to be
+ // returned. For example, the following filter matches all
+ // [custom metrics](/monitoring/custom-metrics):
+ //
+ // metric.type = starts_with("custom.googleapis.com/")
+ string filter = 2;
+
+ // A positive number that is the maximum number of results to return.
+ int32 page_size = 3;
+
+ // If this field is not empty then it must contain the `nextPageToken` value
+ // returned by a previous call to this method. Using this field causes the
+ // method to return additional results from the previous method call.
+ string page_token = 4;
+}
+
+// The `ListMetricDescriptors` response.
+message ListMetricDescriptorsResponse {
+ // The metric descriptors that are available to the project
+ // and that match the value of `filter`, if present.
+ repeated google.api.MetricDescriptor metric_descriptors = 1;
+
+ // If there are more results than have been returned, then this field is set
+ // to a non-empty value. To see the additional results,
+ // use that value as `pageToken` in the next call to this method.
+ string next_page_token = 2;
+}
+
+// The `GetMetricDescriptor` request.
+message GetMetricDescriptorRequest {
+ // The metric descriptor on which to execute the request. The format is
+ // `"projects/{project_id_or_number}/metricDescriptors/{metric_id}"`.
+ // An example value of `{metric_id}` is
+ // `"compute.googleapis.com/instance/disk/read_bytes_count"`.
+ string name = 3;
+}
+
+// The `CreateMetricDescriptor` request.
+message CreateMetricDescriptorRequest {
+ // The project on which to execute the request. The format is
+ // `"projects/{project_id_or_number}"`.
+ string name = 3;
+
+ // The new [custom metric](/monitoring/custom-metrics)
+ // descriptor.
+ google.api.MetricDescriptor metric_descriptor = 2;
+}
+
+// The `DeleteMetricDescriptor` request.
+message DeleteMetricDescriptorRequest {
+ // The metric descriptor on which to execute the request. The format is
+ // `"projects/{project_id_or_number}/metricDescriptors/{metric_id}"`.
+ // An example of `{metric_id}` is:
+ // `"custom.googleapis.com/my_test_metric"`.
+ string name = 3;
+}
+
+// The `ListTimeSeries` request.
+message ListTimeSeriesRequest {
+ // Controls which fields are returned by `ListTimeSeries`.
+ enum TimeSeriesView {
+ // Returns the identity of the metric(s), the time series,
+ // and the time series data.
+ FULL = 0;
+
+ // Returns the identity of the metric and the time series resource,
+ // but not the time series data.
+ HEADERS = 1;
+ }
+
+ // The project on which to execute the request. The format is
+ // "projects/{project_id_or_number}".
+ string name = 10;
+
+ // A [monitoring filter](/monitoring/api/v3/filters) that specifies which time
+ // series should be returned. The filter must specify a single metric type,
+ // and can additionally specify metric labels and other information. For
+ // example:
+ //
+ // metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
+ // metric.label.instance_name = "my-instance-name"
+ string filter = 2;
+
+ // The time interval for which results should be returned. Only time series
+ // that contain data points in the specified interval are included
+ // in the response.
+ TimeInterval interval = 4;
+
+ // By default, the raw time series data is returned.
+ // Use this field to combine multiple time series for different
+ // views of the data.
+ Aggregation aggregation = 5;
+
+ // Specifies the order in which the points of the time series should
+ // be returned. By default, results are not ordered. Currently,
+ // this field must be left blank.
+ string order_by = 6;
+
+ // Specifies which information is returned about the time series.
+ TimeSeriesView view = 7;
+
+ // A positive number that is the maximum number of results to return.
+ // When `view` field sets to `FULL`, it limits the number of `Points` server
+ // will return; if `view` field is `HEADERS`, it limits the number of
+ // `TimeSeries` server will return.
+ int32 page_size = 8;
+
+ // If this field is not empty then it must contain the `nextPageToken` value
+ // returned by a previous call to this method. Using this field causes the
+ // method to return additional results from the previous method call.
+ string page_token = 9;
+}
+
+// The `ListTimeSeries` response.
+message ListTimeSeriesResponse {
+ // One or more time series that match the filter included in the request.
+ repeated TimeSeries time_series = 1;
+
+ // If there are more results than have been returned, then this field is set
+ // to a non-empty value. To see the additional results,
+ // use that value as `pageToken` in the next call to this method.
+ string next_page_token = 2;
+}
+
+// The `CreateTimeSeries` request.
+message CreateTimeSeriesRequest {
+ // The project on which to execute the request. The format is
+ // `"projects/{project_id_or_number}"`.
+ string name = 3;
+
+ // The new data to be added to a list of time series.
+ // Adds at most one data point to each of several time series. The new data
+ // point must be more recent than any other point in its time series. Each
+ // `TimeSeries` value must fully specify a unique time series by supplying
+ // all label values for the metric and the monitored resource.
+ repeated TimeSeries time_series = 2;
+}
+
+// Describes the result of a failed request to write data to a time series.
+message CreateTimeSeriesError {
+ // The time series, including the `Metric`, `MonitoredResource`,
+ // and `Point`s (including timestamp and value) that resulted
+ // in the error. This field provides all of the context that
+ // would be needed to retry the operation.
+ TimeSeries time_series = 1;
+
+ // The status of the requested write operation.
+ google.rpc.Status status = 2;
+}
diff --git a/third_party/googleapis/google/monitoring/v3/monitoring_gapic.yaml b/third_party/googleapis/google/monitoring/v3/monitoring_gapic.yaml
new file mode 100644
index 0000000000..224c44064c
--- /dev/null
+++ b/third_party/googleapis/google/monitoring/v3/monitoring_gapic.yaml
@@ -0,0 +1,371 @@
+type: com.google.api.codegen.ConfigProto
+language_settings:
+ java:
+ package_name: com.google.cloud.monitoring.spi.v3
+ python:
+ package_name: google.cloud.gapic.monitoring.v3
+ go:
+ package_name: cloud.google.com/go/monitoring/apiv3
+ csharp:
+ package_name: Google.Cloud.Monitoring.V3
+ ruby:
+ package_name: Google::Cloud::Monitoring::V3
+ php:
+ package_name: Google\Cloud\Monitoring\V3
+ nodejs:
+ package_name: monitoring.v3
+ domain_layer_location: google-cloud
+license_header:
+ copyright_file: copyright-google.txt
+ license_file: license-header-apache-2.0.txt
+collections:
+- name_pattern: projects/{project}
+ entity_name: project
+- name_pattern: projects/{project}/metricDescriptors/{metric_descriptor=**}
+ entity_name: metric_descriptor
+- name_pattern: projects/{project}/monitoredResourceDescriptors/{monitored_resource_descriptor}
+ entity_name: monitored_resource_descriptor
+- name_pattern: projects/{project}/groups/{group}
+ entity_name: group
+interfaces:
+- name: google.monitoring.v3.GroupService
+ collections:
+ - name_pattern: projects/{project}
+ entity_name: project
+ - name_pattern: projects/{project}/groups/{group}
+ entity_name: group
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes:
+ - UNAVAILABLE
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ methods:
+ - name: ListGroups
+ # Removing flattening until we figure out how to deal with oneof
+ required_fields:
+ - name
+ request_object_method: true
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: group
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: project
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: GetGroup
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: false
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: group
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: CreateGroup
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - group
+ required_fields:
+ - name
+ - group
+ request_object_method: true
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: project
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: UpdateGroup
+ flattening:
+ groups:
+ - parameters:
+ - group
+ required_fields:
+ - group
+ request_object_method: true
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ group.name: group
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: DeleteGroup
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: false
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: group
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: ListGroupMembers
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: true
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: members
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: group
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+- name: google.monitoring.v3.MetricService
+ smoke_test:
+ method: ListMonitoredResourceDescriptors
+ init_fields:
+ - name%project=$PROJECT_ID
+ collections:
+ - name_pattern: projects/{project}
+ entity_name: project
+ - name_pattern: projects/{project}/metricDescriptors/{metric_descriptor=**}
+ entity_name: metric_descriptor
+ - name_pattern: projects/{project}/monitoredResourceDescriptors/{monitored_resource_descriptor}
+ entity_name: monitored_resource_descriptor
+ retry_codes_def:
+ - name: idempotent
+ retry_codes:
+ - UNAVAILABLE
+ - DEADLINE_EXCEEDED
+ - name: non_idempotent
+ retry_codes:
+ - UNAVAILABLE
+ retry_params_def:
+ - name: default
+ initial_retry_delay_millis: 100
+ retry_delay_multiplier: 1.3
+ max_retry_delay_millis: 60000
+ initial_rpc_timeout_millis: 20000
+ rpc_timeout_multiplier: 1
+ max_rpc_timeout_millis: 20000
+ total_timeout_millis: 600000
+ methods:
+ - name: ListMonitoredResourceDescriptors
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: true
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: resource_descriptors
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: project
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: GetMonitoredResourceDescriptor
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: false
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: monitored_resource_descriptor
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: ListMetricDescriptors
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: true
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: metric_descriptors
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: project
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: GetMetricDescriptor
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: false
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: metric_descriptor
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: CreateMetricDescriptor
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - metric_descriptor
+ required_fields:
+ - name
+ - metric_descriptor
+ request_object_method: true
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: project
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: DeleteMetricDescriptor
+ flattening:
+ groups:
+ - parameters:
+ - name
+ required_fields:
+ - name
+ request_object_method: false
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: metric_descriptor
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: ListTimeSeries
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - filter
+ - interval
+ - view
+ required_fields:
+ - name
+ - filter
+ - interval
+ - view
+ request_object_method: true
+ page_streaming:
+ request:
+ page_size_field: page_size
+ token_field: page_token
+ response:
+ token_field: next_page_token
+ resources_field: time_series
+ retry_codes_name: idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: project
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+ - name: CreateTimeSeries
+ flattening:
+ groups:
+ - parameters:
+ - name
+ - time_series
+ required_fields:
+ - name
+ - time_series
+ request_object_method: true
+ retry_codes_name: non_idempotent
+ retry_params_name: default
+ field_name_patterns:
+ name: project
+ resource_name_treatment: STATIC_TYPES
+ timeout_millis: 60000
+resource_name_generation:
+- message_name: Group
+ field_entity_map:
+ name: group
+ parent_name: group
+- message_name: ListGroupsRequest
+ field_entity_map:
+ name: project
+ children_of_group: group
+ ancestors_of_group: group
+ descendants_of_group: group
+- message_name: GetGroupRequest
+ field_entity_map:
+ name: group
+- message_name: CreateGroupRequest
+ field_entity_map:
+ name: project
+- message_name: DeleteGroupRequest
+ field_entity_map:
+ name: group
+- message_name: ListGroupMembersRequest
+ field_entity_map:
+ name: group
+- message_name: ListMonitoredResourceDescriptorsRequest
+ field_entity_map:
+ name: project
+- message_name: GetMonitoredResourceDescriptorRequest
+ field_entity_map:
+ name: monitored_resource_descriptor
+- message_name: ListMetricDescriptorsRequest
+ field_entity_map:
+ name: project
+- message_name: GetMetricDescriptorRequest
+ field_entity_map:
+ name: metric_descriptor
+- message_name: CreateMetricDescriptorRequest
+ field_entity_map:
+ name: project
+- message_name: DeleteMetricDescriptorRequest
+ field_entity_map:
+ name: metric_descriptor
+- message_name: ListTimeSeriesRequest
+ field_entity_map:
+ name: project
+- message_name: CreateTimeSeriesRequest
+ field_entity_map:
+ name: project