google-apis-monitoring_v3 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4a862c398a72f5ca0191ecb52e0c2ae7d008e6c7369d1bd29c74a55e540217c9
4
+ data.tar.gz: 07c873b7abddd7c07c7e7a724ff9fde02cca458563fc16ad44d5a57bff6accd3
5
+ SHA512:
6
+ metadata.gz: 40b95414d1cfa78ed7411c5cd08734e1429389b6588f4c3eeb08b7da289cd7db6c70464c58b2868ee8459b43d4278ea6f3611290d3036b026382cdd2feaf2332
7
+ data.tar.gz: 42513a2df6d82907ad8a4a610c748fd514cd111c6f67f1bd8ce710a29615696c4066cf59650b17258a49f9ca487980a818585e5c7fb08a29f3184886e736f621
@@ -0,0 +1,13 @@
1
+ --hide-void-return
2
+ --no-private
3
+ --verbose
4
+ --title=google-apis-monitoring_v3
5
+ --markup-provider=redcarpet
6
+ --markup=markdown
7
+ --main OVERVIEW.md
8
+ lib/google/apis/monitoring_v3/*.rb
9
+ lib/google/apis/monitoring_v3.rb
10
+ -
11
+ OVERVIEW.md
12
+ CHANGELOG.md
13
+ LICENSE.md
@@ -0,0 +1,7 @@
1
+ # Release history for google-apis-monitoring_v3
2
+
3
+ ### v0.1.0 (2021-01-07)
4
+
5
+ * Regenerated using generator version 0.1.1
6
+ * Regenerated from discovery document revision 20201213
7
+
@@ -0,0 +1,202 @@
1
+
2
+ Apache License
3
+ Version 2.0, January 2004
4
+ http://www.apache.org/licenses/
5
+
6
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7
+
8
+ 1. Definitions.
9
+
10
+ "License" shall mean the terms and conditions for use, reproduction,
11
+ and distribution as defined by Sections 1 through 9 of this document.
12
+
13
+ "Licensor" shall mean the copyright owner or entity authorized by
14
+ the copyright owner that is granting the License.
15
+
16
+ "Legal Entity" shall mean the union of the acting entity and all
17
+ other entities that control, are controlled by, or are under common
18
+ control with that entity. For the purposes of this definition,
19
+ "control" means (i) the power, direct or indirect, to cause the
20
+ direction or management of such entity, whether by contract or
21
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
22
+ outstanding shares, or (iii) beneficial ownership of such entity.
23
+
24
+ "You" (or "Your") shall mean an individual or Legal Entity
25
+ exercising permissions granted by this License.
26
+
27
+ "Source" form shall mean the preferred form for making modifications,
28
+ including but not limited to software source code, documentation
29
+ source, and configuration files.
30
+
31
+ "Object" form shall mean any form resulting from mechanical
32
+ transformation or translation of a Source form, including but
33
+ not limited to compiled object code, generated documentation,
34
+ and conversions to other media types.
35
+
36
+ "Work" shall mean the work of authorship, whether in Source or
37
+ Object form, made available under the License, as indicated by a
38
+ copyright notice that is included in or attached to the work
39
+ (an example is provided in the Appendix below).
40
+
41
+ "Derivative Works" shall mean any work, whether in Source or Object
42
+ form, that is based on (or derived from) the Work and for which the
43
+ editorial revisions, annotations, elaborations, or other modifications
44
+ represent, as a whole, an original work of authorship. For the purposes
45
+ of this License, Derivative Works shall not include works that remain
46
+ separable from, or merely link (or bind by name) to the interfaces of,
47
+ the Work and Derivative Works thereof.
48
+
49
+ "Contribution" shall mean any work of authorship, including
50
+ the original version of the Work and any modifications or additions
51
+ to that Work or Derivative Works thereof, that is intentionally
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
53
+ or by an individual or Legal Entity authorized to submit on behalf of
54
+ the copyright owner. For the purposes of this definition, "submitted"
55
+ means any form of electronic, verbal, or written communication sent
56
+ to the Licensor or its representatives, including but not limited to
57
+ communication on electronic mailing lists, source code control systems,
58
+ and issue tracking systems that are managed by, or on behalf of, the
59
+ Licensor for the purpose of discussing and improving the Work, but
60
+ excluding communication that is conspicuously marked or otherwise
61
+ designated in writing by the copyright owner as "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
191
+
192
+ Licensed under the Apache License, Version 2.0 (the "License");
193
+ you may not use this file except in compliance with the License.
194
+ You may obtain a copy of the License at
195
+
196
+ http://www.apache.org/licenses/LICENSE-2.0
197
+
198
+ Unless required by applicable law or agreed to in writing, software
199
+ distributed under the License is distributed on an "AS IS" BASIS,
200
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
+ See the License for the specific language governing permissions and
202
+ limitations under the License.
@@ -0,0 +1,96 @@
1
+ # Simple REST client for version V3 of the Cloud Monitoring API
2
+
3
+ This is a simple client library for version V3 of the Cloud Monitoring API. It provides:
4
+
5
+ * A client object that connects to the HTTP/JSON REST endpoint for the service.
6
+ * Ruby objects for data structures related to the service.
7
+ * Integration with the googleauth gem for authentication using OAuth, API keys, and service accounts.
8
+ * Control of retry, pagination, and timeouts.
9
+
10
+ Note that although this client library is supported and will continue to be updated to track changes to the service, it is otherwise considered complete and not under active development. Many Google services, especially Google Cloud Platform services, may provide a more modern client that is under more active development and improvement. See the section below titled *Which client should I use?* for more information.
11
+
12
+ ## Getting started
13
+
14
+ ### Before you begin
15
+
16
+ There are a few setup steps you need to complete before you can use this library:
17
+
18
+ 1. If you don't already have a Google account, [sign up](https://www.google.com/accounts).
19
+ 2. If you have never created a Google APIs Console project, read about [Managing Projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) and create a project in the [Google API Console](https://console.cloud.google.com/).
20
+ 3. Most APIs need to be enabled for your project. [Enable it](https://console.cloud.google.com/apis/library/monitoring.googleapis.com) in the console.
21
+
22
+ ### Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'google-apis-monitoring_v3', '~> 0.1'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```
33
+ $ bundle
34
+ ```
35
+
36
+ Or install it yourself as:
37
+
38
+ ```
39
+ $ gem install google-apis-monitoring_v3
40
+ ```
41
+
42
+ ### Creating a client object
43
+
44
+ Once the gem is installed, you can load the client code and instantiate a client.
45
+
46
+ ```ruby
47
+ # Load the client
48
+ require "google/apis/monitoring_v3"
49
+
50
+ # Create a client object
51
+ client = Google::Apis::MonitoringV3::MonitoringService.new
52
+
53
+ # Authenticate calls
54
+ client.authentication = # ... use the googleauth gem to create credentials
55
+ ```
56
+
57
+ See the class reference docs for information on the methods you can call from a client.
58
+
59
+ ## Documentation
60
+
61
+ More detailed descriptions of the Google simple REST clients are available in two documents.
62
+
63
+ * The [Usage Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/usage-guide.md) discusses how to make API calls, how to use the provided data structures, and how to work the various features of the client library, including media upload and download, error handling, retries, pagination, and logging.
64
+ * The [Auth Guide](https://github.com/googleapis/google-api-ruby-client/blob/master/docs/auth-guide.md) discusses authentication in the client libraries, including API keys, OAuth 2.0, service accounts, and environment variables.
65
+
66
+ (Note: the above documents are written for the simple REST clients in general, and their examples may not reflect the Monitoring service in particular.)
67
+
68
+ For reference information on specific calls in the Cloud Monitoring API, see the {Google::Apis::MonitoringV3::MonitoringService class reference docs}.
69
+
70
+ ## Which client should I use?
71
+
72
+ Google provides two types of Ruby API client libraries: **simple REST clients** and **modern clients**.
73
+
74
+ This library, `google-apis-monitoring_v3`, is a simple REST client. You can identify these clients by their gem names, which are always in the form `google-apis-<servicename>_<serviceversion>`. The simple REST clients connect to HTTP/JSON REST endpoints and are automatically generated from service discovery documents. They support most API functionality, but their class interfaces are sometimes awkward.
75
+
76
+ Modern clients are produced by a modern code generator, sometimes combined with hand-crafted functionality. Most modern clients connect to high-performance gRPC endpoints, although a few are backed by REST services. Modern clients are available for many Google services, especially Google Cloud Platform services, but do not yet support all the services covered by the simple clients.
77
+
78
+ Gem names for modern clients are often of the form `google-cloud-<service_name>`. (For example, [google-cloud-pubsub](https://rubygems.org/gems/google-cloud-pubsub).) Note that most modern clients also have corresponding "versioned" gems with names like `google-cloud-<service_name>-<version>`. (For example, [google-cloud-pubsub-v1](https://rubygems.org/gems/google-cloud-pubsub-v1).) The "versioned" gems can be used directly, but often provide lower-level interfaces. In most cases, the main gem is recommended.
79
+
80
+ **For most users, we recommend the modern client, if one is available.** Compared with simple clients, modern clients are generally much easier to use and more Ruby-like, support more advanced features such as streaming and long-running operations, and often provide much better performance. You may consider using a simple client instead, if a modern client is not yet available for the service you want to use, or if you are not able to use gRPC on your infrastructure.
81
+
82
+ The [product documentation](https://cloud.google.com/monitoring/api/) may provide guidance regarding the preferred client library to use.
83
+
84
+ ## Supported Ruby versions
85
+
86
+ This library is supported on Ruby 2.5+.
87
+
88
+ Google provides official support for Ruby versions that are actively supported by Ruby Core -- that is, Ruby versions that are either in normal maintenance or in security maintenance, and not end of life. Currently, this means Ruby 2.5 and later. Older versions of Ruby _may_ still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.
89
+
90
+ ## License
91
+
92
+ This library is licensed under Apache 2.0. Full license text is available in the {file:LICENSE.md LICENSE}.
93
+
94
+ ## Support
95
+
96
+ Please [report bugs at the project on Github](https://github.com/google/google-api-ruby-client/issues). Don't hesitate to [ask questions](http://stackoverflow.com/questions/tagged/google-api-ruby-client) about the client or APIs on [StackOverflow](http://stackoverflow.com).
@@ -0,0 +1,15 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require "google/apis/monitoring_v3"
@@ -0,0 +1,49 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'google/apis/monitoring_v3/service.rb'
16
+ require 'google/apis/monitoring_v3/classes.rb'
17
+ require 'google/apis/monitoring_v3/representations.rb'
18
+ require 'google/apis/monitoring_v3/gem_version.rb'
19
+
20
+ module Google
21
+ module Apis
22
+ # Cloud Monitoring API
23
+ #
24
+ # Manages your Cloud Monitoring data and configurations. Most projects must be
25
+ # associated with a Workspace, with a few exceptions as noted on the individual
26
+ # method pages. The table entries below are presented in alphabetical order, not
27
+ # in order of common use. For explanations of the concepts found in the table
28
+ # entries, read the Cloud Monitoring documentation.
29
+ #
30
+ # @see https://cloud.google.com/monitoring/api/
31
+ module MonitoringV3
32
+ # Version of the Cloud Monitoring API this client connects to.
33
+ # This is NOT the gem version.
34
+ VERSION = 'V3'
35
+
36
+ # View and manage your data across Google Cloud Platform services
37
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
38
+
39
+ # View and write monitoring data for all of your Google and third-party Cloud and API projects
40
+ AUTH_MONITORING = 'https://www.googleapis.com/auth/monitoring'
41
+
42
+ # View monitoring data for all of your Google Cloud and third-party projects
43
+ AUTH_MONITORING_READ = 'https://www.googleapis.com/auth/monitoring.read'
44
+
45
+ # Publish metric data to your Google Cloud projects
46
+ AUTH_MONITORING_WRITE = 'https://www.googleapis.com/auth/monitoring.write'
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,4179 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module MonitoringV3
24
+
25
+ # Describes how to combine multiple time series to provide a different view of
26
+ # the data. Aggregation of time series is done in two steps. First, each time
27
+ # series in the set is aligned to the same time interval boundaries, then the
28
+ # set of time series is optionally reduced in number.Alignment consists of
29
+ # applying the per_series_aligner operation to each time series after its data
30
+ # has been divided into regular alignment_period time intervals. This process
31
+ # takes all of the data points in an alignment period, applies a mathematical
32
+ # transformation such as averaging, minimum, maximum, delta, etc., and converts
33
+ # them into a single data point per period.Reduction is when the aligned and
34
+ # transformed time series can optionally be combined, reducing the number of
35
+ # time series through similar mathematical transformations. Reduction involves
36
+ # applying a cross_series_reducer to all the time series, optionally sorting the
37
+ # time series into subsets with group_by_fields, and applying the reducer to
38
+ # each subset.The raw time series data can contain a huge amount of information
39
+ # from multiple sources. Alignment and reduction transforms this mass of data
40
+ # into a more manageable and representative collection of data, for example "the
41
+ # 95% latency across the average of all tasks in a cluster". This representative
42
+ # data can be more easily graphed and comprehended, and the individual time
43
+ # series data is still available for later drilldown. For more details, see
44
+ # Filtering and aggregation (https://cloud.google.com/monitoring/api/v3/
45
+ # aggregation).
46
+ class Aggregation
47
+ include Google::Apis::Core::Hashable
48
+
49
+ # The alignment_period specifies a time interval, in seconds, that is used to
50
+ # divide the data in all the time series into consistent blocks of time. This
51
+ # will be done before the per-series aligner can be applied to the data.The
52
+ # value must be at least 60 seconds. If a per-series aligner other than
53
+ # ALIGN_NONE is specified, this field is required or an error is returned. If no
54
+ # per-series aligner is specified, or the aligner ALIGN_NONE is specified, then
55
+ # this field is ignored.The maximum value of the alignment_period is 104 weeks (
56
+ # 2 years) for charts, and 90,000 seconds (25 hours) for alerting policies.
57
+ # Corresponds to the JSON property `alignmentPeriod`
58
+ # @return [String]
59
+ attr_accessor :alignment_period
60
+
61
+ # The reduction operation to be used to combine time series into a single time
62
+ # series, where the value of each data point in the resulting series is a
63
+ # function of all the already aligned values in the input time series.Not all
64
+ # reducer operations can be applied to all time series. The valid choices depend
65
+ # on the metric_kind and the value_type of the original time series. Reduction
66
+ # can yield a time series with a different metric_kind or value_type than the
67
+ # input time series.Time series data must first be aligned (see
68
+ # per_series_aligner) in order to perform cross-time series reduction. If
69
+ # cross_series_reducer is specified, then per_series_aligner must be specified,
70
+ # and must not be ALIGN_NONE. An alignment_period must also be specified;
71
+ # otherwise, an error is returned.
72
+ # Corresponds to the JSON property `crossSeriesReducer`
73
+ # @return [String]
74
+ attr_accessor :cross_series_reducer
75
+
76
+ # The set of fields to preserve when cross_series_reducer is specified. The
77
+ # group_by_fields determine how the time series are partitioned into subsets
78
+ # prior to applying the aggregation operation. Each subset contains time series
79
+ # that have the same value for each of the grouping fields. Each individual time
80
+ # series is a member of exactly one subset. The cross_series_reducer is applied
81
+ # to each subset of time series. It is not possible to reduce across different
82
+ # resource types, so this field implicitly contains resource.type. Fields not
83
+ # specified in group_by_fields are aggregated away. If group_by_fields is not
84
+ # specified and all the time series have the same resource type, then the time
85
+ # series are aggregated into a single output time series. If
86
+ # cross_series_reducer is not defined, this field is ignored.
87
+ # Corresponds to the JSON property `groupByFields`
88
+ # @return [Array<String>]
89
+ attr_accessor :group_by_fields
90
+
91
+ # An Aligner describes how to bring the data points in a single time series into
92
+ # temporal alignment. Except for ALIGN_NONE, all alignments cause all the data
93
+ # points in an alignment_period to be mathematically grouped together, resulting
94
+ # in a single data point for each alignment_period with end timestamp at the end
95
+ # of the period.Not all alignment operations may be applied to all time series.
96
+ # The valid choices depend on the metric_kind and value_type of the original
97
+ # time series. Alignment can change the metric_kind or the value_type of the
98
+ # time series.Time series data must be aligned in order to perform cross-time
99
+ # series reduction. If cross_series_reducer is specified, then
100
+ # per_series_aligner must be specified and not equal to ALIGN_NONE and
101
+ # alignment_period must be specified; otherwise, an error is returned.
102
+ # Corresponds to the JSON property `perSeriesAligner`
103
+ # @return [String]
104
+ attr_accessor :per_series_aligner
105
+
106
+ def initialize(**args)
107
+ update!(**args)
108
+ end
109
+
110
+ # Update properties of this object
111
+ def update!(**args)
112
+ @alignment_period = args[:alignment_period] if args.key?(:alignment_period)
113
+ @cross_series_reducer = args[:cross_series_reducer] if args.key?(:cross_series_reducer)
114
+ @group_by_fields = args[:group_by_fields] if args.key?(:group_by_fields)
115
+ @per_series_aligner = args[:per_series_aligner] if args.key?(:per_series_aligner)
116
+ end
117
+ end
118
+
119
+ # A description of the conditions under which some aspect of your system is
120
+ # considered to be "unhealthy" and the ways to notify people or services about
121
+ # this state. For an overview of alert policies, see Introduction to Alerting (
122
+ # https://cloud.google.com/monitoring/alerts/).
123
+ class AlertPolicy
124
+ include Google::Apis::Core::Hashable
125
+
126
+ # How to combine the results of multiple conditions to determine if an incident
127
+ # should be opened. If condition_time_series_query_language is present, this
128
+ # must be COMBINE_UNSPECIFIED.
129
+ # Corresponds to the JSON property `combiner`
130
+ # @return [String]
131
+ attr_accessor :combiner
132
+
133
+ # A list of conditions for the policy. The conditions are combined by AND or OR
134
+ # according to the combiner field. If the combined conditions evaluate to true,
135
+ # then an incident is created. A policy can have from one to six conditions. If
136
+ # condition_time_series_query_language is present, it must be the only condition.
137
+ # Corresponds to the JSON property `conditions`
138
+ # @return [Array<Google::Apis::MonitoringV3::Condition>]
139
+ attr_accessor :conditions
140
+
141
+ # Describes a change made to a configuration.
142
+ # Corresponds to the JSON property `creationRecord`
143
+ # @return [Google::Apis::MonitoringV3::MutationRecord]
144
+ attr_accessor :creation_record
145
+
146
+ # A short name or phrase used to identify the policy in dashboards,
147
+ # notifications, and incidents. To avoid confusion, don't use the same display
148
+ # name for multiple policies in the same project. The name is limited to 512
149
+ # Unicode characters.
150
+ # Corresponds to the JSON property `displayName`
151
+ # @return [String]
152
+ attr_accessor :display_name
153
+
154
+ # A content string and a MIME type that describes the content string's format.
155
+ # Corresponds to the JSON property `documentation`
156
+ # @return [Google::Apis::MonitoringV3::Documentation]
157
+ attr_accessor :documentation
158
+
159
+ # Whether or not the policy is enabled. On write, the default interpretation if
160
+ # unset is that the policy is enabled. On read, clients should not make any
161
+ # assumption about the state if it has not been populated. The field should
162
+ # always be populated on List and Get operations, unless a field projection has
163
+ # been specified that strips it out.
164
+ # Corresponds to the JSON property `enabled`
165
+ # @return [Boolean]
166
+ attr_accessor :enabled
167
+ alias_method :enabled?, :enabled
168
+
169
+ # Describes a change made to a configuration.
170
+ # Corresponds to the JSON property `mutationRecord`
171
+ # @return [Google::Apis::MonitoringV3::MutationRecord]
172
+ attr_accessor :mutation_record
173
+
174
+ # Required if the policy exists. The resource name for this policy. The format
175
+ # is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] [
176
+ # ALERT_POLICY_ID] is assigned by Stackdriver Monitoring when the policy is
177
+ # created. When calling the alertPolicies.create method, do not include the name
178
+ # field in the alerting policy passed as part of the request.
179
+ # Corresponds to the JSON property `name`
180
+ # @return [String]
181
+ attr_accessor :name
182
+
183
+ # Identifies the notification channels to which notifications should be sent
184
+ # when incidents are opened or closed or when new violations occur on an already
185
+ # opened incident. Each element of this array corresponds to the name field in
186
+ # each of the NotificationChannel objects that are returned from the
187
+ # ListNotificationChannels method. The format of the entries in this field is:
188
+ # projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
189
+ # Corresponds to the JSON property `notificationChannels`
190
+ # @return [Array<String>]
191
+ attr_accessor :notification_channels
192
+
193
+ # User-supplied key/value data to be used for organizing and identifying the
194
+ # AlertPolicy objects.The field can contain up to 64 entries. Each key and value
195
+ # is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels
196
+ # and values can contain only lowercase letters, numerals, underscores, and
197
+ # dashes. Keys must begin with a letter.
198
+ # Corresponds to the JSON property `userLabels`
199
+ # @return [Hash<String,String>]
200
+ attr_accessor :user_labels
201
+
202
+ # The Status type defines a logical error model that is suitable for different
203
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
204
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
205
+ # error code, error message, and error details.You can find out more about this
206
+ # error model and how to work with it in the API Design Guide (https://cloud.
207
+ # google.com/apis/design/errors).
208
+ # Corresponds to the JSON property `validity`
209
+ # @return [Google::Apis::MonitoringV3::Status]
210
+ attr_accessor :validity
211
+
212
+ def initialize(**args)
213
+ update!(**args)
214
+ end
215
+
216
+ # Update properties of this object
217
+ def update!(**args)
218
+ @combiner = args[:combiner] if args.key?(:combiner)
219
+ @conditions = args[:conditions] if args.key?(:conditions)
220
+ @creation_record = args[:creation_record] if args.key?(:creation_record)
221
+ @display_name = args[:display_name] if args.key?(:display_name)
222
+ @documentation = args[:documentation] if args.key?(:documentation)
223
+ @enabled = args[:enabled] if args.key?(:enabled)
224
+ @mutation_record = args[:mutation_record] if args.key?(:mutation_record)
225
+ @name = args[:name] if args.key?(:name)
226
+ @notification_channels = args[:notification_channels] if args.key?(:notification_channels)
227
+ @user_labels = args[:user_labels] if args.key?(:user_labels)
228
+ @validity = args[:validity] if args.key?(:validity)
229
+ end
230
+ end
231
+
232
+ # App Engine service. Learn more at https://cloud.google.com/appengine.
233
+ class AppEngine
234
+ include Google::Apis::Core::Hashable
235
+
236
+ # The ID of the App Engine module underlying this service. Corresponds to the
237
+ # module_id resource label in the gae_app monitored resource: https://cloud.
238
+ # google.com/monitoring/api/resources#tag_gae_app
239
+ # Corresponds to the JSON property `moduleId`
240
+ # @return [String]
241
+ attr_accessor :module_id
242
+
243
+ def initialize(**args)
244
+ update!(**args)
245
+ end
246
+
247
+ # Update properties of this object
248
+ def update!(**args)
249
+ @module_id = args[:module_id] if args.key?(:module_id)
250
+ end
251
+ end
252
+
253
+ # Future parameters for the availability SLI.
254
+ class AvailabilityCriteria
255
+ include Google::Apis::Core::Hashable
256
+
257
+ def initialize(**args)
258
+ update!(**args)
259
+ end
260
+
261
+ # Update properties of this object
262
+ def update!(**args)
263
+ end
264
+ end
265
+
266
+ # The authentication parameters to provide to the specified resource or URL that
267
+ # requires a username and password. Currently, only Basic HTTP authentication (
268
+ # https://tools.ietf.org/html/rfc7617) is supported in Uptime checks.
269
+ class BasicAuthentication
270
+ include Google::Apis::Core::Hashable
271
+
272
+ # The password to use when authenticating with the HTTP server.
273
+ # Corresponds to the JSON property `password`
274
+ # @return [String]
275
+ attr_accessor :password
276
+
277
+ # The username to use when authenticating with the HTTP server.
278
+ # Corresponds to the JSON property `username`
279
+ # @return [String]
280
+ attr_accessor :username
281
+
282
+ def initialize(**args)
283
+ update!(**args)
284
+ end
285
+
286
+ # Update properties of this object
287
+ def update!(**args)
288
+ @password = args[:password] if args.key?(:password)
289
+ @username = args[:username] if args.key?(:username)
290
+ end
291
+ end
292
+
293
+ # An SLI measuring performance on a well-known service type. Performance will be
294
+ # computed on the basis of pre-defined metrics. The type of the service_resource
295
+ # determines the metrics to use and the service_resource.labels and
296
+ # metric_labels are used to construct a monitoring filter to filter that metric
297
+ # down to just the data relevant to this service.
298
+ class BasicSli
299
+ include Google::Apis::Core::Hashable
300
+
301
+ # Future parameters for the availability SLI.
302
+ # Corresponds to the JSON property `availability`
303
+ # @return [Google::Apis::MonitoringV3::AvailabilityCriteria]
304
+ attr_accessor :availability
305
+
306
+ # Parameters for a latency threshold SLI.
307
+ # Corresponds to the JSON property `latency`
308
+ # @return [Google::Apis::MonitoringV3::LatencyCriteria]
309
+ attr_accessor :latency
310
+
311
+ # OPTIONAL: The set of locations to which this SLI is relevant. Telemetry from
312
+ # other locations will not be used to calculate performance for this SLI. If
313
+ # omitted, this SLI applies to all locations in which the Service has activity.
314
+ # For service types that don't support breaking down by location, setting this
315
+ # field will result in an error.
316
+ # Corresponds to the JSON property `location`
317
+ # @return [Array<String>]
318
+ attr_accessor :location
319
+
320
+ # OPTIONAL: The set of RPCs to which this SLI is relevant. Telemetry from other
321
+ # methods will not be used to calculate performance for this SLI. If omitted,
322
+ # this SLI applies to all the Service's methods. For service types that don't
323
+ # support breaking down by method, setting this field will result in an error.
324
+ # Corresponds to the JSON property `method`
325
+ # @return [Array<String>]
326
+ attr_accessor :method_prop
327
+
328
+ # OPTIONAL: The set of API versions to which this SLI is relevant. Telemetry
329
+ # from other API versions will not be used to calculate performance for this SLI.
330
+ # If omitted, this SLI applies to all API versions. For service types that don'
331
+ # t support breaking down by version, setting this field will result in an error.
332
+ # Corresponds to the JSON property `version`
333
+ # @return [Array<String>]
334
+ attr_accessor :version
335
+
336
+ def initialize(**args)
337
+ update!(**args)
338
+ end
339
+
340
+ # Update properties of this object
341
+ def update!(**args)
342
+ @availability = args[:availability] if args.key?(:availability)
343
+ @latency = args[:latency] if args.key?(:latency)
344
+ @location = args[:location] if args.key?(:location)
345
+ @method_prop = args[:method_prop] if args.key?(:method_prop)
346
+ @version = args[:version] if args.key?(:version)
347
+ end
348
+ end
349
+
350
+ # BucketOptions describes the bucket boundaries used to create a histogram for
351
+ # the distribution. The buckets can be in a linear sequence, an exponential
352
+ # sequence, or each bucket can be specified explicitly. BucketOptions does not
353
+ # include the number of values in each bucket.A bucket has an inclusive lower
354
+ # bound and exclusive upper bound for the values that are counted for that
355
+ # bucket. The upper bound of a bucket must be strictly greater than the lower
356
+ # bound. The sequence of N buckets for a distribution consists of an underflow
357
+ # bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an
358
+ # overflow bucket (number N - 1). The buckets are contiguous: the lower bound of
359
+ # bucket i (i > 0) is the same as the upper bound of bucket i - 1. The buckets
360
+ # span the whole range of finite values: lower bound of the underflow bucket is -
361
+ # infinity and the upper bound of the overflow bucket is +infinity. The finite
362
+ # buckets are so-called because both bounds are finite.
363
+ class BucketOptions
364
+ include Google::Apis::Core::Hashable
365
+
366
+ # Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (=
367
+ # N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1):
368
+ # boundsi Lower bound (1 <= i < N); boundsi - 1The bounds field must contain at
369
+ # least one element. If bounds has only one element, then there are no finite
370
+ # buckets, and that single element is the common boundary of the overflow and
371
+ # underflow buckets.
372
+ # Corresponds to the JSON property `explicitBuckets`
373
+ # @return [Google::Apis::MonitoringV3::Explicit]
374
+ attr_accessor :explicit_buckets
375
+
376
+ # Specifies an exponential sequence of buckets that have a width that is
377
+ # proportional to the value of the lower bound. Each bucket represents a
378
+ # constant relative uncertainty on a specific value in the bucket.There are
379
+ # num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:
380
+ # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i). Lower bound (1 <= i <
381
+ # N): scale * (growth_factor ^ (i - 1)).
382
+ # Corresponds to the JSON property `exponentialBuckets`
383
+ # @return [Google::Apis::MonitoringV3::Exponential]
384
+ attr_accessor :exponential_buckets
385
+
386
+ # Specifies a linear sequence of buckets that all have the same width (except
387
+ # overflow and underflow). Each bucket represents a constant absolute
388
+ # uncertainty on the specific value in the bucket.There are num_finite_buckets +
389
+ # 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-
390
+ # 1): offset + (width * i). Lower bound (1 <= i < N): offset + (width * (i - 1)).
391
+ # Corresponds to the JSON property `linearBuckets`
392
+ # @return [Google::Apis::MonitoringV3::Linear]
393
+ attr_accessor :linear_buckets
394
+
395
+ def initialize(**args)
396
+ update!(**args)
397
+ end
398
+
399
+ # Update properties of this object
400
+ def update!(**args)
401
+ @explicit_buckets = args[:explicit_buckets] if args.key?(:explicit_buckets)
402
+ @exponential_buckets = args[:exponential_buckets] if args.key?(:exponential_buckets)
403
+ @linear_buckets = args[:linear_buckets] if args.key?(:linear_buckets)
404
+ end
405
+ end
406
+
407
+ # Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.
408
+ class CloudEndpoints
409
+ include Google::Apis::Core::Hashable
410
+
411
+ # The name of the Cloud Endpoints service underlying this service. Corresponds
412
+ # to the service resource label in the api monitored resource: https://cloud.
413
+ # google.com/monitoring/api/resources#tag_api
414
+ # Corresponds to the JSON property `service`
415
+ # @return [String]
416
+ attr_accessor :service
417
+
418
+ def initialize(**args)
419
+ update!(**args)
420
+ end
421
+
422
+ # Update properties of this object
423
+ def update!(**args)
424
+ @service = args[:service] if args.key?(:service)
425
+ end
426
+ end
427
+
428
+ # Istio service scoped to a single Kubernetes cluster. Learn more at https://
429
+ # istio.io. Clusters running OSS Istio will have their services ingested as this
430
+ # type.
431
+ class ClusterIstio
432
+ include Google::Apis::Core::Hashable
433
+
434
+ # The name of the Kubernetes cluster in which this Istio service is defined.
435
+ # Corresponds to the cluster_name resource label in k8s_cluster resources.
436
+ # Corresponds to the JSON property `clusterName`
437
+ # @return [String]
438
+ attr_accessor :cluster_name
439
+
440
+ # The location of the Kubernetes cluster in which this Istio service is defined.
441
+ # Corresponds to the location resource label in k8s_cluster resources.
442
+ # Corresponds to the JSON property `location`
443
+ # @return [String]
444
+ attr_accessor :location
445
+
446
+ # The name of the Istio service underlying this service. Corresponds to the
447
+ # destination_service_name metric label in Istio metrics.
448
+ # Corresponds to the JSON property `serviceName`
449
+ # @return [String]
450
+ attr_accessor :service_name
451
+
452
+ # The namespace of the Istio service underlying this service. Corresponds to the
453
+ # destination_service_namespace metric label in Istio metrics.
454
+ # Corresponds to the JSON property `serviceNamespace`
455
+ # @return [String]
456
+ attr_accessor :service_namespace
457
+
458
+ def initialize(**args)
459
+ update!(**args)
460
+ end
461
+
462
+ # Update properties of this object
463
+ def update!(**args)
464
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
465
+ @location = args[:location] if args.key?(:location)
466
+ @service_name = args[:service_name] if args.key?(:service_name)
467
+ @service_namespace = args[:service_namespace] if args.key?(:service_namespace)
468
+ end
469
+ end
470
+
471
+ # A collection of data points sent from a collectd-based plugin. See the
472
+ # collectd documentation for more information.
473
+ class CollectdPayload
474
+ include Google::Apis::Core::Hashable
475
+
476
+ # The end time of the interval.
477
+ # Corresponds to the JSON property `endTime`
478
+ # @return [String]
479
+ attr_accessor :end_time
480
+
481
+ # The measurement metadata. Example: "process_id" -> 12345
482
+ # Corresponds to the JSON property `metadata`
483
+ # @return [Hash<String,Google::Apis::MonitoringV3::TypedValue>]
484
+ attr_accessor :metadata
485
+
486
+ # The name of the plugin. Example: "disk".
487
+ # Corresponds to the JSON property `plugin`
488
+ # @return [String]
489
+ attr_accessor :plugin
490
+
491
+ # The instance name of the plugin Example: "hdcl".
492
+ # Corresponds to the JSON property `pluginInstance`
493
+ # @return [String]
494
+ attr_accessor :plugin_instance
495
+
496
+ # The start time of the interval.
497
+ # Corresponds to the JSON property `startTime`
498
+ # @return [String]
499
+ attr_accessor :start_time
500
+
501
+ # The measurement type. Example: "memory".
502
+ # Corresponds to the JSON property `type`
503
+ # @return [String]
504
+ attr_accessor :type
505
+
506
+ # The measurement type instance. Example: "used".
507
+ # Corresponds to the JSON property `typeInstance`
508
+ # @return [String]
509
+ attr_accessor :type_instance
510
+
511
+ # The measured values during this time interval. Each value must have a
512
+ # different data_source_name.
513
+ # Corresponds to the JSON property `values`
514
+ # @return [Array<Google::Apis::MonitoringV3::CollectdValue>]
515
+ attr_accessor :values
516
+
517
+ def initialize(**args)
518
+ update!(**args)
519
+ end
520
+
521
+ # Update properties of this object
522
+ def update!(**args)
523
+ @end_time = args[:end_time] if args.key?(:end_time)
524
+ @metadata = args[:metadata] if args.key?(:metadata)
525
+ @plugin = args[:plugin] if args.key?(:plugin)
526
+ @plugin_instance = args[:plugin_instance] if args.key?(:plugin_instance)
527
+ @start_time = args[:start_time] if args.key?(:start_time)
528
+ @type = args[:type] if args.key?(:type)
529
+ @type_instance = args[:type_instance] if args.key?(:type_instance)
530
+ @values = args[:values] if args.key?(:values)
531
+ end
532
+ end
533
+
534
+ # Describes the error status for payloads that were not written.
535
+ class CollectdPayloadError
536
+ include Google::Apis::Core::Hashable
537
+
538
+ # The Status type defines a logical error model that is suitable for different
539
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
540
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
541
+ # error code, error message, and error details.You can find out more about this
542
+ # error model and how to work with it in the API Design Guide (https://cloud.
543
+ # google.com/apis/design/errors).
544
+ # Corresponds to the JSON property `error`
545
+ # @return [Google::Apis::MonitoringV3::Status]
546
+ attr_accessor :error
547
+
548
+ # The zero-based index in CreateCollectdTimeSeriesRequest.collectd_payloads.
549
+ # Corresponds to the JSON property `index`
550
+ # @return [Fixnum]
551
+ attr_accessor :index
552
+
553
+ # Records the error status for values that were not written due to an error.
554
+ # Failed payloads for which nothing is written will not include partial value
555
+ # errors.
556
+ # Corresponds to the JSON property `valueErrors`
557
+ # @return [Array<Google::Apis::MonitoringV3::CollectdValueError>]
558
+ attr_accessor :value_errors
559
+
560
+ def initialize(**args)
561
+ update!(**args)
562
+ end
563
+
564
+ # Update properties of this object
565
+ def update!(**args)
566
+ @error = args[:error] if args.key?(:error)
567
+ @index = args[:index] if args.key?(:index)
568
+ @value_errors = args[:value_errors] if args.key?(:value_errors)
569
+ end
570
+ end
571
+
572
+ # A single data point from a collectd-based plugin.
573
+ class CollectdValue
574
+ include Google::Apis::Core::Hashable
575
+
576
+ # The data source for the collectd value. For example, there are two data
577
+ # sources for network measurements: "rx" and "tx".
578
+ # Corresponds to the JSON property `dataSourceName`
579
+ # @return [String]
580
+ attr_accessor :data_source_name
581
+
582
+ # The type of measurement.
583
+ # Corresponds to the JSON property `dataSourceType`
584
+ # @return [String]
585
+ attr_accessor :data_source_type
586
+
587
+ # A single strongly-typed value.
588
+ # Corresponds to the JSON property `value`
589
+ # @return [Google::Apis::MonitoringV3::TypedValue]
590
+ attr_accessor :value
591
+
592
+ def initialize(**args)
593
+ update!(**args)
594
+ end
595
+
596
+ # Update properties of this object
597
+ def update!(**args)
598
+ @data_source_name = args[:data_source_name] if args.key?(:data_source_name)
599
+ @data_source_type = args[:data_source_type] if args.key?(:data_source_type)
600
+ @value = args[:value] if args.key?(:value)
601
+ end
602
+ end
603
+
604
+ # Describes the error status for values that were not written.
605
+ class CollectdValueError
606
+ include Google::Apis::Core::Hashable
607
+
608
+ # The Status type defines a logical error model that is suitable for different
609
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
610
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
611
+ # error code, error message, and error details.You can find out more about this
612
+ # error model and how to work with it in the API Design Guide (https://cloud.
613
+ # google.com/apis/design/errors).
614
+ # Corresponds to the JSON property `error`
615
+ # @return [Google::Apis::MonitoringV3::Status]
616
+ attr_accessor :error
617
+
618
+ # The zero-based index in CollectdPayload.values within the parent
619
+ # CreateCollectdTimeSeriesRequest.collectd_payloads.
620
+ # Corresponds to the JSON property `index`
621
+ # @return [Fixnum]
622
+ attr_accessor :index
623
+
624
+ def initialize(**args)
625
+ update!(**args)
626
+ end
627
+
628
+ # Update properties of this object
629
+ def update!(**args)
630
+ @error = args[:error] if args.key?(:error)
631
+ @index = args[:index] if args.key?(:index)
632
+ end
633
+ end
634
+
635
+ # A condition is a true/false test that determines when an alerting policy
636
+ # should open an incident. If a condition evaluates to true, it signifies that
637
+ # something is wrong.
638
+ class Condition
639
+ include Google::Apis::Core::Hashable
640
+
641
+ # A condition type that checks that monitored resources are reporting data. The
642
+ # configuration defines a metric and a set of monitored resources. The predicate
643
+ # is considered in violation when a time series for the specified metric of a
644
+ # monitored resource does not include any data in the specified duration.
645
+ # Corresponds to the JSON property `conditionAbsent`
646
+ # @return [Google::Apis::MonitoringV3::MetricAbsence]
647
+ attr_accessor :condition_absent
648
+
649
+ # A condition type that allows alert policies to be defined using Monitoring
650
+ # Query Language (https://cloud.google.com/monitoring/mql).
651
+ # Corresponds to the JSON property `conditionMonitoringQueryLanguage`
652
+ # @return [Google::Apis::MonitoringV3::MonitoringQueryLanguageCondition]
653
+ attr_accessor :condition_monitoring_query_language
654
+
655
+ # A condition type that compares a collection of time series against a threshold.
656
+ # Corresponds to the JSON property `conditionThreshold`
657
+ # @return [Google::Apis::MonitoringV3::MetricThreshold]
658
+ attr_accessor :condition_threshold
659
+
660
+ # A short name or phrase used to identify the condition in dashboards,
661
+ # notifications, and incidents. To avoid confusion, don't use the same display
662
+ # name for multiple conditions in the same policy.
663
+ # Corresponds to the JSON property `displayName`
664
+ # @return [String]
665
+ attr_accessor :display_name
666
+
667
+ # Required if the condition exists. The unique resource name for this condition.
668
+ # Its format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/
669
+ # conditions/[CONDITION_ID] [CONDITION_ID] is assigned by Stackdriver Monitoring
670
+ # when the condition is created as part of a new or updated alerting policy.When
671
+ # calling the alertPolicies.create method, do not include the name field in the
672
+ # conditions of the requested alerting policy. Stackdriver Monitoring creates
673
+ # the condition identifiers and includes them in the new policy.When calling the
674
+ # alertPolicies.update method to update a policy, including a condition name
675
+ # causes the existing condition to be updated. Conditions without names are
676
+ # added to the updated policy. Existing conditions are deleted if they are not
677
+ # updated.Best practice is to preserve [CONDITION_ID] if you make only small
678
+ # changes, such as those to condition thresholds, durations, or trigger values.
679
+ # Otherwise, treat the change as a new condition and let the existing condition
680
+ # be deleted.
681
+ # Corresponds to the JSON property `name`
682
+ # @return [String]
683
+ attr_accessor :name
684
+
685
+ def initialize(**args)
686
+ update!(**args)
687
+ end
688
+
689
+ # Update properties of this object
690
+ def update!(**args)
691
+ @condition_absent = args[:condition_absent] if args.key?(:condition_absent)
692
+ @condition_monitoring_query_language = args[:condition_monitoring_query_language] if args.key?(:condition_monitoring_query_language)
693
+ @condition_threshold = args[:condition_threshold] if args.key?(:condition_threshold)
694
+ @display_name = args[:display_name] if args.key?(:display_name)
695
+ @name = args[:name] if args.key?(:name)
696
+ end
697
+ end
698
+
699
+ # Optional. Used to perform content matching. This allows matching based on
700
+ # substrings and regular expressions, together with their negations. Only the
701
+ # first 4 MB of an HTTP or HTTPS check's response (and the first 1 MB of a TCP
702
+ # check's response) are examined for purposes of content matching.
703
+ class ContentMatcher
704
+ include Google::Apis::Core::Hashable
705
+
706
+ # String or regex content to match. Maximum 1024 bytes. An empty content string
707
+ # indicates no content matching is to be performed.
708
+ # Corresponds to the JSON property `content`
709
+ # @return [String]
710
+ attr_accessor :content
711
+
712
+ # The type of content matcher that will be applied to the server output,
713
+ # compared to the content string when the check is run.
714
+ # Corresponds to the JSON property `matcher`
715
+ # @return [String]
716
+ attr_accessor :matcher
717
+
718
+ def initialize(**args)
719
+ update!(**args)
720
+ end
721
+
722
+ # Update properties of this object
723
+ def update!(**args)
724
+ @content = args[:content] if args.key?(:content)
725
+ @matcher = args[:matcher] if args.key?(:matcher)
726
+ end
727
+ end
728
+
729
+ # The CreateCollectdTimeSeries request.
730
+ class CreateCollectdTimeSeriesRequest
731
+ include Google::Apis::Core::Hashable
732
+
733
+ # The collectd payloads representing the time series data. You must not include
734
+ # more than a single point for each time series, so no two payloads can have the
735
+ # same values for all of the fields plugin, plugin_instance, type, and
736
+ # type_instance.
737
+ # Corresponds to the JSON property `collectdPayloads`
738
+ # @return [Array<Google::Apis::MonitoringV3::CollectdPayload>]
739
+ attr_accessor :collectd_payloads
740
+
741
+ # The version of collectd that collected the data. Example: "5.3.0-192.el6".
742
+ # Corresponds to the JSON property `collectdVersion`
743
+ # @return [String]
744
+ attr_accessor :collectd_version
745
+
746
+ # An object representing a resource that can be used for monitoring, logging,
747
+ # billing, or other purposes. Examples include virtual machine instances,
748
+ # databases, and storage devices such as disks. The type field identifies a
749
+ # MonitoredResourceDescriptor object that describes the resource's schema.
750
+ # Information in the labels field identifies the actual resource and its
751
+ # attributes according to the schema. For example, a particular Compute Engine
752
+ # VM instance could be represented by the following object, because the
753
+ # MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "
754
+ # zone": ` "type": "gce_instance", "labels": ` "instance_id": "12345678901234", "
755
+ # zone": "us-central1-a" ``
756
+ # Corresponds to the JSON property `resource`
757
+ # @return [Google::Apis::MonitoringV3::MonitoredResource]
758
+ attr_accessor :resource
759
+
760
+ def initialize(**args)
761
+ update!(**args)
762
+ end
763
+
764
+ # Update properties of this object
765
+ def update!(**args)
766
+ @collectd_payloads = args[:collectd_payloads] if args.key?(:collectd_payloads)
767
+ @collectd_version = args[:collectd_version] if args.key?(:collectd_version)
768
+ @resource = args[:resource] if args.key?(:resource)
769
+ end
770
+ end
771
+
772
+ # The CreateCollectdTimeSeries response.
773
+ class CreateCollectdTimeSeriesResponse
774
+ include Google::Apis::Core::Hashable
775
+
776
+ # Records the error status for points that were not written due to an error in
777
+ # the request.Failed requests for which nothing is written will return an error
778
+ # response instead. Requests where data points were rejected by the backend will
779
+ # set summary instead.
780
+ # Corresponds to the JSON property `payloadErrors`
781
+ # @return [Array<Google::Apis::MonitoringV3::CollectdPayloadError>]
782
+ attr_accessor :payload_errors
783
+
784
+ # Summary of the result of a failed request to write data to a time series.
785
+ # Corresponds to the JSON property `summary`
786
+ # @return [Google::Apis::MonitoringV3::CreateTimeSeriesSummary]
787
+ attr_accessor :summary
788
+
789
+ def initialize(**args)
790
+ update!(**args)
791
+ end
792
+
793
+ # Update properties of this object
794
+ def update!(**args)
795
+ @payload_errors = args[:payload_errors] if args.key?(:payload_errors)
796
+ @summary = args[:summary] if args.key?(:summary)
797
+ end
798
+ end
799
+
800
+ # The CreateTimeSeries request.
801
+ class CreateTimeSeriesRequest
802
+ include Google::Apis::Core::Hashable
803
+
804
+ # Required. The new data to be added to a list of time series. Adds at most one
805
+ # data point to each of several time series. The new data point must be more
806
+ # recent than any other point in its time series. Each TimeSeries value must
807
+ # fully specify a unique time series by supplying all label values for the
808
+ # metric and the monitored resource.The maximum number of TimeSeries objects per
809
+ # Create request is 200.
810
+ # Corresponds to the JSON property `timeSeries`
811
+ # @return [Array<Google::Apis::MonitoringV3::TimeSeries>]
812
+ attr_accessor :time_series
813
+
814
+ def initialize(**args)
815
+ update!(**args)
816
+ end
817
+
818
+ # Update properties of this object
819
+ def update!(**args)
820
+ @time_series = args[:time_series] if args.key?(:time_series)
821
+ end
822
+ end
823
+
824
+ # Summary of the result of a failed request to write data to a time series.
825
+ class CreateTimeSeriesSummary
826
+ include Google::Apis::Core::Hashable
827
+
828
+ # The number of points that failed to be written. Order is not guaranteed.
829
+ # Corresponds to the JSON property `errors`
830
+ # @return [Array<Google::Apis::MonitoringV3::Error>]
831
+ attr_accessor :errors
832
+
833
+ # The number of points that were successfully written.
834
+ # Corresponds to the JSON property `successPointCount`
835
+ # @return [Fixnum]
836
+ attr_accessor :success_point_count
837
+
838
+ # The number of points in the request.
839
+ # Corresponds to the JSON property `totalPointCount`
840
+ # @return [Fixnum]
841
+ attr_accessor :total_point_count
842
+
843
+ def initialize(**args)
844
+ update!(**args)
845
+ end
846
+
847
+ # Update properties of this object
848
+ def update!(**args)
849
+ @errors = args[:errors] if args.key?(:errors)
850
+ @success_point_count = args[:success_point_count] if args.key?(:success_point_count)
851
+ @total_point_count = args[:total_point_count] if args.key?(:total_point_count)
852
+ end
853
+ end
854
+
855
+ # Custom view of service telemetry. Currently a place-holder pending final
856
+ # design.
857
+ class Custom
858
+ include Google::Apis::Core::Hashable
859
+
860
+ def initialize(**args)
861
+ update!(**args)
862
+ end
863
+
864
+ # Update properties of this object
865
+ def update!(**args)
866
+ end
867
+ end
868
+
869
+ # Distribution contains summary statistics for a population of values. It
870
+ # optionally contains a histogram representing the distribution of those values
871
+ # across a set of buckets.The summary statistics are the count, mean, sum of the
872
+ # squared deviation from the mean, the minimum, and the maximum of the set of
873
+ # population of values. The histogram is based on a sequence of buckets and
874
+ # gives a count of values that fall into each bucket. The boundaries of the
875
+ # buckets are given either explicitly or by formulas for buckets of fixed or
876
+ # exponentially increasing widths.Although it is not forbidden, it is generally
877
+ # a bad idea to include non-finite values (infinities or NaNs) in the population
878
+ # of values, as this will render the mean and sum_of_squared_deviation fields
879
+ # meaningless.
880
+ class Distribution
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # Required in the Cloud Monitoring API v3. The values for each bucket specified
884
+ # in bucket_options. The sum of the values in bucketCounts must equal the value
885
+ # in the count field of the Distribution object. The order of the bucket counts
886
+ # follows the numbering schemes described for the three bucket types. The
887
+ # underflow bucket has number 0; the finite buckets, if any, have numbers 1
888
+ # through N-2; and the overflow bucket has number N-1. The size of bucket_counts
889
+ # must not be greater than N. If the size is less than N, then the remaining
890
+ # buckets are assigned values of zero.
891
+ # Corresponds to the JSON property `bucketCounts`
892
+ # @return [Array<Fixnum>]
893
+ attr_accessor :bucket_counts
894
+
895
+ # BucketOptions describes the bucket boundaries used to create a histogram for
896
+ # the distribution. The buckets can be in a linear sequence, an exponential
897
+ # sequence, or each bucket can be specified explicitly. BucketOptions does not
898
+ # include the number of values in each bucket.A bucket has an inclusive lower
899
+ # bound and exclusive upper bound for the values that are counted for that
900
+ # bucket. The upper bound of a bucket must be strictly greater than the lower
901
+ # bound. The sequence of N buckets for a distribution consists of an underflow
902
+ # bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an
903
+ # overflow bucket (number N - 1). The buckets are contiguous: the lower bound of
904
+ # bucket i (i > 0) is the same as the upper bound of bucket i - 1. The buckets
905
+ # span the whole range of finite values: lower bound of the underflow bucket is -
906
+ # infinity and the upper bound of the overflow bucket is +infinity. The finite
907
+ # buckets are so-called because both bounds are finite.
908
+ # Corresponds to the JSON property `bucketOptions`
909
+ # @return [Google::Apis::MonitoringV3::BucketOptions]
910
+ attr_accessor :bucket_options
911
+
912
+ # The number of values in the population. Must be non-negative. This value must
913
+ # equal the sum of the values in bucket_counts if a histogram is provided.
914
+ # Corresponds to the JSON property `count`
915
+ # @return [Fixnum]
916
+ attr_accessor :count
917
+
918
+ # Must be in increasing order of value field.
919
+ # Corresponds to the JSON property `exemplars`
920
+ # @return [Array<Google::Apis::MonitoringV3::Exemplar>]
921
+ attr_accessor :exemplars
922
+
923
+ # The arithmetic mean of the values in the population. If count is zero then
924
+ # this field must be zero.
925
+ # Corresponds to the JSON property `mean`
926
+ # @return [Float]
927
+ attr_accessor :mean
928
+
929
+ # The range of the population values.
930
+ # Corresponds to the JSON property `range`
931
+ # @return [Google::Apis::MonitoringV3::Range]
932
+ attr_accessor :range
933
+
934
+ # The sum of squared deviations from the mean of the values in the population.
935
+ # For values x_i this is: Sum[i=1..n]((x_i - mean)^2) Knuth, "The Art of
936
+ # Computer Programming", Vol. 2, page 232, 3rd edition describes Welford's
937
+ # method for accumulating this sum in one pass.If count is zero then this field
938
+ # must be zero.
939
+ # Corresponds to the JSON property `sumOfSquaredDeviation`
940
+ # @return [Float]
941
+ attr_accessor :sum_of_squared_deviation
942
+
943
+ def initialize(**args)
944
+ update!(**args)
945
+ end
946
+
947
+ # Update properties of this object
948
+ def update!(**args)
949
+ @bucket_counts = args[:bucket_counts] if args.key?(:bucket_counts)
950
+ @bucket_options = args[:bucket_options] if args.key?(:bucket_options)
951
+ @count = args[:count] if args.key?(:count)
952
+ @exemplars = args[:exemplars] if args.key?(:exemplars)
953
+ @mean = args[:mean] if args.key?(:mean)
954
+ @range = args[:range] if args.key?(:range)
955
+ @sum_of_squared_deviation = args[:sum_of_squared_deviation] if args.key?(:sum_of_squared_deviation)
956
+ end
957
+ end
958
+
959
+ # A DistributionCut defines a TimeSeries and thresholds used for measuring good
960
+ # service and total service. The TimeSeries must have ValueType = DISTRIBUTION
961
+ # and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service
962
+ # will be the count of values x in the Distribution such that range.min <= x <
963
+ # range.max.
964
+ class DistributionCut
965
+ include Google::Apis::Core::Hashable
966
+
967
+ # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters)
968
+ # specifying a TimeSeries aggregating values. Must have ValueType = DISTRIBUTION
969
+ # and MetricKind = DELTA or MetricKind = CUMULATIVE.
970
+ # Corresponds to the JSON property `distributionFilter`
971
+ # @return [String]
972
+ attr_accessor :distribution_filter
973
+
974
+ # Range of numerical values, inclusive of min and exclusive of max. If the open
975
+ # range "< range.max" is desired, set range.min = -infinity. If the open range ">
976
+ # = range.min" is desired, set range.max = infinity.
977
+ # Corresponds to the JSON property `range`
978
+ # @return [Google::Apis::MonitoringV3::GoogleMonitoringV3Range]
979
+ attr_accessor :range
980
+
981
+ def initialize(**args)
982
+ update!(**args)
983
+ end
984
+
985
+ # Update properties of this object
986
+ def update!(**args)
987
+ @distribution_filter = args[:distribution_filter] if args.key?(:distribution_filter)
988
+ @range = args[:range] if args.key?(:range)
989
+ end
990
+ end
991
+
992
+ # A content string and a MIME type that describes the content string's format.
993
+ class Documentation
994
+ include Google::Apis::Core::Hashable
995
+
996
+ # The text of the documentation, interpreted according to mime_type. The content
997
+ # may not exceed 8,192 Unicode characters and may not exceed more than 10,240
998
+ # bytes when encoded in UTF-8 format, whichever is smaller.
999
+ # Corresponds to the JSON property `content`
1000
+ # @return [String]
1001
+ attr_accessor :content
1002
+
1003
+ # The format of the content field. Presently, only the value "text/markdown" is
1004
+ # supported. See Markdown (https://en.wikipedia.org/wiki/Markdown) for more
1005
+ # information.
1006
+ # Corresponds to the JSON property `mimeType`
1007
+ # @return [String]
1008
+ attr_accessor :mime_type
1009
+
1010
+ def initialize(**args)
1011
+ update!(**args)
1012
+ end
1013
+
1014
+ # Update properties of this object
1015
+ def update!(**args)
1016
+ @content = args[:content] if args.key?(:content)
1017
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
1018
+ end
1019
+ end
1020
+
1021
+ # A set of (label, value) pairs that were removed from a Distribution time
1022
+ # series during aggregation and then added as an attachment to a Distribution.
1023
+ # Exemplar.The full label set for the exemplars is constructed by using the
1024
+ # dropped pairs in combination with the label values that remain on the
1025
+ # aggregated Distribution time series. The constructed full label set can be
1026
+ # used to identify the specific entity, such as the instance or job, which might
1027
+ # be contributing to a long-tail. However, with dropped labels, the storage
1028
+ # requirements are reduced because only the aggregated distribution values for a
1029
+ # large group of time series are stored.Note that there are no guarantees on
1030
+ # ordering of the labels from exemplar-to-exemplar and from distribution-to-
1031
+ # distribution in the same stream, and there may be duplicates. It is up to
1032
+ # clients to resolve any ambiguities.
1033
+ class DroppedLabels
1034
+ include Google::Apis::Core::Hashable
1035
+
1036
+ # Map from label to its value, for all labels dropped in any aggregation.
1037
+ # Corresponds to the JSON property `label`
1038
+ # @return [Hash<String,String>]
1039
+ attr_accessor :label
1040
+
1041
+ def initialize(**args)
1042
+ update!(**args)
1043
+ end
1044
+
1045
+ # Update properties of this object
1046
+ def update!(**args)
1047
+ @label = args[:label] if args.key?(:label)
1048
+ end
1049
+ end
1050
+
1051
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1052
+ # messages in your APIs. A typical example is to use it as the request or the
1053
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1054
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
1055
+ # Empty is empty JSON object ``.
1056
+ class Empty
1057
+ include Google::Apis::Core::Hashable
1058
+
1059
+ def initialize(**args)
1060
+ update!(**args)
1061
+ end
1062
+
1063
+ # Update properties of this object
1064
+ def update!(**args)
1065
+ end
1066
+ end
1067
+
1068
+ # Detailed information about an error category.
1069
+ class Error
1070
+ include Google::Apis::Core::Hashable
1071
+
1072
+ # The number of points that couldn't be written because of status.
1073
+ # Corresponds to the JSON property `pointCount`
1074
+ # @return [Fixnum]
1075
+ attr_accessor :point_count
1076
+
1077
+ # The Status type defines a logical error model that is suitable for different
1078
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
1079
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
1080
+ # error code, error message, and error details.You can find out more about this
1081
+ # error model and how to work with it in the API Design Guide (https://cloud.
1082
+ # google.com/apis/design/errors).
1083
+ # Corresponds to the JSON property `status`
1084
+ # @return [Google::Apis::MonitoringV3::Status]
1085
+ attr_accessor :status
1086
+
1087
+ def initialize(**args)
1088
+ update!(**args)
1089
+ end
1090
+
1091
+ # Update properties of this object
1092
+ def update!(**args)
1093
+ @point_count = args[:point_count] if args.key?(:point_count)
1094
+ @status = args[:status] if args.key?(:status)
1095
+ end
1096
+ end
1097
+
1098
+ # Exemplars are example points that may be used to annotate aggregated
1099
+ # distribution values. They are metadata that gives information about a
1100
+ # particular value added to a Distribution bucket, such as a trace ID that was
1101
+ # active when a value was added. They may contain further information, such as a
1102
+ # example values and timestamps, origin, etc.
1103
+ class Exemplar
1104
+ include Google::Apis::Core::Hashable
1105
+
1106
+ # Contextual information about the example value. Examples are:Trace: type.
1107
+ # googleapis.com/google.monitoring.v3.SpanContextLiteral string: type.googleapis.
1108
+ # com/google.protobuf.StringValueLabels dropped during aggregation: type.
1109
+ # googleapis.com/google.monitoring.v3.DroppedLabelsThere may be only a single
1110
+ # attachment of any given message type in a single exemplar, and this is
1111
+ # enforced by the system.
1112
+ # Corresponds to the JSON property `attachments`
1113
+ # @return [Array<Hash<String,Object>>]
1114
+ attr_accessor :attachments
1115
+
1116
+ # The observation (sampling) time of the above value.
1117
+ # Corresponds to the JSON property `timestamp`
1118
+ # @return [String]
1119
+ attr_accessor :timestamp
1120
+
1121
+ # Value of the exemplar point. This value determines to which bucket the
1122
+ # exemplar belongs.
1123
+ # Corresponds to the JSON property `value`
1124
+ # @return [Float]
1125
+ attr_accessor :value
1126
+
1127
+ def initialize(**args)
1128
+ update!(**args)
1129
+ end
1130
+
1131
+ # Update properties of this object
1132
+ def update!(**args)
1133
+ @attachments = args[:attachments] if args.key?(:attachments)
1134
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
1135
+ @value = args[:value] if args.key?(:value)
1136
+ end
1137
+ end
1138
+
1139
+ # Specifies a set of buckets with arbitrary widths.There are size(bounds) + 1 (=
1140
+ # N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-1):
1141
+ # boundsi Lower bound (1 <= i < N); boundsi - 1The bounds field must contain at
1142
+ # least one element. If bounds has only one element, then there are no finite
1143
+ # buckets, and that single element is the common boundary of the overflow and
1144
+ # underflow buckets.
1145
+ class Explicit
1146
+ include Google::Apis::Core::Hashable
1147
+
1148
+ # The values must be monotonically increasing.
1149
+ # Corresponds to the JSON property `bounds`
1150
+ # @return [Array<Float>]
1151
+ attr_accessor :bounds
1152
+
1153
+ def initialize(**args)
1154
+ update!(**args)
1155
+ end
1156
+
1157
+ # Update properties of this object
1158
+ def update!(**args)
1159
+ @bounds = args[:bounds] if args.key?(:bounds)
1160
+ end
1161
+ end
1162
+
1163
+ # Specifies an exponential sequence of buckets that have a width that is
1164
+ # proportional to the value of the lower bound. Each bucket represents a
1165
+ # constant relative uncertainty on a specific value in the bucket.There are
1166
+ # num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:
1167
+ # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i). Lower bound (1 <= i <
1168
+ # N): scale * (growth_factor ^ (i - 1)).
1169
+ class Exponential
1170
+ include Google::Apis::Core::Hashable
1171
+
1172
+ # Must be greater than 1.
1173
+ # Corresponds to the JSON property `growthFactor`
1174
+ # @return [Float]
1175
+ attr_accessor :growth_factor
1176
+
1177
+ # Must be greater than 0.
1178
+ # Corresponds to the JSON property `numFiniteBuckets`
1179
+ # @return [Fixnum]
1180
+ attr_accessor :num_finite_buckets
1181
+
1182
+ # Must be greater than 0.
1183
+ # Corresponds to the JSON property `scale`
1184
+ # @return [Float]
1185
+ attr_accessor :scale
1186
+
1187
+ def initialize(**args)
1188
+ update!(**args)
1189
+ end
1190
+
1191
+ # Update properties of this object
1192
+ def update!(**args)
1193
+ @growth_factor = args[:growth_factor] if args.key?(:growth_factor)
1194
+ @num_finite_buckets = args[:num_finite_buckets] if args.key?(:num_finite_buckets)
1195
+ @scale = args[:scale] if args.key?(:scale)
1196
+ end
1197
+ end
1198
+
1199
+ # A single field of a message type.
1200
+ class Field
1201
+ include Google::Apis::Core::Hashable
1202
+
1203
+ # The field cardinality.
1204
+ # Corresponds to the JSON property `cardinality`
1205
+ # @return [String]
1206
+ attr_accessor :cardinality
1207
+
1208
+ # The string value of the default value of this field. Proto2 syntax only.
1209
+ # Corresponds to the JSON property `defaultValue`
1210
+ # @return [String]
1211
+ attr_accessor :default_value
1212
+
1213
+ # The field JSON name.
1214
+ # Corresponds to the JSON property `jsonName`
1215
+ # @return [String]
1216
+ attr_accessor :json_name
1217
+
1218
+ # The field type.
1219
+ # Corresponds to the JSON property `kind`
1220
+ # @return [String]
1221
+ attr_accessor :kind
1222
+
1223
+ # The field name.
1224
+ # Corresponds to the JSON property `name`
1225
+ # @return [String]
1226
+ attr_accessor :name
1227
+
1228
+ # The field number.
1229
+ # Corresponds to the JSON property `number`
1230
+ # @return [Fixnum]
1231
+ attr_accessor :number
1232
+
1233
+ # The index of the field type in Type.oneofs, for message or enumeration types.
1234
+ # The first type has index 1; zero means the type is not in the list.
1235
+ # Corresponds to the JSON property `oneofIndex`
1236
+ # @return [Fixnum]
1237
+ attr_accessor :oneof_index
1238
+
1239
+ # The protocol buffer options.
1240
+ # Corresponds to the JSON property `options`
1241
+ # @return [Array<Google::Apis::MonitoringV3::Option>]
1242
+ attr_accessor :options
1243
+
1244
+ # Whether to use alternative packed wire representation.
1245
+ # Corresponds to the JSON property `packed`
1246
+ # @return [Boolean]
1247
+ attr_accessor :packed
1248
+ alias_method :packed?, :packed
1249
+
1250
+ # The field type URL, without the scheme, for message or enumeration types.
1251
+ # Example: "type.googleapis.com/google.protobuf.Timestamp".
1252
+ # Corresponds to the JSON property `typeUrl`
1253
+ # @return [String]
1254
+ attr_accessor :type_url
1255
+
1256
+ def initialize(**args)
1257
+ update!(**args)
1258
+ end
1259
+
1260
+ # Update properties of this object
1261
+ def update!(**args)
1262
+ @cardinality = args[:cardinality] if args.key?(:cardinality)
1263
+ @default_value = args[:default_value] if args.key?(:default_value)
1264
+ @json_name = args[:json_name] if args.key?(:json_name)
1265
+ @kind = args[:kind] if args.key?(:kind)
1266
+ @name = args[:name] if args.key?(:name)
1267
+ @number = args[:number] if args.key?(:number)
1268
+ @oneof_index = args[:oneof_index] if args.key?(:oneof_index)
1269
+ @options = args[:options] if args.key?(:options)
1270
+ @packed = args[:packed] if args.key?(:packed)
1271
+ @type_url = args[:type_url] if args.key?(:type_url)
1272
+ end
1273
+ end
1274
+
1275
+ # The GetNotificationChannelVerificationCode request.
1276
+ class GetNotificationChannelVerificationCodeRequest
1277
+ include Google::Apis::Core::Hashable
1278
+
1279
+ # The desired expiration time. If specified, the API will guarantee that the
1280
+ # returned code will not be valid after the specified timestamp; however, the
1281
+ # API cannot guarantee that the returned code will be valid for at least as long
1282
+ # as the requested time (the API puts an upper bound on the amount of time for
1283
+ # which a code may be valid). If omitted, a default expiration will be used,
1284
+ # which may be less than the max permissible expiration (so specifying an
1285
+ # expiration may extend the code's lifetime over omitting an expiration, even
1286
+ # though the API does impose an upper limit on the maximum expiration that is
1287
+ # permitted).
1288
+ # Corresponds to the JSON property `expireTime`
1289
+ # @return [String]
1290
+ attr_accessor :expire_time
1291
+
1292
+ def initialize(**args)
1293
+ update!(**args)
1294
+ end
1295
+
1296
+ # Update properties of this object
1297
+ def update!(**args)
1298
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1299
+ end
1300
+ end
1301
+
1302
+ # The GetNotificationChannelVerificationCode request.
1303
+ class GetNotificationChannelVerificationCodeResponse
1304
+ include Google::Apis::Core::Hashable
1305
+
1306
+ # The verification code, which may be used to verify other channels that have an
1307
+ # equivalent identity (i.e. other channels of the same type with the same
1308
+ # fingerprint such as other email channels with the same email address or other
1309
+ # sms channels with the same number).
1310
+ # Corresponds to the JSON property `code`
1311
+ # @return [String]
1312
+ attr_accessor :code
1313
+
1314
+ # The expiration time associated with the code that was returned. If an
1315
+ # expiration was provided in the request, this is the minimum of the requested
1316
+ # expiration in the request and the max permitted expiration.
1317
+ # Corresponds to the JSON property `expireTime`
1318
+ # @return [String]
1319
+ attr_accessor :expire_time
1320
+
1321
+ def initialize(**args)
1322
+ update!(**args)
1323
+ end
1324
+
1325
+ # Update properties of this object
1326
+ def update!(**args)
1327
+ @code = args[:code] if args.key?(:code)
1328
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1329
+ end
1330
+ end
1331
+
1332
+ # Range of numerical values, inclusive of min and exclusive of max. If the open
1333
+ # range "< range.max" is desired, set range.min = -infinity. If the open range ">
1334
+ # = range.min" is desired, set range.max = infinity.
1335
+ class GoogleMonitoringV3Range
1336
+ include Google::Apis::Core::Hashable
1337
+
1338
+ # Range maximum.
1339
+ # Corresponds to the JSON property `max`
1340
+ # @return [Float]
1341
+ attr_accessor :max
1342
+
1343
+ # Range minimum.
1344
+ # Corresponds to the JSON property `min`
1345
+ # @return [Float]
1346
+ attr_accessor :min
1347
+
1348
+ def initialize(**args)
1349
+ update!(**args)
1350
+ end
1351
+
1352
+ # Update properties of this object
1353
+ def update!(**args)
1354
+ @max = args[:max] if args.key?(:max)
1355
+ @min = args[:min] if args.key?(:min)
1356
+ end
1357
+ end
1358
+
1359
+ # The description of a dynamic collection of monitored resources. Each group has
1360
+ # a filter that is matched against monitored resources and their associated
1361
+ # metadata. If a group's filter matches an available monitored resource, then
1362
+ # that resource is a member of that group. Groups can contain any number of
1363
+ # monitored resources, and each monitored resource can be a member of any number
1364
+ # of groups.Groups can be nested in parent-child hierarchies. The parentName
1365
+ # field identifies an optional parent for each group. If a group has a parent,
1366
+ # then the only monitored resources available to be matched by the group's
1367
+ # filter are the resources contained in the parent group. In other words, a
1368
+ # group contains the monitored resources that match its filter and the filters
1369
+ # of all the group's ancestors. A group without a parent can contain any
1370
+ # monitored resource.For example, consider an infrastructure running a set of
1371
+ # instances with two user-defined tags: "environment" and "role". A parent group
1372
+ # has a filter, environment="production". A child of that parent group has a
1373
+ # filter, role="transcoder". The parent group contains all instances in the
1374
+ # production environment, regardless of their roles. The child group contains
1375
+ # instances that have the transcoder role and are in the production environment.
1376
+ # The monitored resources contained in a group can change at any moment,
1377
+ # depending on what resources exist and what filters are associated with the
1378
+ # group and its ancestors.
1379
+ class Group
1380
+ include Google::Apis::Core::Hashable
1381
+
1382
+ # A user-assigned name for this group, used only for display purposes.
1383
+ # Corresponds to the JSON property `displayName`
1384
+ # @return [String]
1385
+ attr_accessor :display_name
1386
+
1387
+ # The filter used to determine which monitored resources belong to this group.
1388
+ # Corresponds to the JSON property `filter`
1389
+ # @return [String]
1390
+ attr_accessor :filter
1391
+
1392
+ # If true, the members of this group are considered to be a cluster. The system
1393
+ # can perform additional analysis on groups that are clusters.
1394
+ # Corresponds to the JSON property `isCluster`
1395
+ # @return [Boolean]
1396
+ attr_accessor :is_cluster
1397
+ alias_method :is_cluster?, :is_cluster
1398
+
1399
+ # Output only. The name of this group. The format is: projects/[
1400
+ # PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID] When creating a group, this field is
1401
+ # ignored and a new name is created consisting of the project specified in the
1402
+ # call to CreateGroup and a unique [GROUP_ID] that is generated automatically.
1403
+ # Corresponds to the JSON property `name`
1404
+ # @return [String]
1405
+ attr_accessor :name
1406
+
1407
+ # The name of the group's parent, if it has one. The format is: projects/[
1408
+ # PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID] For groups with no parent, parent_name
1409
+ # is the empty string, "".
1410
+ # Corresponds to the JSON property `parentName`
1411
+ # @return [String]
1412
+ attr_accessor :parent_name
1413
+
1414
+ def initialize(**args)
1415
+ update!(**args)
1416
+ end
1417
+
1418
+ # Update properties of this object
1419
+ def update!(**args)
1420
+ @display_name = args[:display_name] if args.key?(:display_name)
1421
+ @filter = args[:filter] if args.key?(:filter)
1422
+ @is_cluster = args[:is_cluster] if args.key?(:is_cluster)
1423
+ @name = args[:name] if args.key?(:name)
1424
+ @parent_name = args[:parent_name] if args.key?(:parent_name)
1425
+ end
1426
+ end
1427
+
1428
+ # Information involved in an HTTP/HTTPS Uptime check request.
1429
+ class HttpCheck
1430
+ include Google::Apis::Core::Hashable
1431
+
1432
+ # The authentication parameters to provide to the specified resource or URL that
1433
+ # requires a username and password. Currently, only Basic HTTP authentication (
1434
+ # https://tools.ietf.org/html/rfc7617) is supported in Uptime checks.
1435
+ # Corresponds to the JSON property `authInfo`
1436
+ # @return [Google::Apis::MonitoringV3::BasicAuthentication]
1437
+ attr_accessor :auth_info
1438
+
1439
+ # The request body associated with the HTTP POST request. If content_type is
1440
+ # URL_ENCODED, the body passed in must be URL-encoded. Users can provide a
1441
+ # Content-Length header via the headers field or the API will do so. If the
1442
+ # request_method is GET and body is not empty, the API will return an error. The
1443
+ # maximum byte size is 1 megabyte. Note: As with all bytes fields, JSON
1444
+ # representations are base64 encoded. e.g.: "foo=bar" in URL-encoded form is "
1445
+ # foo%3Dbar" and in base64 encoding is "Zm9vJTI1M0RiYXI=".
1446
+ # Corresponds to the JSON property `body`
1447
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1448
+ # @return [String]
1449
+ attr_accessor :body
1450
+
1451
+ # The content type header to use for the check. The following configurations
1452
+ # result in errors: 1. Content type is specified in both the headers field and
1453
+ # the content_type field. 2. Request method is GET and content_type is not
1454
+ # TYPE_UNSPECIFIED 3. Request method is POST and content_type is
1455
+ # TYPE_UNSPECIFIED. 4. Request method is POST and a "Content-Type" header is
1456
+ # provided via headers field. The content_type field should be used instead.
1457
+ # Corresponds to the JSON property `contentType`
1458
+ # @return [String]
1459
+ attr_accessor :content_type
1460
+
1461
+ # The list of headers to send as part of the Uptime check request. If two
1462
+ # headers have the same key and different values, they should be entered as a
1463
+ # single header, with the value being a comma-separated list of all the desired
1464
+ # values as described at https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page
1465
+ # 31). Entering two separate headers with the same key in a Create call will
1466
+ # cause the first to be overwritten by the second. The maximum number of headers
1467
+ # allowed is 100.
1468
+ # Corresponds to the JSON property `headers`
1469
+ # @return [Hash<String,String>]
1470
+ attr_accessor :headers
1471
+
1472
+ # Boolean specifying whether to encrypt the header information. Encryption
1473
+ # should be specified for any headers related to authentication that you do not
1474
+ # wish to be seen when retrieving the configuration. The server will be
1475
+ # responsible for encrypting the headers. On Get/List calls, if mask_headers is
1476
+ # set to true then the headers will be obscured with ******.
1477
+ # Corresponds to the JSON property `maskHeaders`
1478
+ # @return [Boolean]
1479
+ attr_accessor :mask_headers
1480
+ alias_method :mask_headers?, :mask_headers
1481
+
1482
+ # Optional (defaults to "/"). The path to the page against which to run the
1483
+ # check. Will be combined with the host (specified within the monitored_resource)
1484
+ # and port to construct the full URL. If the provided path does not begin with "
1485
+ # /", a "/" will be prepended automatically.
1486
+ # Corresponds to the JSON property `path`
1487
+ # @return [String]
1488
+ attr_accessor :path
1489
+
1490
+ # Optional (defaults to 80 when use_ssl is false, and 443 when use_ssl is true).
1491
+ # The TCP port on the HTTP server against which to run the check. Will be
1492
+ # combined with host (specified within the monitored_resource) and path to
1493
+ # construct the full URL.
1494
+ # Corresponds to the JSON property `port`
1495
+ # @return [Fixnum]
1496
+ attr_accessor :port
1497
+
1498
+ # The HTTP request method to use for the check. If set to METHOD_UNSPECIFIED
1499
+ # then request_method defaults to GET.
1500
+ # Corresponds to the JSON property `requestMethod`
1501
+ # @return [String]
1502
+ attr_accessor :request_method
1503
+
1504
+ # If true, use HTTPS instead of HTTP to run the check.
1505
+ # Corresponds to the JSON property `useSsl`
1506
+ # @return [Boolean]
1507
+ attr_accessor :use_ssl
1508
+ alias_method :use_ssl?, :use_ssl
1509
+
1510
+ # Boolean specifying whether to include SSL certificate validation as a part of
1511
+ # the Uptime check. Only applies to checks where monitored_resource is set to
1512
+ # uptime_url. If use_ssl is false, setting validate_ssl to true has no effect.
1513
+ # Corresponds to the JSON property `validateSsl`
1514
+ # @return [Boolean]
1515
+ attr_accessor :validate_ssl
1516
+ alias_method :validate_ssl?, :validate_ssl
1517
+
1518
+ def initialize(**args)
1519
+ update!(**args)
1520
+ end
1521
+
1522
+ # Update properties of this object
1523
+ def update!(**args)
1524
+ @auth_info = args[:auth_info] if args.key?(:auth_info)
1525
+ @body = args[:body] if args.key?(:body)
1526
+ @content_type = args[:content_type] if args.key?(:content_type)
1527
+ @headers = args[:headers] if args.key?(:headers)
1528
+ @mask_headers = args[:mask_headers] if args.key?(:mask_headers)
1529
+ @path = args[:path] if args.key?(:path)
1530
+ @port = args[:port] if args.key?(:port)
1531
+ @request_method = args[:request_method] if args.key?(:request_method)
1532
+ @use_ssl = args[:use_ssl] if args.key?(:use_ssl)
1533
+ @validate_ssl = args[:validate_ssl] if args.key?(:validate_ssl)
1534
+ end
1535
+ end
1536
+
1537
+ # An internal checker allows Uptime checks to run on private/internal GCP
1538
+ # resources.
1539
+ class InternalChecker
1540
+ include Google::Apis::Core::Hashable
1541
+
1542
+ # The checker's human-readable name. The display name should be unique within a
1543
+ # Stackdriver Workspace in order to make it easier to identify; however,
1544
+ # uniqueness is not enforced.
1545
+ # Corresponds to the JSON property `displayName`
1546
+ # @return [String]
1547
+ attr_accessor :display_name
1548
+
1549
+ # The GCP zone the Uptime check should egress from. Only respected for internal
1550
+ # Uptime checks, where internal_network is specified.
1551
+ # Corresponds to the JSON property `gcpZone`
1552
+ # @return [String]
1553
+ attr_accessor :gcp_zone
1554
+
1555
+ # A unique resource name for this InternalChecker. The format is: projects/[
1556
+ # PROJECT_ID_OR_NUMBER]/internalCheckers/[INTERNAL_CHECKER_ID] [
1557
+ # PROJECT_ID_OR_NUMBER] is the Stackdriver Workspace project for the Uptime
1558
+ # check config associated with the internal checker.
1559
+ # Corresponds to the JSON property `name`
1560
+ # @return [String]
1561
+ attr_accessor :name
1562
+
1563
+ # The GCP VPC network (https://cloud.google.com/vpc/docs/vpc) where the internal
1564
+ # resource lives (ex: "default").
1565
+ # Corresponds to the JSON property `network`
1566
+ # @return [String]
1567
+ attr_accessor :network
1568
+
1569
+ # The GCP project ID where the internal checker lives. Not necessary the same as
1570
+ # the Workspace project.
1571
+ # Corresponds to the JSON property `peerProjectId`
1572
+ # @return [String]
1573
+ attr_accessor :peer_project_id
1574
+
1575
+ # The current operational state of the internal checker.
1576
+ # Corresponds to the JSON property `state`
1577
+ # @return [String]
1578
+ attr_accessor :state
1579
+
1580
+ def initialize(**args)
1581
+ update!(**args)
1582
+ end
1583
+
1584
+ # Update properties of this object
1585
+ def update!(**args)
1586
+ @display_name = args[:display_name] if args.key?(:display_name)
1587
+ @gcp_zone = args[:gcp_zone] if args.key?(:gcp_zone)
1588
+ @name = args[:name] if args.key?(:name)
1589
+ @network = args[:network] if args.key?(:network)
1590
+ @peer_project_id = args[:peer_project_id] if args.key?(:peer_project_id)
1591
+ @state = args[:state] if args.key?(:state)
1592
+ end
1593
+ end
1594
+
1595
+ # A description of a label.
1596
+ class LabelDescriptor
1597
+ include Google::Apis::Core::Hashable
1598
+
1599
+ # A human-readable description for the label.
1600
+ # Corresponds to the JSON property `description`
1601
+ # @return [String]
1602
+ attr_accessor :description
1603
+
1604
+ # The key for this label. The key must meet the following criteria: Does not
1605
+ # exceed 100 characters. Matches the following regular expression: [a-zA-Z][a-zA-
1606
+ # Z0-9_]* The first character must be an upper- or lower-case letter. The
1607
+ # remaining characters must be letters, digits, or underscores.
1608
+ # Corresponds to the JSON property `key`
1609
+ # @return [String]
1610
+ attr_accessor :key
1611
+
1612
+ # The type of data that can be assigned to the label.
1613
+ # Corresponds to the JSON property `valueType`
1614
+ # @return [String]
1615
+ attr_accessor :value_type
1616
+
1617
+ def initialize(**args)
1618
+ update!(**args)
1619
+ end
1620
+
1621
+ # Update properties of this object
1622
+ def update!(**args)
1623
+ @description = args[:description] if args.key?(:description)
1624
+ @key = args[:key] if args.key?(:key)
1625
+ @value_type = args[:value_type] if args.key?(:value_type)
1626
+ end
1627
+ end
1628
+
1629
+ # A label value.
1630
+ class LabelValue
1631
+ include Google::Apis::Core::Hashable
1632
+
1633
+ # A bool label value.
1634
+ # Corresponds to the JSON property `boolValue`
1635
+ # @return [Boolean]
1636
+ attr_accessor :bool_value
1637
+ alias_method :bool_value?, :bool_value
1638
+
1639
+ # An int64 label value.
1640
+ # Corresponds to the JSON property `int64Value`
1641
+ # @return [Fixnum]
1642
+ attr_accessor :int64_value
1643
+
1644
+ # A string label value.
1645
+ # Corresponds to the JSON property `stringValue`
1646
+ # @return [String]
1647
+ attr_accessor :string_value
1648
+
1649
+ def initialize(**args)
1650
+ update!(**args)
1651
+ end
1652
+
1653
+ # Update properties of this object
1654
+ def update!(**args)
1655
+ @bool_value = args[:bool_value] if args.key?(:bool_value)
1656
+ @int64_value = args[:int64_value] if args.key?(:int64_value)
1657
+ @string_value = args[:string_value] if args.key?(:string_value)
1658
+ end
1659
+ end
1660
+
1661
+ # Parameters for a latency threshold SLI.
1662
+ class LatencyCriteria
1663
+ include Google::Apis::Core::Hashable
1664
+
1665
+ # Good service is defined to be the count of requests made to this service that
1666
+ # return in no more than threshold.
1667
+ # Corresponds to the JSON property `threshold`
1668
+ # @return [String]
1669
+ attr_accessor :threshold
1670
+
1671
+ def initialize(**args)
1672
+ update!(**args)
1673
+ end
1674
+
1675
+ # Update properties of this object
1676
+ def update!(**args)
1677
+ @threshold = args[:threshold] if args.key?(:threshold)
1678
+ end
1679
+ end
1680
+
1681
+ # Specifies a linear sequence of buckets that all have the same width (except
1682
+ # overflow and underflow). Each bucket represents a constant absolute
1683
+ # uncertainty on the specific value in the bucket.There are num_finite_buckets +
1684
+ # 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-
1685
+ # 1): offset + (width * i). Lower bound (1 <= i < N): offset + (width * (i - 1)).
1686
+ class Linear
1687
+ include Google::Apis::Core::Hashable
1688
+
1689
+ # Must be greater than 0.
1690
+ # Corresponds to the JSON property `numFiniteBuckets`
1691
+ # @return [Fixnum]
1692
+ attr_accessor :num_finite_buckets
1693
+
1694
+ # Lower bound of the first bucket.
1695
+ # Corresponds to the JSON property `offset`
1696
+ # @return [Float]
1697
+ attr_accessor :offset
1698
+
1699
+ # Must be greater than 0.
1700
+ # Corresponds to the JSON property `width`
1701
+ # @return [Float]
1702
+ attr_accessor :width
1703
+
1704
+ def initialize(**args)
1705
+ update!(**args)
1706
+ end
1707
+
1708
+ # Update properties of this object
1709
+ def update!(**args)
1710
+ @num_finite_buckets = args[:num_finite_buckets] if args.key?(:num_finite_buckets)
1711
+ @offset = args[:offset] if args.key?(:offset)
1712
+ @width = args[:width] if args.key?(:width)
1713
+ end
1714
+ end
1715
+
1716
+ # The protocol for the ListAlertPolicies response.
1717
+ class ListAlertPoliciesResponse
1718
+ include Google::Apis::Core::Hashable
1719
+
1720
+ # The returned alert policies.
1721
+ # Corresponds to the JSON property `alertPolicies`
1722
+ # @return [Array<Google::Apis::MonitoringV3::AlertPolicy>]
1723
+ attr_accessor :alert_policies
1724
+
1725
+ # If there might be more results than were returned, then this field is set to a
1726
+ # non-empty value. To see the additional results, use that value as page_token
1727
+ # in the next call to this method.
1728
+ # Corresponds to the JSON property `nextPageToken`
1729
+ # @return [String]
1730
+ attr_accessor :next_page_token
1731
+
1732
+ # The total number of alert policies in all pages. This number is only an
1733
+ # estimate, and may change in subsequent pages. https://aip.dev/158
1734
+ # Corresponds to the JSON property `totalSize`
1735
+ # @return [Fixnum]
1736
+ attr_accessor :total_size
1737
+
1738
+ def initialize(**args)
1739
+ update!(**args)
1740
+ end
1741
+
1742
+ # Update properties of this object
1743
+ def update!(**args)
1744
+ @alert_policies = args[:alert_policies] if args.key?(:alert_policies)
1745
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1746
+ @total_size = args[:total_size] if args.key?(:total_size)
1747
+ end
1748
+ end
1749
+
1750
+ # The ListGroupMembers response.
1751
+ class ListGroupMembersResponse
1752
+ include Google::Apis::Core::Hashable
1753
+
1754
+ # A set of monitored resources in the group.
1755
+ # Corresponds to the JSON property `members`
1756
+ # @return [Array<Google::Apis::MonitoringV3::MonitoredResource>]
1757
+ attr_accessor :members
1758
+
1759
+ # If there are more results than have been returned, then this field is set to a
1760
+ # non-empty value. To see the additional results, use that value as page_token
1761
+ # in the next call to this method.
1762
+ # Corresponds to the JSON property `nextPageToken`
1763
+ # @return [String]
1764
+ attr_accessor :next_page_token
1765
+
1766
+ # The total number of elements matching this request.
1767
+ # Corresponds to the JSON property `totalSize`
1768
+ # @return [Fixnum]
1769
+ attr_accessor :total_size
1770
+
1771
+ def initialize(**args)
1772
+ update!(**args)
1773
+ end
1774
+
1775
+ # Update properties of this object
1776
+ def update!(**args)
1777
+ @members = args[:members] if args.key?(:members)
1778
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1779
+ @total_size = args[:total_size] if args.key?(:total_size)
1780
+ end
1781
+ end
1782
+
1783
+ # The ListGroups response.
1784
+ class ListGroupsResponse
1785
+ include Google::Apis::Core::Hashable
1786
+
1787
+ # The groups that match the specified filters.
1788
+ # Corresponds to the JSON property `group`
1789
+ # @return [Array<Google::Apis::MonitoringV3::Group>]
1790
+ attr_accessor :group
1791
+
1792
+ # If there are more results than have been returned, then this field is set to a
1793
+ # non-empty value. To see the additional results, use that value as page_token
1794
+ # in the next call to this method.
1795
+ # Corresponds to the JSON property `nextPageToken`
1796
+ # @return [String]
1797
+ attr_accessor :next_page_token
1798
+
1799
+ def initialize(**args)
1800
+ update!(**args)
1801
+ end
1802
+
1803
+ # Update properties of this object
1804
+ def update!(**args)
1805
+ @group = args[:group] if args.key?(:group)
1806
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1807
+ end
1808
+ end
1809
+
1810
+ # The ListMetricDescriptors response.
1811
+ class ListMetricDescriptorsResponse
1812
+ include Google::Apis::Core::Hashable
1813
+
1814
+ # The metric descriptors that are available to the project and that match the
1815
+ # value of filter, if present.
1816
+ # Corresponds to the JSON property `metricDescriptors`
1817
+ # @return [Array<Google::Apis::MonitoringV3::MetricDescriptor>]
1818
+ attr_accessor :metric_descriptors
1819
+
1820
+ # If there are more results than have been returned, then this field is set to a
1821
+ # non-empty value. To see the additional results, use that value as page_token
1822
+ # in the next call to this method.
1823
+ # Corresponds to the JSON property `nextPageToken`
1824
+ # @return [String]
1825
+ attr_accessor :next_page_token
1826
+
1827
+ def initialize(**args)
1828
+ update!(**args)
1829
+ end
1830
+
1831
+ # Update properties of this object
1832
+ def update!(**args)
1833
+ @metric_descriptors = args[:metric_descriptors] if args.key?(:metric_descriptors)
1834
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1835
+ end
1836
+ end
1837
+
1838
+ # The ListMonitoredResourceDescriptors response.
1839
+ class ListMonitoredResourceDescriptorsResponse
1840
+ include Google::Apis::Core::Hashable
1841
+
1842
+ # If there are more results than have been returned, then this field is set to a
1843
+ # non-empty value. To see the additional results, use that value as page_token
1844
+ # in the next call to this method.
1845
+ # Corresponds to the JSON property `nextPageToken`
1846
+ # @return [String]
1847
+ attr_accessor :next_page_token
1848
+
1849
+ # The monitored resource descriptors that are available to this project and that
1850
+ # match filter, if present.
1851
+ # Corresponds to the JSON property `resourceDescriptors`
1852
+ # @return [Array<Google::Apis::MonitoringV3::MonitoredResourceDescriptor>]
1853
+ attr_accessor :resource_descriptors
1854
+
1855
+ def initialize(**args)
1856
+ update!(**args)
1857
+ end
1858
+
1859
+ # Update properties of this object
1860
+ def update!(**args)
1861
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1862
+ @resource_descriptors = args[:resource_descriptors] if args.key?(:resource_descriptors)
1863
+ end
1864
+ end
1865
+
1866
+ # The ListNotificationChannelDescriptors response.
1867
+ class ListNotificationChannelDescriptorsResponse
1868
+ include Google::Apis::Core::Hashable
1869
+
1870
+ # The monitored resource descriptors supported for the specified project,
1871
+ # optionally filtered.
1872
+ # Corresponds to the JSON property `channelDescriptors`
1873
+ # @return [Array<Google::Apis::MonitoringV3::NotificationChannelDescriptor>]
1874
+ attr_accessor :channel_descriptors
1875
+
1876
+ # If not empty, indicates that there may be more results that match the request.
1877
+ # Use the value in the page_token field in a subsequent request to fetch the
1878
+ # next set of results. If empty, all results have been returned.
1879
+ # Corresponds to the JSON property `nextPageToken`
1880
+ # @return [String]
1881
+ attr_accessor :next_page_token
1882
+
1883
+ def initialize(**args)
1884
+ update!(**args)
1885
+ end
1886
+
1887
+ # Update properties of this object
1888
+ def update!(**args)
1889
+ @channel_descriptors = args[:channel_descriptors] if args.key?(:channel_descriptors)
1890
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1891
+ end
1892
+ end
1893
+
1894
+ # The ListNotificationChannels response.
1895
+ class ListNotificationChannelsResponse
1896
+ include Google::Apis::Core::Hashable
1897
+
1898
+ # If not empty, indicates that there may be more results that match the request.
1899
+ # Use the value in the page_token field in a subsequent request to fetch the
1900
+ # next set of results. If empty, all results have been returned.
1901
+ # Corresponds to the JSON property `nextPageToken`
1902
+ # @return [String]
1903
+ attr_accessor :next_page_token
1904
+
1905
+ # The notification channels defined for the specified project.
1906
+ # Corresponds to the JSON property `notificationChannels`
1907
+ # @return [Array<Google::Apis::MonitoringV3::NotificationChannel>]
1908
+ attr_accessor :notification_channels
1909
+
1910
+ # The total number of notification channels in all pages. This number is only an
1911
+ # estimate, and may change in subsequent pages. https://aip.dev/158
1912
+ # Corresponds to the JSON property `totalSize`
1913
+ # @return [Fixnum]
1914
+ attr_accessor :total_size
1915
+
1916
+ def initialize(**args)
1917
+ update!(**args)
1918
+ end
1919
+
1920
+ # Update properties of this object
1921
+ def update!(**args)
1922
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1923
+ @notification_channels = args[:notification_channels] if args.key?(:notification_channels)
1924
+ @total_size = args[:total_size] if args.key?(:total_size)
1925
+ end
1926
+ end
1927
+
1928
+ # The ListServiceLevelObjectives response.
1929
+ class ListServiceLevelObjectivesResponse
1930
+ include Google::Apis::Core::Hashable
1931
+
1932
+ # If there are more results than have been returned, then this field is set to a
1933
+ # non-empty value. To see the additional results, use that value as page_token
1934
+ # in the next call to this method.
1935
+ # Corresponds to the JSON property `nextPageToken`
1936
+ # @return [String]
1937
+ attr_accessor :next_page_token
1938
+
1939
+ # The ServiceLevelObjectives matching the specified filter.
1940
+ # Corresponds to the JSON property `serviceLevelObjectives`
1941
+ # @return [Array<Google::Apis::MonitoringV3::ServiceLevelObjective>]
1942
+ attr_accessor :service_level_objectives
1943
+
1944
+ def initialize(**args)
1945
+ update!(**args)
1946
+ end
1947
+
1948
+ # Update properties of this object
1949
+ def update!(**args)
1950
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1951
+ @service_level_objectives = args[:service_level_objectives] if args.key?(:service_level_objectives)
1952
+ end
1953
+ end
1954
+
1955
+ # The ListServices response.
1956
+ class ListServicesResponse
1957
+ include Google::Apis::Core::Hashable
1958
+
1959
+ # If there are more results than have been returned, then this field is set to a
1960
+ # non-empty value. To see the additional results, use that value as page_token
1961
+ # in the next call to this method.
1962
+ # Corresponds to the JSON property `nextPageToken`
1963
+ # @return [String]
1964
+ attr_accessor :next_page_token
1965
+
1966
+ # The Services matching the specified filter.
1967
+ # Corresponds to the JSON property `services`
1968
+ # @return [Array<Google::Apis::MonitoringV3::Service>]
1969
+ attr_accessor :services
1970
+
1971
+ def initialize(**args)
1972
+ update!(**args)
1973
+ end
1974
+
1975
+ # Update properties of this object
1976
+ def update!(**args)
1977
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1978
+ @services = args[:services] if args.key?(:services)
1979
+ end
1980
+ end
1981
+
1982
+ # The ListTimeSeries response.
1983
+ class ListTimeSeriesResponse
1984
+ include Google::Apis::Core::Hashable
1985
+
1986
+ # Query execution errors that may have caused the time series data returned to
1987
+ # be incomplete.
1988
+ # Corresponds to the JSON property `executionErrors`
1989
+ # @return [Array<Google::Apis::MonitoringV3::Status>]
1990
+ attr_accessor :execution_errors
1991
+
1992
+ # If there are more results than have been returned, then this field is set to a
1993
+ # non-empty value. To see the additional results, use that value as page_token
1994
+ # in the next call to this method.
1995
+ # Corresponds to the JSON property `nextPageToken`
1996
+ # @return [String]
1997
+ attr_accessor :next_page_token
1998
+
1999
+ # One or more time series that match the filter included in the request.
2000
+ # Corresponds to the JSON property `timeSeries`
2001
+ # @return [Array<Google::Apis::MonitoringV3::TimeSeries>]
2002
+ attr_accessor :time_series
2003
+
2004
+ # The unit in which all time_series point values are reported. unit follows the
2005
+ # UCUM format for units as seen in https://unitsofmeasure.org/ucum.html. If
2006
+ # different time_series have different units (for example, because they come
2007
+ # from different metric types, or a unit is absent), then unit will be "`
2008
+ # not_a_unit`".
2009
+ # Corresponds to the JSON property `unit`
2010
+ # @return [String]
2011
+ attr_accessor :unit
2012
+
2013
+ def initialize(**args)
2014
+ update!(**args)
2015
+ end
2016
+
2017
+ # Update properties of this object
2018
+ def update!(**args)
2019
+ @execution_errors = args[:execution_errors] if args.key?(:execution_errors)
2020
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2021
+ @time_series = args[:time_series] if args.key?(:time_series)
2022
+ @unit = args[:unit] if args.key?(:unit)
2023
+ end
2024
+ end
2025
+
2026
+ # The protocol for the ListUptimeCheckConfigs response.
2027
+ class ListUptimeCheckConfigsResponse
2028
+ include Google::Apis::Core::Hashable
2029
+
2030
+ # This field represents the pagination token to retrieve the next page of
2031
+ # results. If the value is empty, it means no further results for the request.
2032
+ # To retrieve the next page of results, the value of the next_page_token is
2033
+ # passed to the subsequent List method call (in the request message's page_token
2034
+ # field).
2035
+ # Corresponds to the JSON property `nextPageToken`
2036
+ # @return [String]
2037
+ attr_accessor :next_page_token
2038
+
2039
+ # The total number of Uptime check configurations for the project, irrespective
2040
+ # of any pagination.
2041
+ # Corresponds to the JSON property `totalSize`
2042
+ # @return [Fixnum]
2043
+ attr_accessor :total_size
2044
+
2045
+ # The returned Uptime check configurations.
2046
+ # Corresponds to the JSON property `uptimeCheckConfigs`
2047
+ # @return [Array<Google::Apis::MonitoringV3::UptimeCheckConfig>]
2048
+ attr_accessor :uptime_check_configs
2049
+
2050
+ def initialize(**args)
2051
+ update!(**args)
2052
+ end
2053
+
2054
+ # Update properties of this object
2055
+ def update!(**args)
2056
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2057
+ @total_size = args[:total_size] if args.key?(:total_size)
2058
+ @uptime_check_configs = args[:uptime_check_configs] if args.key?(:uptime_check_configs)
2059
+ end
2060
+ end
2061
+
2062
+ # The protocol for the ListUptimeCheckIps response.
2063
+ class ListUptimeCheckIpsResponse
2064
+ include Google::Apis::Core::Hashable
2065
+
2066
+ # This field represents the pagination token to retrieve the next page of
2067
+ # results. If the value is empty, it means no further results for the request.
2068
+ # To retrieve the next page of results, the value of the next_page_token is
2069
+ # passed to the subsequent List method call (in the request message's page_token
2070
+ # field). NOTE: this field is not yet implemented
2071
+ # Corresponds to the JSON property `nextPageToken`
2072
+ # @return [String]
2073
+ attr_accessor :next_page_token
2074
+
2075
+ # The returned list of IP addresses (including region and location) that the
2076
+ # checkers run from.
2077
+ # Corresponds to the JSON property `uptimeCheckIps`
2078
+ # @return [Array<Google::Apis::MonitoringV3::UptimeCheckIp>]
2079
+ attr_accessor :uptime_check_ips
2080
+
2081
+ def initialize(**args)
2082
+ update!(**args)
2083
+ end
2084
+
2085
+ # Update properties of this object
2086
+ def update!(**args)
2087
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2088
+ @uptime_check_ips = args[:uptime_check_ips] if args.key?(:uptime_check_ips)
2089
+ end
2090
+ end
2091
+
2092
+ # Istio service scoped to an Istio mesh. Anthos clusters running ASM < 1.6.8
2093
+ # will have their services ingested as this type.
2094
+ class MeshIstio
2095
+ include Google::Apis::Core::Hashable
2096
+
2097
+ # Identifier for the mesh in which this Istio service is defined. Corresponds to
2098
+ # the mesh_uid metric label in Istio metrics.
2099
+ # Corresponds to the JSON property `meshUid`
2100
+ # @return [String]
2101
+ attr_accessor :mesh_uid
2102
+
2103
+ # The name of the Istio service underlying this service. Corresponds to the
2104
+ # destination_service_name metric label in Istio metrics.
2105
+ # Corresponds to the JSON property `serviceName`
2106
+ # @return [String]
2107
+ attr_accessor :service_name
2108
+
2109
+ # The namespace of the Istio service underlying this service. Corresponds to the
2110
+ # destination_service_namespace metric label in Istio metrics.
2111
+ # Corresponds to the JSON property `serviceNamespace`
2112
+ # @return [String]
2113
+ attr_accessor :service_namespace
2114
+
2115
+ def initialize(**args)
2116
+ update!(**args)
2117
+ end
2118
+
2119
+ # Update properties of this object
2120
+ def update!(**args)
2121
+ @mesh_uid = args[:mesh_uid] if args.key?(:mesh_uid)
2122
+ @service_name = args[:service_name] if args.key?(:service_name)
2123
+ @service_namespace = args[:service_namespace] if args.key?(:service_namespace)
2124
+ end
2125
+ end
2126
+
2127
+ # A specific metric, identified by specifying values for all of the labels of a
2128
+ # MetricDescriptor.
2129
+ class Metric
2130
+ include Google::Apis::Core::Hashable
2131
+
2132
+ # The set of label values that uniquely identify this metric. All labels listed
2133
+ # in the MetricDescriptor must be assigned values.
2134
+ # Corresponds to the JSON property `labels`
2135
+ # @return [Hash<String,String>]
2136
+ attr_accessor :labels
2137
+
2138
+ # An existing metric type, see google.api.MetricDescriptor. For example, custom.
2139
+ # googleapis.com/invoice/paid/amount.
2140
+ # Corresponds to the JSON property `type`
2141
+ # @return [String]
2142
+ attr_accessor :type
2143
+
2144
+ def initialize(**args)
2145
+ update!(**args)
2146
+ end
2147
+
2148
+ # Update properties of this object
2149
+ def update!(**args)
2150
+ @labels = args[:labels] if args.key?(:labels)
2151
+ @type = args[:type] if args.key?(:type)
2152
+ end
2153
+ end
2154
+
2155
+ # A condition type that checks that monitored resources are reporting data. The
2156
+ # configuration defines a metric and a set of monitored resources. The predicate
2157
+ # is considered in violation when a time series for the specified metric of a
2158
+ # monitored resource does not include any data in the specified duration.
2159
+ class MetricAbsence
2160
+ include Google::Apis::Core::Hashable
2161
+
2162
+ # Specifies the alignment of data points in individual time series as well as
2163
+ # how to combine the retrieved time series together (such as when aggregating
2164
+ # multiple streams on each resource to a single stream for each resource or when
2165
+ # aggregating streams across all members of a group of resrouces). Multiple
2166
+ # aggregations are applied in the order specified.This field is similar to the
2167
+ # one in the ListTimeSeries request (https://cloud.google.com/monitoring/api/
2168
+ # ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the
2169
+ # ListTimeSeries method when debugging this field.
2170
+ # Corresponds to the JSON property `aggregations`
2171
+ # @return [Array<Google::Apis::MonitoringV3::Aggregation>]
2172
+ attr_accessor :aggregations
2173
+
2174
+ # The amount of time that a time series must fail to report new data to be
2175
+ # considered failing. Currently, only values that are a multiple of a minute--e.
2176
+ # g. 60, 120, or 300 seconds--are supported. If an invalid value is given, an
2177
+ # error will be returned. The Duration.nanos field is ignored.
2178
+ # Corresponds to the JSON property `duration`
2179
+ # @return [String]
2180
+ attr_accessor :duration
2181
+
2182
+ # A filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies
2183
+ # which time series should be compared with the threshold.The filter is similar
2184
+ # to the one that is specified in the ListTimeSeries request (https://cloud.
2185
+ # google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call
2186
+ # is useful to verify the time series that will be retrieved / processed). The
2187
+ # filter must specify the metric type and the resource type. Optionally, it can
2188
+ # specify resource labels and metric labels. This field must not exceed 2048
2189
+ # Unicode characters in length.
2190
+ # Corresponds to the JSON property `filter`
2191
+ # @return [String]
2192
+ attr_accessor :filter
2193
+
2194
+ # Specifies how many time series must fail a predicate to trigger a condition.
2195
+ # If not specified, then a `count: 1` trigger is used.
2196
+ # Corresponds to the JSON property `trigger`
2197
+ # @return [Google::Apis::MonitoringV3::Trigger]
2198
+ attr_accessor :trigger
2199
+
2200
+ def initialize(**args)
2201
+ update!(**args)
2202
+ end
2203
+
2204
+ # Update properties of this object
2205
+ def update!(**args)
2206
+ @aggregations = args[:aggregations] if args.key?(:aggregations)
2207
+ @duration = args[:duration] if args.key?(:duration)
2208
+ @filter = args[:filter] if args.key?(:filter)
2209
+ @trigger = args[:trigger] if args.key?(:trigger)
2210
+ end
2211
+ end
2212
+
2213
+ # Defines a metric type and its schema. Once a metric descriptor is created,
2214
+ # deleting or altering it stops data collection and makes the metric type's
2215
+ # existing data unusable.
2216
+ class MetricDescriptor
2217
+ include Google::Apis::Core::Hashable
2218
+
2219
+ # A detailed description of the metric, which can be used in documentation.
2220
+ # Corresponds to the JSON property `description`
2221
+ # @return [String]
2222
+ attr_accessor :description
2223
+
2224
+ # A concise name for the metric, which can be displayed in user interfaces. Use
2225
+ # sentence case without an ending period, for example "Request count". This
2226
+ # field is optional but it is recommended to be set for any metrics associated
2227
+ # with user-visible concepts, such as Quota.
2228
+ # Corresponds to the JSON property `displayName`
2229
+ # @return [String]
2230
+ attr_accessor :display_name
2231
+
2232
+ # The set of labels that can be used to describe a specific instance of this
2233
+ # metric type. For example, the appengine.googleapis.com/http/server/
2234
+ # response_latencies metric type has a label for the HTTP response code,
2235
+ # response_code, so you can look at latencies for successful responses or just
2236
+ # for responses that failed.
2237
+ # Corresponds to the JSON property `labels`
2238
+ # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
2239
+ attr_accessor :labels
2240
+
2241
+ # Optional. The launch stage of the metric definition.
2242
+ # Corresponds to the JSON property `launchStage`
2243
+ # @return [String]
2244
+ attr_accessor :launch_stage
2245
+
2246
+ # Additional annotations that can be used to guide the usage of a metric.
2247
+ # Corresponds to the JSON property `metadata`
2248
+ # @return [Google::Apis::MonitoringV3::MetricDescriptorMetadata]
2249
+ attr_accessor :metadata
2250
+
2251
+ # Whether the metric records instantaneous values, changes to a value, etc. Some
2252
+ # combinations of metric_kind and value_type might not be supported.
2253
+ # Corresponds to the JSON property `metricKind`
2254
+ # @return [String]
2255
+ attr_accessor :metric_kind
2256
+
2257
+ # Read-only. If present, then a time series, which is identified partially by a
2258
+ # metric type and a MonitoredResourceDescriptor, that is associated with this
2259
+ # metric type can only be associated with one of the monitored resource types
2260
+ # listed here.
2261
+ # Corresponds to the JSON property `monitoredResourceTypes`
2262
+ # @return [Array<String>]
2263
+ attr_accessor :monitored_resource_types
2264
+
2265
+ # The resource name of the metric descriptor.
2266
+ # Corresponds to the JSON property `name`
2267
+ # @return [String]
2268
+ attr_accessor :name
2269
+
2270
+ # The metric type, including its DNS name prefix. The type is not URL-encoded.
2271
+ # All user-defined metric types have the DNS name custom.googleapis.com or
2272
+ # external.googleapis.com. Metric types should use a natural hierarchical
2273
+ # grouping. For example: "custom.googleapis.com/invoice/paid/amount" "external.
2274
+ # googleapis.com/prometheus/up" "appengine.googleapis.com/http/server/
2275
+ # response_latencies"
2276
+ # Corresponds to the JSON property `type`
2277
+ # @return [String]
2278
+ attr_accessor :type
2279
+
2280
+ # The units in which the metric value is reported. It is only applicable if the
2281
+ # value_type is INT64, DOUBLE, or DISTRIBUTION. The unit defines the
2282
+ # representation of the stored metric values.Different systems may scale the
2283
+ # values to be more easily displayed (so a value of 0.02KBy might be displayed
2284
+ # as 20By, and a value of 3523KBy might be displayed as 3.5MBy). However, if the
2285
+ # unit is KBy, then the value of the metric is always in thousands of bytes, no
2286
+ # matter how it may be displayed..If you want a custom metric to record the
2287
+ # exact number of CPU-seconds used by a job, you can create an INT64 CUMULATIVE
2288
+ # metric whose unit is s`CPU` (or equivalently 1s`CPU` or just s). If the job
2289
+ # uses 12,005 CPU-seconds, then the value is written as 12005.Alternatively, if
2290
+ # you want a custom metric to record data in a more granular way, you can create
2291
+ # a DOUBLE CUMULATIVE metric whose unit is ks`CPU`, and then write the value 12.
2292
+ # 005 (which is 12005/1000), or use Kis`CPU` and write 11.723 (which is 12005/
2293
+ # 1024).The supported units are a subset of The Unified Code for Units of
2294
+ # Measure (http://unitsofmeasure.org/ucum.html) standard:Basic units (UNIT) bit
2295
+ # bit By byte s second min minute h hour d day 1 dimensionlessPrefixes (PREFIX)
2296
+ # k kilo (10^3) M mega (10^6) G giga (10^9) T tera (10^12) P peta (10^15) E exa (
2297
+ # 10^18) Z zetta (10^21) Y yotta (10^24) m milli (10^-3) u micro (10^-6) n nano (
2298
+ # 10^-9) p pico (10^-12) f femto (10^-15) a atto (10^-18) z zepto (10^-21) y
2299
+ # yocto (10^-24) Ki kibi (2^10) Mi mebi (2^20) Gi gibi (2^30) Ti tebi (2^40) Pi
2300
+ # pebi (2^50)GrammarThe grammar also includes these connectors: / division or
2301
+ # ratio (as an infix operator). For examples, kBy/`email` or MiBy/10ms (although
2302
+ # you should almost never have /s in a metric unit; rates should always be
2303
+ # computed at query time from the underlying cumulative or delta value). .
2304
+ # multiplication or composition (as an infix operator). For examples, GBy.d or k`
2305
+ # watt`.h.The grammar for a unit is as follows: Expression = Component ` "."
2306
+ # Component ` ` "/" Component ` ; Component = ( [ PREFIX ] UNIT | "%" ) [
2307
+ # Annotation ] | Annotation | "1" ; Annotation = "`" NAME "`" ; Notes:
2308
+ # Annotation is just a comment if it follows a UNIT. If the annotation is used
2309
+ # alone, then the unit is equivalent to 1. For examples, `request`/s == 1/s, By`
2310
+ # transmitted`/s == By/s. NAME is a sequence of non-blank printable ASCII
2311
+ # characters not containing ` or `. 1 represents a unitary dimensionless unit (
2312
+ # https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as in 1/s. It
2313
+ # is typically used when none of the basic units are appropriate. For example, "
2314
+ # new users per day" can be represented as 1/d or `new-users`/d (and a metric
2315
+ # value 5 would mean "5 new users). Alternatively, "thousands of page views per
2316
+ # day" would be represented as 1000/d or k1/d or k`page_views`/d (and a metric
2317
+ # value of 5.3 would mean "5300 page views per day"). % represents dimensionless
2318
+ # value of 1/100, and annotates values giving a percentage (so the metric values
2319
+ # are typically in the range of 0..100, and a metric value 3 means "3 percent").
2320
+ # 10^2.% indicates a metric contains a ratio, typically in the range 0..1, that
2321
+ # will be multiplied by 100 and displayed as a percentage (so a metric value 0.
2322
+ # 03 means "3 percent").
2323
+ # Corresponds to the JSON property `unit`
2324
+ # @return [String]
2325
+ attr_accessor :unit
2326
+
2327
+ # Whether the measurement is an integer, a floating-point number, etc. Some
2328
+ # combinations of metric_kind and value_type might not be supported.
2329
+ # Corresponds to the JSON property `valueType`
2330
+ # @return [String]
2331
+ attr_accessor :value_type
2332
+
2333
+ def initialize(**args)
2334
+ update!(**args)
2335
+ end
2336
+
2337
+ # Update properties of this object
2338
+ def update!(**args)
2339
+ @description = args[:description] if args.key?(:description)
2340
+ @display_name = args[:display_name] if args.key?(:display_name)
2341
+ @labels = args[:labels] if args.key?(:labels)
2342
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2343
+ @metadata = args[:metadata] if args.key?(:metadata)
2344
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
2345
+ @monitored_resource_types = args[:monitored_resource_types] if args.key?(:monitored_resource_types)
2346
+ @name = args[:name] if args.key?(:name)
2347
+ @type = args[:type] if args.key?(:type)
2348
+ @unit = args[:unit] if args.key?(:unit)
2349
+ @value_type = args[:value_type] if args.key?(:value_type)
2350
+ end
2351
+ end
2352
+
2353
+ # Additional annotations that can be used to guide the usage of a metric.
2354
+ class MetricDescriptorMetadata
2355
+ include Google::Apis::Core::Hashable
2356
+
2357
+ # The delay of data points caused by ingestion. Data points older than this age
2358
+ # are guaranteed to be ingested and available to be read, excluding data loss
2359
+ # due to errors.
2360
+ # Corresponds to the JSON property `ingestDelay`
2361
+ # @return [String]
2362
+ attr_accessor :ingest_delay
2363
+
2364
+ # Deprecated. Must use the MetricDescriptor.launch_stage instead.
2365
+ # Corresponds to the JSON property `launchStage`
2366
+ # @return [String]
2367
+ attr_accessor :launch_stage
2368
+
2369
+ # The sampling period of metric data points. For metrics which are written
2370
+ # periodically, consecutive data points are stored at this time interval,
2371
+ # excluding data loss due to errors. Metrics with a higher granularity have a
2372
+ # smaller sampling period.
2373
+ # Corresponds to the JSON property `samplePeriod`
2374
+ # @return [String]
2375
+ attr_accessor :sample_period
2376
+
2377
+ def initialize(**args)
2378
+ update!(**args)
2379
+ end
2380
+
2381
+ # Update properties of this object
2382
+ def update!(**args)
2383
+ @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay)
2384
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2385
+ @sample_period = args[:sample_period] if args.key?(:sample_period)
2386
+ end
2387
+ end
2388
+
2389
+ # A MetricRange is used when each window is good when the value x of a single
2390
+ # TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must
2391
+ # have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE.
2392
+ class MetricRange
2393
+ include Google::Apis::Core::Hashable
2394
+
2395
+ # Range of numerical values, inclusive of min and exclusive of max. If the open
2396
+ # range "< range.max" is desired, set range.min = -infinity. If the open range ">
2397
+ # = range.min" is desired, set range.max = infinity.
2398
+ # Corresponds to the JSON property `range`
2399
+ # @return [Google::Apis::MonitoringV3::GoogleMonitoringV3Range]
2400
+ attr_accessor :range
2401
+
2402
+ # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters)
2403
+ # specifying the TimeSeries to use for evaluating window quality.
2404
+ # Corresponds to the JSON property `timeSeries`
2405
+ # @return [String]
2406
+ attr_accessor :time_series
2407
+
2408
+ def initialize(**args)
2409
+ update!(**args)
2410
+ end
2411
+
2412
+ # Update properties of this object
2413
+ def update!(**args)
2414
+ @range = args[:range] if args.key?(:range)
2415
+ @time_series = args[:time_series] if args.key?(:time_series)
2416
+ end
2417
+ end
2418
+
2419
+ # A condition type that compares a collection of time series against a threshold.
2420
+ class MetricThreshold
2421
+ include Google::Apis::Core::Hashable
2422
+
2423
+ # Specifies the alignment of data points in individual time series as well as
2424
+ # how to combine the retrieved time series together (such as when aggregating
2425
+ # multiple streams on each resource to a single stream for each resource or when
2426
+ # aggregating streams across all members of a group of resrouces). Multiple
2427
+ # aggregations are applied in the order specified.This field is similar to the
2428
+ # one in the ListTimeSeries request (https://cloud.google.com/monitoring/api/
2429
+ # ref_v3/rest/v3/projects.timeSeries/list). It is advisable to use the
2430
+ # ListTimeSeries method when debugging this field.
2431
+ # Corresponds to the JSON property `aggregations`
2432
+ # @return [Array<Google::Apis::MonitoringV3::Aggregation>]
2433
+ attr_accessor :aggregations
2434
+
2435
+ # The comparison to apply between the time series (indicated by filter and
2436
+ # aggregation) and the threshold (indicated by threshold_value). The comparison
2437
+ # is applied on each time series, with the time series on the left-hand side and
2438
+ # the threshold on the right-hand side.Only COMPARISON_LT and COMPARISON_GT are
2439
+ # supported currently.
2440
+ # Corresponds to the JSON property `comparison`
2441
+ # @return [String]
2442
+ attr_accessor :comparison
2443
+
2444
+ # Specifies the alignment of data points in individual time series selected by
2445
+ # denominatorFilter as well as how to combine the retrieved time series together
2446
+ # (such as when aggregating multiple streams on each resource to a single stream
2447
+ # for each resource or when aggregating streams across all members of a group of
2448
+ # resources).When computing ratios, the aggregations and
2449
+ # denominator_aggregations fields must use the same alignment period and produce
2450
+ # time series that have the same periodicity and labels.
2451
+ # Corresponds to the JSON property `denominatorAggregations`
2452
+ # @return [Array<Google::Apis::MonitoringV3::Aggregation>]
2453
+ attr_accessor :denominator_aggregations
2454
+
2455
+ # A filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies
2456
+ # a time series that should be used as the denominator of a ratio that will be
2457
+ # compared with the threshold. If a denominator_filter is specified, the time
2458
+ # series specified by the filter field will be used as the numerator.The filter
2459
+ # must specify the metric type and optionally may contain restrictions on
2460
+ # resource type, resource labels, and metric labels. This field may not exceed
2461
+ # 2048 Unicode characters in length.
2462
+ # Corresponds to the JSON property `denominatorFilter`
2463
+ # @return [String]
2464
+ attr_accessor :denominator_filter
2465
+
2466
+ # The amount of time that a time series must violate the threshold to be
2467
+ # considered failing. Currently, only values that are a multiple of a minute--e.
2468
+ # g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given,
2469
+ # an error will be returned. When choosing a duration, it is useful to keep in
2470
+ # mind the frequency of the underlying time series data (which may also be
2471
+ # affected by any alignments specified in the aggregations field); a good
2472
+ # duration is long enough so that a single outlier does not generate spurious
2473
+ # alerts, but short enough that unhealthy states are detected and alerted on
2474
+ # quickly.
2475
+ # Corresponds to the JSON property `duration`
2476
+ # @return [String]
2477
+ attr_accessor :duration
2478
+
2479
+ # A filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies
2480
+ # which time series should be compared with the threshold.The filter is similar
2481
+ # to the one that is specified in the ListTimeSeries request (https://cloud.
2482
+ # google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call
2483
+ # is useful to verify the time series that will be retrieved / processed). The
2484
+ # filter must specify the metric type and the resource type. Optionally, it can
2485
+ # specify resource labels and metric labels. This field must not exceed 2048
2486
+ # Unicode characters in length.
2487
+ # Corresponds to the JSON property `filter`
2488
+ # @return [String]
2489
+ attr_accessor :filter
2490
+
2491
+ # A value against which to compare the time series.
2492
+ # Corresponds to the JSON property `thresholdValue`
2493
+ # @return [Float]
2494
+ attr_accessor :threshold_value
2495
+
2496
+ # Specifies how many time series must fail a predicate to trigger a condition.
2497
+ # If not specified, then a `count: 1` trigger is used.
2498
+ # Corresponds to the JSON property `trigger`
2499
+ # @return [Google::Apis::MonitoringV3::Trigger]
2500
+ attr_accessor :trigger
2501
+
2502
+ def initialize(**args)
2503
+ update!(**args)
2504
+ end
2505
+
2506
+ # Update properties of this object
2507
+ def update!(**args)
2508
+ @aggregations = args[:aggregations] if args.key?(:aggregations)
2509
+ @comparison = args[:comparison] if args.key?(:comparison)
2510
+ @denominator_aggregations = args[:denominator_aggregations] if args.key?(:denominator_aggregations)
2511
+ @denominator_filter = args[:denominator_filter] if args.key?(:denominator_filter)
2512
+ @duration = args[:duration] if args.key?(:duration)
2513
+ @filter = args[:filter] if args.key?(:filter)
2514
+ @threshold_value = args[:threshold_value] if args.key?(:threshold_value)
2515
+ @trigger = args[:trigger] if args.key?(:trigger)
2516
+ end
2517
+ end
2518
+
2519
+ # An object representing a resource that can be used for monitoring, logging,
2520
+ # billing, or other purposes. Examples include virtual machine instances,
2521
+ # databases, and storage devices such as disks. The type field identifies a
2522
+ # MonitoredResourceDescriptor object that describes the resource's schema.
2523
+ # Information in the labels field identifies the actual resource and its
2524
+ # attributes according to the schema. For example, a particular Compute Engine
2525
+ # VM instance could be represented by the following object, because the
2526
+ # MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "
2527
+ # zone": ` "type": "gce_instance", "labels": ` "instance_id": "12345678901234", "
2528
+ # zone": "us-central1-a" ``
2529
+ class MonitoredResource
2530
+ include Google::Apis::Core::Hashable
2531
+
2532
+ # Required. Values for all of the labels listed in the associated monitored
2533
+ # resource descriptor. For example, Compute Engine VM instances use the labels "
2534
+ # project_id", "instance_id", and "zone".
2535
+ # Corresponds to the JSON property `labels`
2536
+ # @return [Hash<String,String>]
2537
+ attr_accessor :labels
2538
+
2539
+ # Required. The monitored resource type. This field must match the type field of
2540
+ # a MonitoredResourceDescriptor object. For example, the type of a Compute
2541
+ # Engine VM instance is gce_instance. For a list of types, see Monitoring
2542
+ # resource types and Logging resource types.
2543
+ # Corresponds to the JSON property `type`
2544
+ # @return [String]
2545
+ attr_accessor :type
2546
+
2547
+ def initialize(**args)
2548
+ update!(**args)
2549
+ end
2550
+
2551
+ # Update properties of this object
2552
+ def update!(**args)
2553
+ @labels = args[:labels] if args.key?(:labels)
2554
+ @type = args[:type] if args.key?(:type)
2555
+ end
2556
+ end
2557
+
2558
+ # An object that describes the schema of a MonitoredResource object using a type
2559
+ # name and a set of labels. For example, the monitored resource descriptor for
2560
+ # Google Compute Engine VM instances has a type of "gce_instance" and specifies
2561
+ # the use of the labels "instance_id" and "zone" to identify particular VM
2562
+ # instances.Different APIs can support different monitored resource types. APIs
2563
+ # generally provide a list method that returns the monitored resource
2564
+ # descriptors used by the API.
2565
+ class MonitoredResourceDescriptor
2566
+ include Google::Apis::Core::Hashable
2567
+
2568
+ # Optional. A detailed description of the monitored resource type that might be
2569
+ # used in documentation.
2570
+ # Corresponds to the JSON property `description`
2571
+ # @return [String]
2572
+ attr_accessor :description
2573
+
2574
+ # Optional. A concise name for the monitored resource type that might be
2575
+ # displayed in user interfaces. It should be a Title Cased Noun Phrase, without
2576
+ # any article or other determiners. For example, "Google Cloud SQL Database".
2577
+ # Corresponds to the JSON property `displayName`
2578
+ # @return [String]
2579
+ attr_accessor :display_name
2580
+
2581
+ # Required. A set of labels used to describe instances of this monitored
2582
+ # resource type. For example, an individual Google Cloud SQL database is
2583
+ # identified by values for the labels "database_id" and "zone".
2584
+ # Corresponds to the JSON property `labels`
2585
+ # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
2586
+ attr_accessor :labels
2587
+
2588
+ # Optional. The launch stage of the monitored resource definition.
2589
+ # Corresponds to the JSON property `launchStage`
2590
+ # @return [String]
2591
+ attr_accessor :launch_stage
2592
+
2593
+ # Optional. The resource name of the monitored resource descriptor: "projects/`
2594
+ # project_id`/monitoredResourceDescriptors/`type`" where `type` is the value of
2595
+ # the type field in this object and `project_id` is a project ID that provides
2596
+ # API-specific context for accessing the type. APIs that do not use project
2597
+ # information can use the resource name format "monitoredResourceDescriptors/`
2598
+ # type`".
2599
+ # Corresponds to the JSON property `name`
2600
+ # @return [String]
2601
+ attr_accessor :name
2602
+
2603
+ # Required. The monitored resource type. For example, the type "
2604
+ # cloudsql_database" represents databases in Google Cloud SQL.
2605
+ # Corresponds to the JSON property `type`
2606
+ # @return [String]
2607
+ attr_accessor :type
2608
+
2609
+ def initialize(**args)
2610
+ update!(**args)
2611
+ end
2612
+
2613
+ # Update properties of this object
2614
+ def update!(**args)
2615
+ @description = args[:description] if args.key?(:description)
2616
+ @display_name = args[:display_name] if args.key?(:display_name)
2617
+ @labels = args[:labels] if args.key?(:labels)
2618
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2619
+ @name = args[:name] if args.key?(:name)
2620
+ @type = args[:type] if args.key?(:type)
2621
+ end
2622
+ end
2623
+
2624
+ # Auxiliary metadata for a MonitoredResource object. MonitoredResource objects
2625
+ # contain the minimum set of information to uniquely identify a monitored
2626
+ # resource instance. There is some other useful auxiliary metadata. Monitoring
2627
+ # and Logging use an ingestion pipeline to extract metadata for cloud resources
2628
+ # of all types, and store the metadata in this message.
2629
+ class MonitoredResourceMetadata
2630
+ include Google::Apis::Core::Hashable
2631
+
2632
+ # Output only. Values for predefined system metadata labels. System labels are a
2633
+ # kind of metadata extracted by Google, including "machine_image", "vpc", "
2634
+ # subnet_id", "security_group", "name", etc. System label values can be only
2635
+ # strings, Boolean values, or a list of strings. For example: ` "name": "my-test-
2636
+ # instance", "security_group": ["a", "b", "c"], "spot_instance": false `
2637
+ # Corresponds to the JSON property `systemLabels`
2638
+ # @return [Hash<String,Object>]
2639
+ attr_accessor :system_labels
2640
+
2641
+ # Output only. A map of user-defined metadata labels.
2642
+ # Corresponds to the JSON property `userLabels`
2643
+ # @return [Hash<String,String>]
2644
+ attr_accessor :user_labels
2645
+
2646
+ def initialize(**args)
2647
+ update!(**args)
2648
+ end
2649
+
2650
+ # Update properties of this object
2651
+ def update!(**args)
2652
+ @system_labels = args[:system_labels] if args.key?(:system_labels)
2653
+ @user_labels = args[:user_labels] if args.key?(:user_labels)
2654
+ end
2655
+ end
2656
+
2657
+ # A condition type that allows alert policies to be defined using Monitoring
2658
+ # Query Language (https://cloud.google.com/monitoring/mql).
2659
+ class MonitoringQueryLanguageCondition
2660
+ include Google::Apis::Core::Hashable
2661
+
2662
+ # The amount of time that a time series must violate the threshold to be
2663
+ # considered failing. Currently, only values that are a multiple of a minute--e.
2664
+ # g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given,
2665
+ # an error will be returned. When choosing a duration, it is useful to keep in
2666
+ # mind the frequency of the underlying time series data (which may also be
2667
+ # affected by any alignments specified in the aggregations field); a good
2668
+ # duration is long enough so that a single outlier does not generate spurious
2669
+ # alerts, but short enough that unhealthy states are detected and alerted on
2670
+ # quickly.
2671
+ # Corresponds to the JSON property `duration`
2672
+ # @return [String]
2673
+ attr_accessor :duration
2674
+
2675
+ # Monitoring Query Language (https://cloud.google.com/monitoring/mql) query that
2676
+ # outputs a boolean stream.
2677
+ # Corresponds to the JSON property `query`
2678
+ # @return [String]
2679
+ attr_accessor :query
2680
+
2681
+ # Specifies how many time series must fail a predicate to trigger a condition.
2682
+ # If not specified, then a `count: 1` trigger is used.
2683
+ # Corresponds to the JSON property `trigger`
2684
+ # @return [Google::Apis::MonitoringV3::Trigger]
2685
+ attr_accessor :trigger
2686
+
2687
+ def initialize(**args)
2688
+ update!(**args)
2689
+ end
2690
+
2691
+ # Update properties of this object
2692
+ def update!(**args)
2693
+ @duration = args[:duration] if args.key?(:duration)
2694
+ @query = args[:query] if args.key?(:query)
2695
+ @trigger = args[:trigger] if args.key?(:trigger)
2696
+ end
2697
+ end
2698
+
2699
+ # Describes a change made to a configuration.
2700
+ class MutationRecord
2701
+ include Google::Apis::Core::Hashable
2702
+
2703
+ # When the change occurred.
2704
+ # Corresponds to the JSON property `mutateTime`
2705
+ # @return [String]
2706
+ attr_accessor :mutate_time
2707
+
2708
+ # The email address of the user making the change.
2709
+ # Corresponds to the JSON property `mutatedBy`
2710
+ # @return [String]
2711
+ attr_accessor :mutated_by
2712
+
2713
+ def initialize(**args)
2714
+ update!(**args)
2715
+ end
2716
+
2717
+ # Update properties of this object
2718
+ def update!(**args)
2719
+ @mutate_time = args[:mutate_time] if args.key?(:mutate_time)
2720
+ @mutated_by = args[:mutated_by] if args.key?(:mutated_by)
2721
+ end
2722
+ end
2723
+
2724
+ # A NotificationChannel is a medium through which an alert is delivered when a
2725
+ # policy violation is detected. Examples of channels include email, SMS, and
2726
+ # third-party messaging applications. Fields containing sensitive information
2727
+ # like authentication tokens or contact info are only partially populated on
2728
+ # retrieval.
2729
+ class NotificationChannel
2730
+ include Google::Apis::Core::Hashable
2731
+
2732
+ # An optional human-readable description of this notification channel. This
2733
+ # description may provide additional details, beyond the display name, for the
2734
+ # channel. This may not exceed 1024 Unicode characters.
2735
+ # Corresponds to the JSON property `description`
2736
+ # @return [String]
2737
+ attr_accessor :description
2738
+
2739
+ # An optional human-readable name for this notification channel. It is
2740
+ # recommended that you specify a non-empty and unique name in order to make it
2741
+ # easier to identify the channels in your project, though this is not enforced.
2742
+ # The display name is limited to 512 Unicode characters.
2743
+ # Corresponds to the JSON property `displayName`
2744
+ # @return [String]
2745
+ attr_accessor :display_name
2746
+
2747
+ # Whether notifications are forwarded to the described channel. This makes it
2748
+ # possible to disable delivery of notifications to a particular channel without
2749
+ # removing the channel from all alerting policies that reference the channel.
2750
+ # This is a more convenient approach when the change is temporary and you want
2751
+ # to receive notifications from the same set of alerting policies on the channel
2752
+ # at some point in the future.
2753
+ # Corresponds to the JSON property `enabled`
2754
+ # @return [Boolean]
2755
+ attr_accessor :enabled
2756
+ alias_method :enabled?, :enabled
2757
+
2758
+ # Configuration fields that define the channel and its behavior. The permissible
2759
+ # and required labels are specified in the NotificationChannelDescriptor.labels
2760
+ # of the NotificationChannelDescriptor corresponding to the type field.
2761
+ # Corresponds to the JSON property `labels`
2762
+ # @return [Hash<String,String>]
2763
+ attr_accessor :labels
2764
+
2765
+ # The full REST resource name for this channel. The format is: projects/[
2766
+ # PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID] The [CHANNEL_ID] is
2767
+ # automatically assigned by the server on creation.
2768
+ # Corresponds to the JSON property `name`
2769
+ # @return [String]
2770
+ attr_accessor :name
2771
+
2772
+ # The type of the notification channel. This field matches the value of the
2773
+ # NotificationChannelDescriptor.type field.
2774
+ # Corresponds to the JSON property `type`
2775
+ # @return [String]
2776
+ attr_accessor :type
2777
+
2778
+ # User-supplied key/value data that does not need to conform to the
2779
+ # corresponding NotificationChannelDescriptor's schema, unlike the labels field.
2780
+ # This field is intended to be used for organizing and identifying the
2781
+ # NotificationChannel objects.The field can contain up to 64 entries. Each key
2782
+ # and value is limited to 63 Unicode characters or 128 bytes, whichever is
2783
+ # smaller. Labels and values can contain only lowercase letters, numerals,
2784
+ # underscores, and dashes. Keys must begin with a letter.
2785
+ # Corresponds to the JSON property `userLabels`
2786
+ # @return [Hash<String,String>]
2787
+ attr_accessor :user_labels
2788
+
2789
+ # Indicates whether this channel has been verified or not. On a
2790
+ # ListNotificationChannels or GetNotificationChannel operation, this field is
2791
+ # expected to be populated.If the value is UNVERIFIED, then it indicates that
2792
+ # the channel is non-functioning (it both requires verification and lacks
2793
+ # verification); otherwise, it is assumed that the channel works.If the channel
2794
+ # is neither VERIFIED nor UNVERIFIED, it implies that the channel is of a type
2795
+ # that does not require verification or that this specific channel has been
2796
+ # exempted from verification because it was created prior to verification being
2797
+ # required for channels of this type.This field cannot be modified using a
2798
+ # standard UpdateNotificationChannel operation. To change the value of this
2799
+ # field, you must call VerifyNotificationChannel.
2800
+ # Corresponds to the JSON property `verificationStatus`
2801
+ # @return [String]
2802
+ attr_accessor :verification_status
2803
+
2804
+ def initialize(**args)
2805
+ update!(**args)
2806
+ end
2807
+
2808
+ # Update properties of this object
2809
+ def update!(**args)
2810
+ @description = args[:description] if args.key?(:description)
2811
+ @display_name = args[:display_name] if args.key?(:display_name)
2812
+ @enabled = args[:enabled] if args.key?(:enabled)
2813
+ @labels = args[:labels] if args.key?(:labels)
2814
+ @name = args[:name] if args.key?(:name)
2815
+ @type = args[:type] if args.key?(:type)
2816
+ @user_labels = args[:user_labels] if args.key?(:user_labels)
2817
+ @verification_status = args[:verification_status] if args.key?(:verification_status)
2818
+ end
2819
+ end
2820
+
2821
+ # A description of a notification channel. The descriptor includes the
2822
+ # properties of the channel and the set of labels or fields that must be
2823
+ # specified to configure channels of a given type.
2824
+ class NotificationChannelDescriptor
2825
+ include Google::Apis::Core::Hashable
2826
+
2827
+ # A human-readable description of the notification channel type. The description
2828
+ # may include a description of the properties of the channel and pointers to
2829
+ # external documentation.
2830
+ # Corresponds to the JSON property `description`
2831
+ # @return [String]
2832
+ attr_accessor :description
2833
+
2834
+ # A human-readable name for the notification channel type. This form of the name
2835
+ # is suitable for a user interface.
2836
+ # Corresponds to the JSON property `displayName`
2837
+ # @return [String]
2838
+ attr_accessor :display_name
2839
+
2840
+ # The set of labels that must be defined to identify a particular channel of the
2841
+ # corresponding type. Each label includes a description for how that field
2842
+ # should be populated.
2843
+ # Corresponds to the JSON property `labels`
2844
+ # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
2845
+ attr_accessor :labels
2846
+
2847
+ # The product launch stage for channels of this type.
2848
+ # Corresponds to the JSON property `launchStage`
2849
+ # @return [String]
2850
+ attr_accessor :launch_stage
2851
+
2852
+ # The full REST resource name for this descriptor. The format is: projects/[
2853
+ # PROJECT_ID_OR_NUMBER]/notificationChannelDescriptors/[TYPE] In the above, [
2854
+ # TYPE] is the value of the type field.
2855
+ # Corresponds to the JSON property `name`
2856
+ # @return [String]
2857
+ attr_accessor :name
2858
+
2859
+ # The type of notification channel, such as "email" and "sms". To view the full
2860
+ # list of channels, see Channel descriptors (https://cloud.google.com/monitoring/
2861
+ # alerts/using-channels-api#ncd). Notification channel types are globally unique.
2862
+ # Corresponds to the JSON property `type`
2863
+ # @return [String]
2864
+ attr_accessor :type
2865
+
2866
+ def initialize(**args)
2867
+ update!(**args)
2868
+ end
2869
+
2870
+ # Update properties of this object
2871
+ def update!(**args)
2872
+ @description = args[:description] if args.key?(:description)
2873
+ @display_name = args[:display_name] if args.key?(:display_name)
2874
+ @labels = args[:labels] if args.key?(:labels)
2875
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2876
+ @name = args[:name] if args.key?(:name)
2877
+ @type = args[:type] if args.key?(:type)
2878
+ end
2879
+ end
2880
+
2881
+ # A protocol buffer option, which can be attached to a message, field,
2882
+ # enumeration, etc.
2883
+ class Option
2884
+ include Google::Apis::Core::Hashable
2885
+
2886
+ # The option's name. For protobuf built-in options (options defined in
2887
+ # descriptor.proto), this is the short name. For example, "map_entry". For
2888
+ # custom options, it should be the fully-qualified name. For example, "google.
2889
+ # api.http".
2890
+ # Corresponds to the JSON property `name`
2891
+ # @return [String]
2892
+ attr_accessor :name
2893
+
2894
+ # The option's value packed in an Any message. If the value is a primitive, the
2895
+ # corresponding wrapper type defined in google/protobuf/wrappers.proto should be
2896
+ # used. If the value is an enum, it should be stored as an int32 value using the
2897
+ # google.protobuf.Int32Value type.
2898
+ # Corresponds to the JSON property `value`
2899
+ # @return [Hash<String,Object>]
2900
+ attr_accessor :value
2901
+
2902
+ def initialize(**args)
2903
+ update!(**args)
2904
+ end
2905
+
2906
+ # Update properties of this object
2907
+ def update!(**args)
2908
+ @name = args[:name] if args.key?(:name)
2909
+ @value = args[:value] if args.key?(:value)
2910
+ end
2911
+ end
2912
+
2913
+ # A PerformanceThreshold is used when each window is good when that window has a
2914
+ # sufficiently high performance.
2915
+ class PerformanceThreshold
2916
+ include Google::Apis::Core::Hashable
2917
+
2918
+ # An SLI measuring performance on a well-known service type. Performance will be
2919
+ # computed on the basis of pre-defined metrics. The type of the service_resource
2920
+ # determines the metrics to use and the service_resource.labels and
2921
+ # metric_labels are used to construct a monitoring filter to filter that metric
2922
+ # down to just the data relevant to this service.
2923
+ # Corresponds to the JSON property `basicSliPerformance`
2924
+ # @return [Google::Apis::MonitoringV3::BasicSli]
2925
+ attr_accessor :basic_sli_performance
2926
+
2927
+ # Service Level Indicators for which atomic units of service are counted
2928
+ # directly.
2929
+ # Corresponds to the JSON property `performance`
2930
+ # @return [Google::Apis::MonitoringV3::RequestBasedSli]
2931
+ attr_accessor :performance
2932
+
2933
+ # If window performance >= threshold, the window is counted as good.
2934
+ # Corresponds to the JSON property `threshold`
2935
+ # @return [Float]
2936
+ attr_accessor :threshold
2937
+
2938
+ def initialize(**args)
2939
+ update!(**args)
2940
+ end
2941
+
2942
+ # Update properties of this object
2943
+ def update!(**args)
2944
+ @basic_sli_performance = args[:basic_sli_performance] if args.key?(:basic_sli_performance)
2945
+ @performance = args[:performance] if args.key?(:performance)
2946
+ @threshold = args[:threshold] if args.key?(:threshold)
2947
+ end
2948
+ end
2949
+
2950
+ # A single data point in a time series.
2951
+ class Point
2952
+ include Google::Apis::Core::Hashable
2953
+
2954
+ # A closed time interval. It extends from the start time to the end time, and
2955
+ # includes both: [startTime, endTime]. Valid time intervals depend on the
2956
+ # MetricKind of the metric value. The end time must not be earlier than the
2957
+ # start time. When writing data points, the start time must not be more than 25
2958
+ # hours in the past and the end time must not be more than five minutes in the
2959
+ # future. For GAUGE metrics, the startTime value is technically optional; if no
2960
+ # value is specified, the start time defaults to the value of the end time, and
2961
+ # the interval represents a single point in time. If both start and end times
2962
+ # are specified, they must be identical. Such an interval is valid only for
2963
+ # GAUGE metrics, which are point-in-time measurements. The end time of a new
2964
+ # interval must be at least a millisecond after the end time of the previous
2965
+ # interval. For DELTA metrics, the start time and end time must specify a non-
2966
+ # zero interval, with subsequent points specifying contiguous and non-
2967
+ # overlapping intervals. For DELTA metrics, the start time of the next interval
2968
+ # must be at least a millisecond after the end time of the previous interval.
2969
+ # For CUMULATIVE metrics, the start time and end time must specify a a non-zero
2970
+ # interval, with subsequent points specifying the same start time and increasing
2971
+ # end times, until an event resets the cumulative value to zero and sets a new
2972
+ # start time for the following points. The new start time must be at least a
2973
+ # millisecond after the end time of the previous interval. The start time of a
2974
+ # new interval must be at least a millisecond after the end time of the previous
2975
+ # interval because intervals are closed. If the start time of a new interval is
2976
+ # the same as the end time of the previous interval, then data written at the
2977
+ # new start time could overwrite data written at the previous end time.
2978
+ # Corresponds to the JSON property `interval`
2979
+ # @return [Google::Apis::MonitoringV3::TimeInterval]
2980
+ attr_accessor :interval
2981
+
2982
+ # A single strongly-typed value.
2983
+ # Corresponds to the JSON property `value`
2984
+ # @return [Google::Apis::MonitoringV3::TypedValue]
2985
+ attr_accessor :value
2986
+
2987
+ def initialize(**args)
2988
+ update!(**args)
2989
+ end
2990
+
2991
+ # Update properties of this object
2992
+ def update!(**args)
2993
+ @interval = args[:interval] if args.key?(:interval)
2994
+ @value = args[:value] if args.key?(:value)
2995
+ end
2996
+ end
2997
+
2998
+ # A point's value columns and time interval. Each point has one or more point
2999
+ # values corresponding to the entries in point_descriptors field in the
3000
+ # TimeSeriesDescriptor associated with this object.
3001
+ class PointData
3002
+ include Google::Apis::Core::Hashable
3003
+
3004
+ # A closed time interval. It extends from the start time to the end time, and
3005
+ # includes both: [startTime, endTime]. Valid time intervals depend on the
3006
+ # MetricKind of the metric value. The end time must not be earlier than the
3007
+ # start time. When writing data points, the start time must not be more than 25
3008
+ # hours in the past and the end time must not be more than five minutes in the
3009
+ # future. For GAUGE metrics, the startTime value is technically optional; if no
3010
+ # value is specified, the start time defaults to the value of the end time, and
3011
+ # the interval represents a single point in time. If both start and end times
3012
+ # are specified, they must be identical. Such an interval is valid only for
3013
+ # GAUGE metrics, which are point-in-time measurements. The end time of a new
3014
+ # interval must be at least a millisecond after the end time of the previous
3015
+ # interval. For DELTA metrics, the start time and end time must specify a non-
3016
+ # zero interval, with subsequent points specifying contiguous and non-
3017
+ # overlapping intervals. For DELTA metrics, the start time of the next interval
3018
+ # must be at least a millisecond after the end time of the previous interval.
3019
+ # For CUMULATIVE metrics, the start time and end time must specify a a non-zero
3020
+ # interval, with subsequent points specifying the same start time and increasing
3021
+ # end times, until an event resets the cumulative value to zero and sets a new
3022
+ # start time for the following points. The new start time must be at least a
3023
+ # millisecond after the end time of the previous interval. The start time of a
3024
+ # new interval must be at least a millisecond after the end time of the previous
3025
+ # interval because intervals are closed. If the start time of a new interval is
3026
+ # the same as the end time of the previous interval, then data written at the
3027
+ # new start time could overwrite data written at the previous end time.
3028
+ # Corresponds to the JSON property `timeInterval`
3029
+ # @return [Google::Apis::MonitoringV3::TimeInterval]
3030
+ attr_accessor :time_interval
3031
+
3032
+ # The values that make up the point.
3033
+ # Corresponds to the JSON property `values`
3034
+ # @return [Array<Google::Apis::MonitoringV3::TypedValue>]
3035
+ attr_accessor :values
3036
+
3037
+ def initialize(**args)
3038
+ update!(**args)
3039
+ end
3040
+
3041
+ # Update properties of this object
3042
+ def update!(**args)
3043
+ @time_interval = args[:time_interval] if args.key?(:time_interval)
3044
+ @values = args[:values] if args.key?(:values)
3045
+ end
3046
+ end
3047
+
3048
+ # The QueryTimeSeries request.
3049
+ class QueryTimeSeriesRequest
3050
+ include Google::Apis::Core::Hashable
3051
+
3052
+ # A positive number that is the maximum number of time_series_data to return.
3053
+ # Corresponds to the JSON property `pageSize`
3054
+ # @return [Fixnum]
3055
+ attr_accessor :page_size
3056
+
3057
+ # If this field is not empty then it must contain the nextPageToken value
3058
+ # returned by a previous call to this method. Using this field causes the method
3059
+ # to return additional results from the previous method call.
3060
+ # Corresponds to the JSON property `pageToken`
3061
+ # @return [String]
3062
+ attr_accessor :page_token
3063
+
3064
+ # Required. The query in the Monitoring Query Language (https://cloud.google.com/
3065
+ # monitoring/mql/reference) format. The default time zone is in UTC.
3066
+ # Corresponds to the JSON property `query`
3067
+ # @return [String]
3068
+ attr_accessor :query
3069
+
3070
+ def initialize(**args)
3071
+ update!(**args)
3072
+ end
3073
+
3074
+ # Update properties of this object
3075
+ def update!(**args)
3076
+ @page_size = args[:page_size] if args.key?(:page_size)
3077
+ @page_token = args[:page_token] if args.key?(:page_token)
3078
+ @query = args[:query] if args.key?(:query)
3079
+ end
3080
+ end
3081
+
3082
+ # The QueryTimeSeries response.
3083
+ class QueryTimeSeriesResponse
3084
+ include Google::Apis::Core::Hashable
3085
+
3086
+ # If there are more results than have been returned, then this field is set to a
3087
+ # non-empty value. To see the additional results, use that value as page_token
3088
+ # in the next call to this method.
3089
+ # Corresponds to the JSON property `nextPageToken`
3090
+ # @return [String]
3091
+ attr_accessor :next_page_token
3092
+
3093
+ # Query execution errors that may have caused the time series data returned to
3094
+ # be incomplete. The available data will be available in the response.
3095
+ # Corresponds to the JSON property `partialErrors`
3096
+ # @return [Array<Google::Apis::MonitoringV3::Status>]
3097
+ attr_accessor :partial_errors
3098
+
3099
+ # The time series data.
3100
+ # Corresponds to the JSON property `timeSeriesData`
3101
+ # @return [Array<Google::Apis::MonitoringV3::TimeSeriesData>]
3102
+ attr_accessor :time_series_data
3103
+
3104
+ # A descriptor for the labels and points in a time series.
3105
+ # Corresponds to the JSON property `timeSeriesDescriptor`
3106
+ # @return [Google::Apis::MonitoringV3::TimeSeriesDescriptor]
3107
+ attr_accessor :time_series_descriptor
3108
+
3109
+ def initialize(**args)
3110
+ update!(**args)
3111
+ end
3112
+
3113
+ # Update properties of this object
3114
+ def update!(**args)
3115
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3116
+ @partial_errors = args[:partial_errors] if args.key?(:partial_errors)
3117
+ @time_series_data = args[:time_series_data] if args.key?(:time_series_data)
3118
+ @time_series_descriptor = args[:time_series_descriptor] if args.key?(:time_series_descriptor)
3119
+ end
3120
+ end
3121
+
3122
+ # The range of the population values.
3123
+ class Range
3124
+ include Google::Apis::Core::Hashable
3125
+
3126
+ # The maximum of the population values.
3127
+ # Corresponds to the JSON property `max`
3128
+ # @return [Float]
3129
+ attr_accessor :max
3130
+
3131
+ # The minimum of the population values.
3132
+ # Corresponds to the JSON property `min`
3133
+ # @return [Float]
3134
+ attr_accessor :min
3135
+
3136
+ def initialize(**args)
3137
+ update!(**args)
3138
+ end
3139
+
3140
+ # Update properties of this object
3141
+ def update!(**args)
3142
+ @max = args[:max] if args.key?(:max)
3143
+ @min = args[:min] if args.key?(:min)
3144
+ end
3145
+ end
3146
+
3147
+ # Service Level Indicators for which atomic units of service are counted
3148
+ # directly.
3149
+ class RequestBasedSli
3150
+ include Google::Apis::Core::Hashable
3151
+
3152
+ # A DistributionCut defines a TimeSeries and thresholds used for measuring good
3153
+ # service and total service. The TimeSeries must have ValueType = DISTRIBUTION
3154
+ # and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service
3155
+ # will be the count of values x in the Distribution such that range.min <= x <
3156
+ # range.max.
3157
+ # Corresponds to the JSON property `distributionCut`
3158
+ # @return [Google::Apis::MonitoringV3::DistributionCut]
3159
+ attr_accessor :distribution_cut
3160
+
3161
+ # A TimeSeriesRatio specifies two TimeSeries to use for computing the
3162
+ # good_service / total_service ratio. The specified TimeSeries must have
3163
+ # ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or
3164
+ # MetricKind = CUMULATIVE. The TimeSeriesRatio must specify exactly two of good,
3165
+ # bad, and total, and the relationship good_service + bad_service =
3166
+ # total_service will be assumed.
3167
+ # Corresponds to the JSON property `goodTotalRatio`
3168
+ # @return [Google::Apis::MonitoringV3::TimeSeriesRatio]
3169
+ attr_accessor :good_total_ratio
3170
+
3171
+ def initialize(**args)
3172
+ update!(**args)
3173
+ end
3174
+
3175
+ # Update properties of this object
3176
+ def update!(**args)
3177
+ @distribution_cut = args[:distribution_cut] if args.key?(:distribution_cut)
3178
+ @good_total_ratio = args[:good_total_ratio] if args.key?(:good_total_ratio)
3179
+ end
3180
+ end
3181
+
3182
+ # The resource submessage for group checks. It can be used instead of a
3183
+ # monitored resource, when multiple resources are being monitored.
3184
+ class ResourceGroup
3185
+ include Google::Apis::Core::Hashable
3186
+
3187
+ # The group of resources being monitored. Should be only the [GROUP_ID], and not
3188
+ # the full-path projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID].
3189
+ # Corresponds to the JSON property `groupId`
3190
+ # @return [String]
3191
+ attr_accessor :group_id
3192
+
3193
+ # The resource type of the group members.
3194
+ # Corresponds to the JSON property `resourceType`
3195
+ # @return [String]
3196
+ attr_accessor :resource_type
3197
+
3198
+ def initialize(**args)
3199
+ update!(**args)
3200
+ end
3201
+
3202
+ # Update properties of this object
3203
+ def update!(**args)
3204
+ @group_id = args[:group_id] if args.key?(:group_id)
3205
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
3206
+ end
3207
+ end
3208
+
3209
+ # The SendNotificationChannelVerificationCode request.
3210
+ class SendNotificationChannelVerificationCodeRequest
3211
+ include Google::Apis::Core::Hashable
3212
+
3213
+ def initialize(**args)
3214
+ update!(**args)
3215
+ end
3216
+
3217
+ # Update properties of this object
3218
+ def update!(**args)
3219
+ end
3220
+ end
3221
+
3222
+ # A Service is a discrete, autonomous, and network-accessible unit, designed to
3223
+ # solve an individual concern (Wikipedia (https://en.wikipedia.org/wiki/Service-
3224
+ # orientation)). In Cloud Monitoring, a Service acts as the root resource under
3225
+ # which operational aspects of the service are accessible.
3226
+ class Service
3227
+ include Google::Apis::Core::Hashable
3228
+
3229
+ # App Engine service. Learn more at https://cloud.google.com/appengine.
3230
+ # Corresponds to the JSON property `appEngine`
3231
+ # @return [Google::Apis::MonitoringV3::AppEngine]
3232
+ attr_accessor :app_engine
3233
+
3234
+ # Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.
3235
+ # Corresponds to the JSON property `cloudEndpoints`
3236
+ # @return [Google::Apis::MonitoringV3::CloudEndpoints]
3237
+ attr_accessor :cloud_endpoints
3238
+
3239
+ # Istio service scoped to a single Kubernetes cluster. Learn more at https://
3240
+ # istio.io. Clusters running OSS Istio will have their services ingested as this
3241
+ # type.
3242
+ # Corresponds to the JSON property `clusterIstio`
3243
+ # @return [Google::Apis::MonitoringV3::ClusterIstio]
3244
+ attr_accessor :cluster_istio
3245
+
3246
+ # Custom view of service telemetry. Currently a place-holder pending final
3247
+ # design.
3248
+ # Corresponds to the JSON property `custom`
3249
+ # @return [Google::Apis::MonitoringV3::Custom]
3250
+ attr_accessor :custom
3251
+
3252
+ # Name used for UI elements listing this Service.
3253
+ # Corresponds to the JSON property `displayName`
3254
+ # @return [String]
3255
+ attr_accessor :display_name
3256
+
3257
+ # Istio service scoped to an Istio mesh. Anthos clusters running ASM < 1.6.8
3258
+ # will have their services ingested as this type.
3259
+ # Corresponds to the JSON property `meshIstio`
3260
+ # @return [Google::Apis::MonitoringV3::MeshIstio]
3261
+ attr_accessor :mesh_istio
3262
+
3263
+ # Resource name for this Service. The format is: projects/[PROJECT_ID_OR_NUMBER]/
3264
+ # services/[SERVICE_ID]
3265
+ # Corresponds to the JSON property `name`
3266
+ # @return [String]
3267
+ attr_accessor :name
3268
+
3269
+ # Configuration for how to query telemetry on a Service.
3270
+ # Corresponds to the JSON property `telemetry`
3271
+ # @return [Google::Apis::MonitoringV3::Telemetry]
3272
+ attr_accessor :telemetry
3273
+
3274
+ def initialize(**args)
3275
+ update!(**args)
3276
+ end
3277
+
3278
+ # Update properties of this object
3279
+ def update!(**args)
3280
+ @app_engine = args[:app_engine] if args.key?(:app_engine)
3281
+ @cloud_endpoints = args[:cloud_endpoints] if args.key?(:cloud_endpoints)
3282
+ @cluster_istio = args[:cluster_istio] if args.key?(:cluster_istio)
3283
+ @custom = args[:custom] if args.key?(:custom)
3284
+ @display_name = args[:display_name] if args.key?(:display_name)
3285
+ @mesh_istio = args[:mesh_istio] if args.key?(:mesh_istio)
3286
+ @name = args[:name] if args.key?(:name)
3287
+ @telemetry = args[:telemetry] if args.key?(:telemetry)
3288
+ end
3289
+ end
3290
+
3291
+ # A Service-Level Indicator (SLI) describes the "performance" of a service. For
3292
+ # some services, the SLI is well-defined. In such cases, the SLI can be
3293
+ # described easily by referencing the well-known SLI and providing the needed
3294
+ # parameters. Alternatively, a "custom" SLI can be defined with a query to the
3295
+ # underlying metric store. An SLI is defined to be good_service / total_service
3296
+ # over any queried time interval. The value of performance always falls into the
3297
+ # range 0 <= performance <= 1. A custom SLI describes how to compute this ratio,
3298
+ # whether this is by dividing values from a pair of time series, cutting a
3299
+ # Distribution into good and bad counts, or counting time windows in which the
3300
+ # service complies with a criterion. For separation of concerns, a single
3301
+ # Service-Level Indicator measures performance for only one aspect of service
3302
+ # quality, such as fraction of successful queries or fast-enough queries.
3303
+ class ServiceLevelIndicator
3304
+ include Google::Apis::Core::Hashable
3305
+
3306
+ # An SLI measuring performance on a well-known service type. Performance will be
3307
+ # computed on the basis of pre-defined metrics. The type of the service_resource
3308
+ # determines the metrics to use and the service_resource.labels and
3309
+ # metric_labels are used to construct a monitoring filter to filter that metric
3310
+ # down to just the data relevant to this service.
3311
+ # Corresponds to the JSON property `basicSli`
3312
+ # @return [Google::Apis::MonitoringV3::BasicSli]
3313
+ attr_accessor :basic_sli
3314
+
3315
+ # Service Level Indicators for which atomic units of service are counted
3316
+ # directly.
3317
+ # Corresponds to the JSON property `requestBased`
3318
+ # @return [Google::Apis::MonitoringV3::RequestBasedSli]
3319
+ attr_accessor :request_based
3320
+
3321
+ # A WindowsBasedSli defines good_service as the count of time windows for which
3322
+ # the provided service was of good quality. Criteria for determining if service
3323
+ # was good are embedded in the window_criterion.
3324
+ # Corresponds to the JSON property `windowsBased`
3325
+ # @return [Google::Apis::MonitoringV3::WindowsBasedSli]
3326
+ attr_accessor :windows_based
3327
+
3328
+ def initialize(**args)
3329
+ update!(**args)
3330
+ end
3331
+
3332
+ # Update properties of this object
3333
+ def update!(**args)
3334
+ @basic_sli = args[:basic_sli] if args.key?(:basic_sli)
3335
+ @request_based = args[:request_based] if args.key?(:request_based)
3336
+ @windows_based = args[:windows_based] if args.key?(:windows_based)
3337
+ end
3338
+ end
3339
+
3340
+ # A Service-Level Objective (SLO) describes a level of desired good service. It
3341
+ # consists of a service-level indicator (SLI), a performance goal, and a period
3342
+ # over which the objective is to be evaluated against that goal. The SLO can use
3343
+ # SLIs defined in a number of different manners. Typical SLOs might include "99%
3344
+ # of requests in each rolling week have latency below 200 milliseconds" or "99.5%
3345
+ # of requests in each calendar month return successfully."
3346
+ class ServiceLevelObjective
3347
+ include Google::Apis::Core::Hashable
3348
+
3349
+ # A calendar period, semantically "since the start of the current ". At this
3350
+ # time, only DAY, WEEK, FORTNIGHT, and MONTH are supported.
3351
+ # Corresponds to the JSON property `calendarPeriod`
3352
+ # @return [String]
3353
+ attr_accessor :calendar_period
3354
+
3355
+ # Name used for UI elements listing this SLO.
3356
+ # Corresponds to the JSON property `displayName`
3357
+ # @return [String]
3358
+ attr_accessor :display_name
3359
+
3360
+ # The fraction of service that must be good in order for this objective to be
3361
+ # met. 0 < goal <= 0.999.
3362
+ # Corresponds to the JSON property `goal`
3363
+ # @return [Float]
3364
+ attr_accessor :goal
3365
+
3366
+ # Resource name for this ServiceLevelObjective. The format is: projects/[
3367
+ # PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
3368
+ # Corresponds to the JSON property `name`
3369
+ # @return [String]
3370
+ attr_accessor :name
3371
+
3372
+ # A rolling time period, semantically "in the past ". Must be an integer
3373
+ # multiple of 1 day no larger than 30 days.
3374
+ # Corresponds to the JSON property `rollingPeriod`
3375
+ # @return [String]
3376
+ attr_accessor :rolling_period
3377
+
3378
+ # A Service-Level Indicator (SLI) describes the "performance" of a service. For
3379
+ # some services, the SLI is well-defined. In such cases, the SLI can be
3380
+ # described easily by referencing the well-known SLI and providing the needed
3381
+ # parameters. Alternatively, a "custom" SLI can be defined with a query to the
3382
+ # underlying metric store. An SLI is defined to be good_service / total_service
3383
+ # over any queried time interval. The value of performance always falls into the
3384
+ # range 0 <= performance <= 1. A custom SLI describes how to compute this ratio,
3385
+ # whether this is by dividing values from a pair of time series, cutting a
3386
+ # Distribution into good and bad counts, or counting time windows in which the
3387
+ # service complies with a criterion. For separation of concerns, a single
3388
+ # Service-Level Indicator measures performance for only one aspect of service
3389
+ # quality, such as fraction of successful queries or fast-enough queries.
3390
+ # Corresponds to the JSON property `serviceLevelIndicator`
3391
+ # @return [Google::Apis::MonitoringV3::ServiceLevelIndicator]
3392
+ attr_accessor :service_level_indicator
3393
+
3394
+ def initialize(**args)
3395
+ update!(**args)
3396
+ end
3397
+
3398
+ # Update properties of this object
3399
+ def update!(**args)
3400
+ @calendar_period = args[:calendar_period] if args.key?(:calendar_period)
3401
+ @display_name = args[:display_name] if args.key?(:display_name)
3402
+ @goal = args[:goal] if args.key?(:goal)
3403
+ @name = args[:name] if args.key?(:name)
3404
+ @rolling_period = args[:rolling_period] if args.key?(:rolling_period)
3405
+ @service_level_indicator = args[:service_level_indicator] if args.key?(:service_level_indicator)
3406
+ end
3407
+ end
3408
+
3409
+ # SourceContext represents information about the source of a protobuf element,
3410
+ # like the file in which it is defined.
3411
+ class SourceContext
3412
+ include Google::Apis::Core::Hashable
3413
+
3414
+ # The path-qualified name of the .proto file that contained the associated
3415
+ # protobuf element. For example: "google/protobuf/source_context.proto".
3416
+ # Corresponds to the JSON property `fileName`
3417
+ # @return [String]
3418
+ attr_accessor :file_name
3419
+
3420
+ def initialize(**args)
3421
+ update!(**args)
3422
+ end
3423
+
3424
+ # Update properties of this object
3425
+ def update!(**args)
3426
+ @file_name = args[:file_name] if args.key?(:file_name)
3427
+ end
3428
+ end
3429
+
3430
+ # The context of a span, attached to Exemplars in Distribution values during
3431
+ # aggregation.It contains the name of a span with format: projects/[
3432
+ # PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID]
3433
+ class SpanContext
3434
+ include Google::Apis::Core::Hashable
3435
+
3436
+ # The resource name of the span. The format is: projects/[PROJECT_ID_OR_NUMBER]/
3437
+ # traces/[TRACE_ID]/spans/[SPAN_ID] [TRACE_ID] is a unique identifier for a
3438
+ # trace within a project; it is a 32-character hexadecimal encoding of a 16-byte
3439
+ # array.[SPAN_ID] is a unique identifier for a span within a trace; it is a 16-
3440
+ # character hexadecimal encoding of an 8-byte array.
3441
+ # Corresponds to the JSON property `spanName`
3442
+ # @return [String]
3443
+ attr_accessor :span_name
3444
+
3445
+ def initialize(**args)
3446
+ update!(**args)
3447
+ end
3448
+
3449
+ # Update properties of this object
3450
+ def update!(**args)
3451
+ @span_name = args[:span_name] if args.key?(:span_name)
3452
+ end
3453
+ end
3454
+
3455
+ # The Status type defines a logical error model that is suitable for different
3456
+ # programming environments, including REST APIs and RPC APIs. It is used by gRPC
3457
+ # (https://github.com/grpc). Each Status message contains three pieces of data:
3458
+ # error code, error message, and error details.You can find out more about this
3459
+ # error model and how to work with it in the API Design Guide (https://cloud.
3460
+ # google.com/apis/design/errors).
3461
+ class Status
3462
+ include Google::Apis::Core::Hashable
3463
+
3464
+ # The status code, which should be an enum value of google.rpc.Code.
3465
+ # Corresponds to the JSON property `code`
3466
+ # @return [Fixnum]
3467
+ attr_accessor :code
3468
+
3469
+ # A list of messages that carry the error details. There is a common set of
3470
+ # message types for APIs to use.
3471
+ # Corresponds to the JSON property `details`
3472
+ # @return [Array<Hash<String,Object>>]
3473
+ attr_accessor :details
3474
+
3475
+ # A developer-facing error message, which should be in English. Any user-facing
3476
+ # error message should be localized and sent in the google.rpc.Status.details
3477
+ # field, or localized by the client.
3478
+ # Corresponds to the JSON property `message`
3479
+ # @return [String]
3480
+ attr_accessor :message
3481
+
3482
+ def initialize(**args)
3483
+ update!(**args)
3484
+ end
3485
+
3486
+ # Update properties of this object
3487
+ def update!(**args)
3488
+ @code = args[:code] if args.key?(:code)
3489
+ @details = args[:details] if args.key?(:details)
3490
+ @message = args[:message] if args.key?(:message)
3491
+ end
3492
+ end
3493
+
3494
+ # Information required for a TCP Uptime check request.
3495
+ class TcpCheck
3496
+ include Google::Apis::Core::Hashable
3497
+
3498
+ # The TCP port on the server against which to run the check. Will be combined
3499
+ # with host (specified within the monitored_resource) to construct the full URL.
3500
+ # Required.
3501
+ # Corresponds to the JSON property `port`
3502
+ # @return [Fixnum]
3503
+ attr_accessor :port
3504
+
3505
+ def initialize(**args)
3506
+ update!(**args)
3507
+ end
3508
+
3509
+ # Update properties of this object
3510
+ def update!(**args)
3511
+ @port = args[:port] if args.key?(:port)
3512
+ end
3513
+ end
3514
+
3515
+ # Configuration for how to query telemetry on a Service.
3516
+ class Telemetry
3517
+ include Google::Apis::Core::Hashable
3518
+
3519
+ # The full name of the resource that defines this service. Formatted as
3520
+ # described in https://cloud.google.com/apis/design/resource_names.
3521
+ # Corresponds to the JSON property `resourceName`
3522
+ # @return [String]
3523
+ attr_accessor :resource_name
3524
+
3525
+ def initialize(**args)
3526
+ update!(**args)
3527
+ end
3528
+
3529
+ # Update properties of this object
3530
+ def update!(**args)
3531
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
3532
+ end
3533
+ end
3534
+
3535
+ # A closed time interval. It extends from the start time to the end time, and
3536
+ # includes both: [startTime, endTime]. Valid time intervals depend on the
3537
+ # MetricKind of the metric value. The end time must not be earlier than the
3538
+ # start time. When writing data points, the start time must not be more than 25
3539
+ # hours in the past and the end time must not be more than five minutes in the
3540
+ # future. For GAUGE metrics, the startTime value is technically optional; if no
3541
+ # value is specified, the start time defaults to the value of the end time, and
3542
+ # the interval represents a single point in time. If both start and end times
3543
+ # are specified, they must be identical. Such an interval is valid only for
3544
+ # GAUGE metrics, which are point-in-time measurements. The end time of a new
3545
+ # interval must be at least a millisecond after the end time of the previous
3546
+ # interval. For DELTA metrics, the start time and end time must specify a non-
3547
+ # zero interval, with subsequent points specifying contiguous and non-
3548
+ # overlapping intervals. For DELTA metrics, the start time of the next interval
3549
+ # must be at least a millisecond after the end time of the previous interval.
3550
+ # For CUMULATIVE metrics, the start time and end time must specify a a non-zero
3551
+ # interval, with subsequent points specifying the same start time and increasing
3552
+ # end times, until an event resets the cumulative value to zero and sets a new
3553
+ # start time for the following points. The new start time must be at least a
3554
+ # millisecond after the end time of the previous interval. The start time of a
3555
+ # new interval must be at least a millisecond after the end time of the previous
3556
+ # interval because intervals are closed. If the start time of a new interval is
3557
+ # the same as the end time of the previous interval, then data written at the
3558
+ # new start time could overwrite data written at the previous end time.
3559
+ class TimeInterval
3560
+ include Google::Apis::Core::Hashable
3561
+
3562
+ # Required. The end of the time interval.
3563
+ # Corresponds to the JSON property `endTime`
3564
+ # @return [String]
3565
+ attr_accessor :end_time
3566
+
3567
+ # Optional. The beginning of the time interval. The default value for the start
3568
+ # time is the end time. The start time must not be later than the end time.
3569
+ # Corresponds to the JSON property `startTime`
3570
+ # @return [String]
3571
+ attr_accessor :start_time
3572
+
3573
+ def initialize(**args)
3574
+ update!(**args)
3575
+ end
3576
+
3577
+ # Update properties of this object
3578
+ def update!(**args)
3579
+ @end_time = args[:end_time] if args.key?(:end_time)
3580
+ @start_time = args[:start_time] if args.key?(:start_time)
3581
+ end
3582
+ end
3583
+
3584
+ # A collection of data points that describes the time-varying values of a metric.
3585
+ # A time series is identified by a combination of a fully-specified monitored
3586
+ # resource and a fully-specified metric. This type is used for both listing and
3587
+ # creating time series.
3588
+ class TimeSeries
3589
+ include Google::Apis::Core::Hashable
3590
+
3591
+ # Auxiliary metadata for a MonitoredResource object. MonitoredResource objects
3592
+ # contain the minimum set of information to uniquely identify a monitored
3593
+ # resource instance. There is some other useful auxiliary metadata. Monitoring
3594
+ # and Logging use an ingestion pipeline to extract metadata for cloud resources
3595
+ # of all types, and store the metadata in this message.
3596
+ # Corresponds to the JSON property `metadata`
3597
+ # @return [Google::Apis::MonitoringV3::MonitoredResourceMetadata]
3598
+ attr_accessor :metadata
3599
+
3600
+ # A specific metric, identified by specifying values for all of the labels of a
3601
+ # MetricDescriptor.
3602
+ # Corresponds to the JSON property `metric`
3603
+ # @return [Google::Apis::MonitoringV3::Metric]
3604
+ attr_accessor :metric
3605
+
3606
+ # The metric kind of the time series. When listing time series, this metric kind
3607
+ # might be different from the metric kind of the associated metric if this time
3608
+ # series is an alignment or reduction of other time series.When creating a time
3609
+ # series, this field is optional. If present, it must be the same as the metric
3610
+ # kind of the associated metric. If the associated metric's descriptor must be
3611
+ # auto-created, then this field specifies the metric kind of the new descriptor
3612
+ # and must be either GAUGE (the default) or CUMULATIVE.
3613
+ # Corresponds to the JSON property `metricKind`
3614
+ # @return [String]
3615
+ attr_accessor :metric_kind
3616
+
3617
+ # The data points of this time series. When listing time series, points are
3618
+ # returned in reverse time order.When creating a time series, this field must
3619
+ # contain exactly one point and the point's type must be the same as the value
3620
+ # type of the associated metric. If the associated metric's descriptor must be
3621
+ # auto-created, then the value type of the descriptor is determined by the point'
3622
+ # s type, which must be BOOL, INT64, DOUBLE, or DISTRIBUTION.
3623
+ # Corresponds to the JSON property `points`
3624
+ # @return [Array<Google::Apis::MonitoringV3::Point>]
3625
+ attr_accessor :points
3626
+
3627
+ # An object representing a resource that can be used for monitoring, logging,
3628
+ # billing, or other purposes. Examples include virtual machine instances,
3629
+ # databases, and storage devices such as disks. The type field identifies a
3630
+ # MonitoredResourceDescriptor object that describes the resource's schema.
3631
+ # Information in the labels field identifies the actual resource and its
3632
+ # attributes according to the schema. For example, a particular Compute Engine
3633
+ # VM instance could be represented by the following object, because the
3634
+ # MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "
3635
+ # zone": ` "type": "gce_instance", "labels": ` "instance_id": "12345678901234", "
3636
+ # zone": "us-central1-a" ``
3637
+ # Corresponds to the JSON property `resource`
3638
+ # @return [Google::Apis::MonitoringV3::MonitoredResource]
3639
+ attr_accessor :resource
3640
+
3641
+ # The units in which the metric value is reported. It is only applicable if the
3642
+ # value_type is INT64, DOUBLE, or DISTRIBUTION. The unit defines the
3643
+ # representation of the stored metric values.
3644
+ # Corresponds to the JSON property `unit`
3645
+ # @return [String]
3646
+ attr_accessor :unit
3647
+
3648
+ # The value type of the time series. When listing time series, this value type
3649
+ # might be different from the value type of the associated metric if this time
3650
+ # series is an alignment or reduction of other time series.When creating a time
3651
+ # series, this field is optional. If present, it must be the same as the type of
3652
+ # the data in the points field.
3653
+ # Corresponds to the JSON property `valueType`
3654
+ # @return [String]
3655
+ attr_accessor :value_type
3656
+
3657
+ def initialize(**args)
3658
+ update!(**args)
3659
+ end
3660
+
3661
+ # Update properties of this object
3662
+ def update!(**args)
3663
+ @metadata = args[:metadata] if args.key?(:metadata)
3664
+ @metric = args[:metric] if args.key?(:metric)
3665
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
3666
+ @points = args[:points] if args.key?(:points)
3667
+ @resource = args[:resource] if args.key?(:resource)
3668
+ @unit = args[:unit] if args.key?(:unit)
3669
+ @value_type = args[:value_type] if args.key?(:value_type)
3670
+ end
3671
+ end
3672
+
3673
+ # Represents the values of a time series associated with a TimeSeriesDescriptor.
3674
+ class TimeSeriesData
3675
+ include Google::Apis::Core::Hashable
3676
+
3677
+ # The values of the labels in the time series identifier, given in the same
3678
+ # order as the label_descriptors field of the TimeSeriesDescriptor associated
3679
+ # with this object. Each value must have a value of the type given in the
3680
+ # corresponding entry of label_descriptors.
3681
+ # Corresponds to the JSON property `labelValues`
3682
+ # @return [Array<Google::Apis::MonitoringV3::LabelValue>]
3683
+ attr_accessor :label_values
3684
+
3685
+ # The points in the time series.
3686
+ # Corresponds to the JSON property `pointData`
3687
+ # @return [Array<Google::Apis::MonitoringV3::PointData>]
3688
+ attr_accessor :point_data
3689
+
3690
+ def initialize(**args)
3691
+ update!(**args)
3692
+ end
3693
+
3694
+ # Update properties of this object
3695
+ def update!(**args)
3696
+ @label_values = args[:label_values] if args.key?(:label_values)
3697
+ @point_data = args[:point_data] if args.key?(:point_data)
3698
+ end
3699
+ end
3700
+
3701
+ # A descriptor for the labels and points in a time series.
3702
+ class TimeSeriesDescriptor
3703
+ include Google::Apis::Core::Hashable
3704
+
3705
+ # Descriptors for the labels.
3706
+ # Corresponds to the JSON property `labelDescriptors`
3707
+ # @return [Array<Google::Apis::MonitoringV3::LabelDescriptor>]
3708
+ attr_accessor :label_descriptors
3709
+
3710
+ # Descriptors for the point data value columns.
3711
+ # Corresponds to the JSON property `pointDescriptors`
3712
+ # @return [Array<Google::Apis::MonitoringV3::ValueDescriptor>]
3713
+ attr_accessor :point_descriptors
3714
+
3715
+ def initialize(**args)
3716
+ update!(**args)
3717
+ end
3718
+
3719
+ # Update properties of this object
3720
+ def update!(**args)
3721
+ @label_descriptors = args[:label_descriptors] if args.key?(:label_descriptors)
3722
+ @point_descriptors = args[:point_descriptors] if args.key?(:point_descriptors)
3723
+ end
3724
+ end
3725
+
3726
+ # A TimeSeriesRatio specifies two TimeSeries to use for computing the
3727
+ # good_service / total_service ratio. The specified TimeSeries must have
3728
+ # ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or
3729
+ # MetricKind = CUMULATIVE. The TimeSeriesRatio must specify exactly two of good,
3730
+ # bad, and total, and the relationship good_service + bad_service =
3731
+ # total_service will be assumed.
3732
+ class TimeSeriesRatio
3733
+ include Google::Apis::Core::Hashable
3734
+
3735
+ # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters)
3736
+ # specifying a TimeSeries quantifying bad service, either demanded service that
3737
+ # was not provided or demanded service that was of inadequate quality. Must have
3738
+ # ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or
3739
+ # MetricKind = CUMULATIVE.
3740
+ # Corresponds to the JSON property `badServiceFilter`
3741
+ # @return [String]
3742
+ attr_accessor :bad_service_filter
3743
+
3744
+ # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters)
3745
+ # specifying a TimeSeries quantifying good service provided. Must have ValueType
3746
+ # = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or MetricKind =
3747
+ # CUMULATIVE.
3748
+ # Corresponds to the JSON property `goodServiceFilter`
3749
+ # @return [String]
3750
+ attr_accessor :good_service_filter
3751
+
3752
+ # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters)
3753
+ # specifying a TimeSeries quantifying total demanded service. Must have
3754
+ # ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or
3755
+ # MetricKind = CUMULATIVE.
3756
+ # Corresponds to the JSON property `totalServiceFilter`
3757
+ # @return [String]
3758
+ attr_accessor :total_service_filter
3759
+
3760
+ def initialize(**args)
3761
+ update!(**args)
3762
+ end
3763
+
3764
+ # Update properties of this object
3765
+ def update!(**args)
3766
+ @bad_service_filter = args[:bad_service_filter] if args.key?(:bad_service_filter)
3767
+ @good_service_filter = args[:good_service_filter] if args.key?(:good_service_filter)
3768
+ @total_service_filter = args[:total_service_filter] if args.key?(:total_service_filter)
3769
+ end
3770
+ end
3771
+
3772
+ # Specifies how many time series must fail a predicate to trigger a condition.
3773
+ # If not specified, then a `count: 1` trigger is used.
3774
+ class Trigger
3775
+ include Google::Apis::Core::Hashable
3776
+
3777
+ # The absolute number of time series that must fail the predicate for the
3778
+ # condition to be triggered.
3779
+ # Corresponds to the JSON property `count`
3780
+ # @return [Fixnum]
3781
+ attr_accessor :count
3782
+
3783
+ # The percentage of time series that must fail the predicate for the condition
3784
+ # to be triggered.
3785
+ # Corresponds to the JSON property `percent`
3786
+ # @return [Float]
3787
+ attr_accessor :percent
3788
+
3789
+ def initialize(**args)
3790
+ update!(**args)
3791
+ end
3792
+
3793
+ # Update properties of this object
3794
+ def update!(**args)
3795
+ @count = args[:count] if args.key?(:count)
3796
+ @percent = args[:percent] if args.key?(:percent)
3797
+ end
3798
+ end
3799
+
3800
+ # A protocol buffer message type.
3801
+ class Type
3802
+ include Google::Apis::Core::Hashable
3803
+
3804
+ # The list of fields.
3805
+ # Corresponds to the JSON property `fields`
3806
+ # @return [Array<Google::Apis::MonitoringV3::Field>]
3807
+ attr_accessor :fields
3808
+
3809
+ # The fully qualified message name.
3810
+ # Corresponds to the JSON property `name`
3811
+ # @return [String]
3812
+ attr_accessor :name
3813
+
3814
+ # The list of types appearing in oneof definitions in this type.
3815
+ # Corresponds to the JSON property `oneofs`
3816
+ # @return [Array<String>]
3817
+ attr_accessor :oneofs
3818
+
3819
+ # The protocol buffer options.
3820
+ # Corresponds to the JSON property `options`
3821
+ # @return [Array<Google::Apis::MonitoringV3::Option>]
3822
+ attr_accessor :options
3823
+
3824
+ # SourceContext represents information about the source of a protobuf element,
3825
+ # like the file in which it is defined.
3826
+ # Corresponds to the JSON property `sourceContext`
3827
+ # @return [Google::Apis::MonitoringV3::SourceContext]
3828
+ attr_accessor :source_context
3829
+
3830
+ # The source syntax.
3831
+ # Corresponds to the JSON property `syntax`
3832
+ # @return [String]
3833
+ attr_accessor :syntax
3834
+
3835
+ def initialize(**args)
3836
+ update!(**args)
3837
+ end
3838
+
3839
+ # Update properties of this object
3840
+ def update!(**args)
3841
+ @fields = args[:fields] if args.key?(:fields)
3842
+ @name = args[:name] if args.key?(:name)
3843
+ @oneofs = args[:oneofs] if args.key?(:oneofs)
3844
+ @options = args[:options] if args.key?(:options)
3845
+ @source_context = args[:source_context] if args.key?(:source_context)
3846
+ @syntax = args[:syntax] if args.key?(:syntax)
3847
+ end
3848
+ end
3849
+
3850
+ # A single strongly-typed value.
3851
+ class TypedValue
3852
+ include Google::Apis::Core::Hashable
3853
+
3854
+ # A Boolean value: true or false.
3855
+ # Corresponds to the JSON property `boolValue`
3856
+ # @return [Boolean]
3857
+ attr_accessor :bool_value
3858
+ alias_method :bool_value?, :bool_value
3859
+
3860
+ # Distribution contains summary statistics for a population of values. It
3861
+ # optionally contains a histogram representing the distribution of those values
3862
+ # across a set of buckets.The summary statistics are the count, mean, sum of the
3863
+ # squared deviation from the mean, the minimum, and the maximum of the set of
3864
+ # population of values. The histogram is based on a sequence of buckets and
3865
+ # gives a count of values that fall into each bucket. The boundaries of the
3866
+ # buckets are given either explicitly or by formulas for buckets of fixed or
3867
+ # exponentially increasing widths.Although it is not forbidden, it is generally
3868
+ # a bad idea to include non-finite values (infinities or NaNs) in the population
3869
+ # of values, as this will render the mean and sum_of_squared_deviation fields
3870
+ # meaningless.
3871
+ # Corresponds to the JSON property `distributionValue`
3872
+ # @return [Google::Apis::MonitoringV3::Distribution]
3873
+ attr_accessor :distribution_value
3874
+
3875
+ # A 64-bit double-precision floating-point number. Its magnitude is
3876
+ # approximately ±10±300 and it has 16 significant digits of precision.
3877
+ # Corresponds to the JSON property `doubleValue`
3878
+ # @return [Float]
3879
+ attr_accessor :double_value
3880
+
3881
+ # A 64-bit integer. Its range is approximately ±9.2x1018.
3882
+ # Corresponds to the JSON property `int64Value`
3883
+ # @return [Fixnum]
3884
+ attr_accessor :int64_value
3885
+
3886
+ # A variable-length string value.
3887
+ # Corresponds to the JSON property `stringValue`
3888
+ # @return [String]
3889
+ attr_accessor :string_value
3890
+
3891
+ def initialize(**args)
3892
+ update!(**args)
3893
+ end
3894
+
3895
+ # Update properties of this object
3896
+ def update!(**args)
3897
+ @bool_value = args[:bool_value] if args.key?(:bool_value)
3898
+ @distribution_value = args[:distribution_value] if args.key?(:distribution_value)
3899
+ @double_value = args[:double_value] if args.key?(:double_value)
3900
+ @int64_value = args[:int64_value] if args.key?(:int64_value)
3901
+ @string_value = args[:string_value] if args.key?(:string_value)
3902
+ end
3903
+ end
3904
+
3905
+ # This message configures which resources and services to monitor for
3906
+ # availability.
3907
+ class UptimeCheckConfig
3908
+ include Google::Apis::Core::Hashable
3909
+
3910
+ # The content that is expected to appear in the data returned by the target
3911
+ # server against which the check is run. Currently, only the first entry in the
3912
+ # content_matchers list is supported, and additional entries will be ignored.
3913
+ # This field is optional and should only be specified if a content match is
3914
+ # required as part of the/ Uptime check.
3915
+ # Corresponds to the JSON property `contentMatchers`
3916
+ # @return [Array<Google::Apis::MonitoringV3::ContentMatcher>]
3917
+ attr_accessor :content_matchers
3918
+
3919
+ # A human-friendly name for the Uptime check configuration. The display name
3920
+ # should be unique within a Stackdriver Workspace in order to make it easier to
3921
+ # identify; however, uniqueness is not enforced. Required.
3922
+ # Corresponds to the JSON property `displayName`
3923
+ # @return [String]
3924
+ attr_accessor :display_name
3925
+
3926
+ # Information involved in an HTTP/HTTPS Uptime check request.
3927
+ # Corresponds to the JSON property `httpCheck`
3928
+ # @return [Google::Apis::MonitoringV3::HttpCheck]
3929
+ attr_accessor :http_check
3930
+
3931
+ # The internal checkers that this check will egress from. If is_internal is true
3932
+ # and this list is empty, the check will egress from all the InternalCheckers
3933
+ # configured for the project that owns this UptimeCheckConfig.
3934
+ # Corresponds to the JSON property `internalCheckers`
3935
+ # @return [Array<Google::Apis::MonitoringV3::InternalChecker>]
3936
+ attr_accessor :internal_checkers
3937
+
3938
+ # If this is true, then checks are made only from the 'internal_checkers'. If it
3939
+ # is false, then checks are made only from the 'selected_regions'. It is an
3940
+ # error to provide 'selected_regions' when is_internal is true, or to provide '
3941
+ # internal_checkers' when is_internal is false.
3942
+ # Corresponds to the JSON property `isInternal`
3943
+ # @return [Boolean]
3944
+ attr_accessor :is_internal
3945
+ alias_method :is_internal?, :is_internal
3946
+
3947
+ # An object representing a resource that can be used for monitoring, logging,
3948
+ # billing, or other purposes. Examples include virtual machine instances,
3949
+ # databases, and storage devices such as disks. The type field identifies a
3950
+ # MonitoredResourceDescriptor object that describes the resource's schema.
3951
+ # Information in the labels field identifies the actual resource and its
3952
+ # attributes according to the schema. For example, a particular Compute Engine
3953
+ # VM instance could be represented by the following object, because the
3954
+ # MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "
3955
+ # zone": ` "type": "gce_instance", "labels": ` "instance_id": "12345678901234", "
3956
+ # zone": "us-central1-a" ``
3957
+ # Corresponds to the JSON property `monitoredResource`
3958
+ # @return [Google::Apis::MonitoringV3::MonitoredResource]
3959
+ attr_accessor :monitored_resource
3960
+
3961
+ # A unique resource name for this Uptime check configuration. The format is:
3962
+ # projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] [
3963
+ # PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the Uptime
3964
+ # check.This field should be omitted when creating the Uptime check
3965
+ # configuration; on create, the resource name is assigned by the server and
3966
+ # included in the response.
3967
+ # Corresponds to the JSON property `name`
3968
+ # @return [String]
3969
+ attr_accessor :name
3970
+
3971
+ # How often, in seconds, the Uptime check is performed. Currently, the only
3972
+ # supported values are 60s (1 minute), 300s (5 minutes), 600s (10 minutes), and
3973
+ # 900s (15 minutes). Optional, defaults to 60s.
3974
+ # Corresponds to the JSON property `period`
3975
+ # @return [String]
3976
+ attr_accessor :period
3977
+
3978
+ # The resource submessage for group checks. It can be used instead of a
3979
+ # monitored resource, when multiple resources are being monitored.
3980
+ # Corresponds to the JSON property `resourceGroup`
3981
+ # @return [Google::Apis::MonitoringV3::ResourceGroup]
3982
+ attr_accessor :resource_group
3983
+
3984
+ # The list of regions from which the check will be run. Some regions contain one
3985
+ # location, and others contain more than one. If this field is specified, enough
3986
+ # regions must be provided to include a minimum of 3 locations. Not specifying
3987
+ # this field will result in Uptime checks running from all available regions.
3988
+ # Corresponds to the JSON property `selectedRegions`
3989
+ # @return [Array<String>]
3990
+ attr_accessor :selected_regions
3991
+
3992
+ # Information required for a TCP Uptime check request.
3993
+ # Corresponds to the JSON property `tcpCheck`
3994
+ # @return [Google::Apis::MonitoringV3::TcpCheck]
3995
+ attr_accessor :tcp_check
3996
+
3997
+ # The maximum amount of time to wait for the request to complete (must be
3998
+ # between 1 and 60 seconds). Required.
3999
+ # Corresponds to the JSON property `timeout`
4000
+ # @return [String]
4001
+ attr_accessor :timeout
4002
+
4003
+ def initialize(**args)
4004
+ update!(**args)
4005
+ end
4006
+
4007
+ # Update properties of this object
4008
+ def update!(**args)
4009
+ @content_matchers = args[:content_matchers] if args.key?(:content_matchers)
4010
+ @display_name = args[:display_name] if args.key?(:display_name)
4011
+ @http_check = args[:http_check] if args.key?(:http_check)
4012
+ @internal_checkers = args[:internal_checkers] if args.key?(:internal_checkers)
4013
+ @is_internal = args[:is_internal] if args.key?(:is_internal)
4014
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
4015
+ @name = args[:name] if args.key?(:name)
4016
+ @period = args[:period] if args.key?(:period)
4017
+ @resource_group = args[:resource_group] if args.key?(:resource_group)
4018
+ @selected_regions = args[:selected_regions] if args.key?(:selected_regions)
4019
+ @tcp_check = args[:tcp_check] if args.key?(:tcp_check)
4020
+ @timeout = args[:timeout] if args.key?(:timeout)
4021
+ end
4022
+ end
4023
+
4024
+ # Contains the region, location, and list of IP addresses where checkers in the
4025
+ # location run from.
4026
+ class UptimeCheckIp
4027
+ include Google::Apis::Core::Hashable
4028
+
4029
+ # The IP address from which the Uptime check originates. This is a fully
4030
+ # specified IP address (not an IP address range). Most IP addresses, as of this
4031
+ # publication, are in IPv4 format; however, one should not rely on the IP
4032
+ # addresses being in IPv4 format indefinitely, and should support interpreting
4033
+ # this field in either IPv4 or IPv6 format.
4034
+ # Corresponds to the JSON property `ipAddress`
4035
+ # @return [String]
4036
+ attr_accessor :ip_address
4037
+
4038
+ # A more specific location within the region that typically encodes a particular
4039
+ # city/town/metro (and its containing state/province or country) within the
4040
+ # broader umbrella region category.
4041
+ # Corresponds to the JSON property `location`
4042
+ # @return [String]
4043
+ attr_accessor :location
4044
+
4045
+ # A broad region category in which the IP address is located.
4046
+ # Corresponds to the JSON property `region`
4047
+ # @return [String]
4048
+ attr_accessor :region
4049
+
4050
+ def initialize(**args)
4051
+ update!(**args)
4052
+ end
4053
+
4054
+ # Update properties of this object
4055
+ def update!(**args)
4056
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
4057
+ @location = args[:location] if args.key?(:location)
4058
+ @region = args[:region] if args.key?(:region)
4059
+ end
4060
+ end
4061
+
4062
+ # A descriptor for the value columns in a data point.
4063
+ class ValueDescriptor
4064
+ include Google::Apis::Core::Hashable
4065
+
4066
+ # The value key.
4067
+ # Corresponds to the JSON property `key`
4068
+ # @return [String]
4069
+ attr_accessor :key
4070
+
4071
+ # The value stream kind.
4072
+ # Corresponds to the JSON property `metricKind`
4073
+ # @return [String]
4074
+ attr_accessor :metric_kind
4075
+
4076
+ # The unit in which time_series point values are reported. unit follows the UCUM
4077
+ # format for units as seen in https://unitsofmeasure.org/ucum.html. unit is only
4078
+ # valid if value_type is INTEGER, DOUBLE, DISTRIBUTION.
4079
+ # Corresponds to the JSON property `unit`
4080
+ # @return [String]
4081
+ attr_accessor :unit
4082
+
4083
+ # The value type.
4084
+ # Corresponds to the JSON property `valueType`
4085
+ # @return [String]
4086
+ attr_accessor :value_type
4087
+
4088
+ def initialize(**args)
4089
+ update!(**args)
4090
+ end
4091
+
4092
+ # Update properties of this object
4093
+ def update!(**args)
4094
+ @key = args[:key] if args.key?(:key)
4095
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
4096
+ @unit = args[:unit] if args.key?(:unit)
4097
+ @value_type = args[:value_type] if args.key?(:value_type)
4098
+ end
4099
+ end
4100
+
4101
+ # The VerifyNotificationChannel request.
4102
+ class VerifyNotificationChannelRequest
4103
+ include Google::Apis::Core::Hashable
4104
+
4105
+ # Required. The verification code that was delivered to the channel as a result
4106
+ # of invoking the SendNotificationChannelVerificationCode API method or that was
4107
+ # retrieved from a verified channel via GetNotificationChannelVerificationCode.
4108
+ # For example, one might have "G-123456" or "TKNZGhhd2EyN3I1MnRnMjRv" (in
4109
+ # general, one is only guaranteed that the code is valid UTF-8; one should not
4110
+ # make any assumptions regarding the structure or format of the code).
4111
+ # Corresponds to the JSON property `code`
4112
+ # @return [String]
4113
+ attr_accessor :code
4114
+
4115
+ def initialize(**args)
4116
+ update!(**args)
4117
+ end
4118
+
4119
+ # Update properties of this object
4120
+ def update!(**args)
4121
+ @code = args[:code] if args.key?(:code)
4122
+ end
4123
+ end
4124
+
4125
+ # A WindowsBasedSli defines good_service as the count of time windows for which
4126
+ # the provided service was of good quality. Criteria for determining if service
4127
+ # was good are embedded in the window_criterion.
4128
+ class WindowsBasedSli
4129
+ include Google::Apis::Core::Hashable
4130
+
4131
+ # A monitoring filter (https://cloud.google.com/monitoring/api/v3/filters)
4132
+ # specifying a TimeSeries with ValueType = BOOL. The window is good if any true
4133
+ # values appear in the window.
4134
+ # Corresponds to the JSON property `goodBadMetricFilter`
4135
+ # @return [String]
4136
+ attr_accessor :good_bad_metric_filter
4137
+
4138
+ # A PerformanceThreshold is used when each window is good when that window has a
4139
+ # sufficiently high performance.
4140
+ # Corresponds to the JSON property `goodTotalRatioThreshold`
4141
+ # @return [Google::Apis::MonitoringV3::PerformanceThreshold]
4142
+ attr_accessor :good_total_ratio_threshold
4143
+
4144
+ # A MetricRange is used when each window is good when the value x of a single
4145
+ # TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must
4146
+ # have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE.
4147
+ # Corresponds to the JSON property `metricMeanInRange`
4148
+ # @return [Google::Apis::MonitoringV3::MetricRange]
4149
+ attr_accessor :metric_mean_in_range
4150
+
4151
+ # A MetricRange is used when each window is good when the value x of a single
4152
+ # TimeSeries satisfies range.min <= x < range.max. The provided TimeSeries must
4153
+ # have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE.
4154
+ # Corresponds to the JSON property `metricSumInRange`
4155
+ # @return [Google::Apis::MonitoringV3::MetricRange]
4156
+ attr_accessor :metric_sum_in_range
4157
+
4158
+ # Duration over which window quality is evaluated. Must be an integer fraction
4159
+ # of a day and at least 60s.
4160
+ # Corresponds to the JSON property `windowPeriod`
4161
+ # @return [String]
4162
+ attr_accessor :window_period
4163
+
4164
+ def initialize(**args)
4165
+ update!(**args)
4166
+ end
4167
+
4168
+ # Update properties of this object
4169
+ def update!(**args)
4170
+ @good_bad_metric_filter = args[:good_bad_metric_filter] if args.key?(:good_bad_metric_filter)
4171
+ @good_total_ratio_threshold = args[:good_total_ratio_threshold] if args.key?(:good_total_ratio_threshold)
4172
+ @metric_mean_in_range = args[:metric_mean_in_range] if args.key?(:metric_mean_in_range)
4173
+ @metric_sum_in_range = args[:metric_sum_in_range] if args.key?(:metric_sum_in_range)
4174
+ @window_period = args[:window_period] if args.key?(:window_period)
4175
+ end
4176
+ end
4177
+ end
4178
+ end
4179
+ end