google-apis-monitoring_v3 0.33.0 → 0.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -140,6 +140,8 @@ module Google
140
140
  # according to the combiner field. If the combined conditions evaluate to true,
141
141
  # then an incident is created. A policy can have from one to six conditions. If
142
142
  # condition_time_series_query_language is present, it must be the only condition.
143
+ # If condition_monitoring_query_language is present, it must be the only
144
+ # condition.
143
145
  # Corresponds to the JSON property `conditions`
144
146
  # @return [Array<Google::Apis::MonitoringV3::Condition>]
145
147
  attr_accessor :conditions
@@ -152,12 +154,17 @@ module Google
152
154
  # A short name or phrase used to identify the policy in dashboards,
153
155
  # notifications, and incidents. To avoid confusion, don't use the same display
154
156
  # name for multiple policies in the same project. The name is limited to 512
155
- # Unicode characters.
157
+ # Unicode characters.The convention for the display_name of a
158
+ # PrometheusQueryLanguageCondition is "`rule group name`/`alert name`", where
159
+ # the `rule group name` and `alert name` should be taken from the corresponding
160
+ # Prometheus configuration file. This convention is not enforced. In any case
161
+ # the display_name is not a unique key of the AlertPolicy.
156
162
  # Corresponds to the JSON property `displayName`
157
163
  # @return [String]
158
164
  attr_accessor :display_name
159
165
 
160
- # A content string and a MIME type that describes the content string's format.
166
+ # Documentation that is included in the notifications and incidents pertaining
167
+ # to this policy.
161
168
  # Corresponds to the JSON property `documentation`
162
169
  # @return [Google::Apis::MonitoringV3::Documentation]
163
170
  attr_accessor :documentation
@@ -196,11 +203,22 @@ module Google
196
203
  # @return [Array<String>]
197
204
  attr_accessor :notification_channels
198
205
 
206
+ # Optional. The severity of an alert policy indicates how important incidents
207
+ # generated by that policy are. The severity level will be displayed on the
208
+ # Incident detail page and in notifications.
209
+ # Corresponds to the JSON property `severity`
210
+ # @return [String]
211
+ attr_accessor :severity
212
+
199
213
  # User-supplied key/value data to be used for organizing and identifying the
200
214
  # AlertPolicy objects.The field can contain up to 64 entries. Each key and value
201
215
  # is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels
202
216
  # and values can contain only lowercase letters, numerals, underscores, and
203
- # dashes. Keys must begin with a letter.
217
+ # dashes. Keys must begin with a letter.Note that Prometheus `alert name` is a
218
+ # valid Prometheus label names (https://prometheus.io/docs/concepts/data_model/#
219
+ # metric-names-and-labels), whereas Prometheus `rule group` is an unrestricted
220
+ # UTF-8 string. This means that they cannot be stored as-is in user labels,
221
+ # because they may contain characters that are not allowed in user-label values.
204
222
  # Corresponds to the JSON property `userLabels`
205
223
  # @return [Hash<String,String>]
206
224
  attr_accessor :user_labels
@@ -231,6 +249,7 @@ module Google
231
249
  @mutation_record = args[:mutation_record] if args.key?(:mutation_record)
232
250
  @name = args[:name] if args.key?(:name)
233
251
  @notification_channels = args[:notification_channels] if args.key?(:notification_channels)
252
+ @severity = args[:severity] if args.key?(:severity)
234
253
  @user_labels = args[:user_labels] if args.key?(:user_labels)
235
254
  @validity = args[:validity] if args.key?(:validity)
236
255
  end
@@ -247,6 +266,11 @@ module Google
247
266
  # @return [String]
248
267
  attr_accessor :auto_close
249
268
 
269
+ # Control how notifications will be sent out, on a per-channel basis.
270
+ # Corresponds to the JSON property `notificationChannelStrategy`
271
+ # @return [Array<Google::Apis::MonitoringV3::NotificationChannelStrategy>]
272
+ attr_accessor :notification_channel_strategy
273
+
250
274
  # Control over the rate of notifications sent to this alert policy's
251
275
  # notification channels.
252
276
  # Corresponds to the JSON property `notificationRateLimit`
@@ -260,6 +284,7 @@ module Google
260
284
  # Update properties of this object
261
285
  def update!(**args)
262
286
  @auto_close = args[:auto_close] if args.key?(:auto_close)
287
+ @notification_channel_strategy = args[:notification_channel_strategy] if args.key?(:notification_channel_strategy)
263
288
  @notification_rate_limit = args[:notification_rate_limit] if args.key?(:notification_rate_limit)
264
289
  end
265
290
  end
@@ -325,6 +350,39 @@ module Google
325
350
  end
326
351
  end
327
352
 
353
+ # A well-known service type, defined by its service type and service labels.
354
+ # Documentation and examples here (https://cloud.google.com/stackdriver/docs/
355
+ # solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
356
+ class BasicService
357
+ include Google::Apis::Core::Hashable
358
+
359
+ # Labels that specify the resource that emits the monitoring data which is used
360
+ # for SLO reporting of this Service. Documentation and valid values for given
361
+ # service types here (https://cloud.google.com/stackdriver/docs/solutions/slo-
362
+ # monitoring/api/api-structures#basic-svc-w-basic-sli).
363
+ # Corresponds to the JSON property `serviceLabels`
364
+ # @return [Hash<String,String>]
365
+ attr_accessor :service_labels
366
+
367
+ # The type of service that this basic service defines, e.g. APP_ENGINE service
368
+ # type. Documentation and valid values here (https://cloud.google.com/
369
+ # stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-
370
+ # sli).
371
+ # Corresponds to the JSON property `serviceType`
372
+ # @return [String]
373
+ attr_accessor :service_type
374
+
375
+ def initialize(**args)
376
+ update!(**args)
377
+ end
378
+
379
+ # Update properties of this object
380
+ def update!(**args)
381
+ @service_labels = args[:service_labels] if args.key?(:service_labels)
382
+ @service_type = args[:service_type] if args.key?(:service_type)
383
+ end
384
+ end
385
+
328
386
  # An SLI measuring performance on a well-known service type. Performance will be
329
387
  # computed on the basis of pre-defined metrics. The type of the service_resource
330
388
  # determines the metrics to use and the service_resource.labels and
@@ -412,7 +470,7 @@ module Google
412
470
  # proportional to the value of the lower bound. Each bucket represents a
413
471
  # constant relative uncertainty on a specific value in the bucket.There are
414
472
  # num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:
415
- # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i). Lower bound (1 <= i <
473
+ # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).Lower bound (1 <= i <
416
474
  # N): scale * (growth_factor ^ (i - 1)).
417
475
  # Corresponds to the JSON property `exponentialBuckets`
418
476
  # @return [Google::Apis::MonitoringV3::Exponential]
@@ -422,7 +480,7 @@ module Google
422
480
  # overflow and underflow). Each bucket represents a constant absolute
423
481
  # uncertainty on the specific value in the bucket.There are num_finite_buckets +
424
482
  # 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-
425
- # 1): offset + (width * i). Lower bound (1 <= i < N): offset + (width * (i - 1)).
483
+ # 1): offset + (width * i).Lower bound (1 <= i < N): offset + (width * (i - 1)).
426
484
  # Corresponds to the JSON property `linearBuckets`
427
485
  # @return [Google::Apis::MonitoringV3::Linear]
428
486
  attr_accessor :linear_buckets
@@ -460,6 +518,41 @@ module Google
460
518
  end
461
519
  end
462
520
 
521
+ # A Synthetic Monitor deployed to a Cloud Functions V2 instance.
522
+ class CloudFunctionV2Target
523
+ include Google::Apis::Core::Hashable
524
+
525
+ # An object representing a resource that can be used for monitoring, logging,
526
+ # billing, or other purposes. Examples include virtual machine instances,
527
+ # databases, and storage devices such as disks. The type field identifies a
528
+ # MonitoredResourceDescriptor object that describes the resource's schema.
529
+ # Information in the labels field identifies the actual resource and its
530
+ # attributes according to the schema. For example, a particular Compute Engine
531
+ # VM instance could be represented by the following object, because the
532
+ # MonitoredResourceDescriptor for "gce_instance" has labels "project_id", "
533
+ # instance_id" and "zone": ` "type": "gce_instance", "labels": ` "project_id": "
534
+ # my-project", "instance_id": "12345678901234", "zone": "us-central1-a" ``
535
+ # Corresponds to the JSON property `cloudRunRevision`
536
+ # @return [Google::Apis::MonitoringV3::MonitoredResource]
537
+ attr_accessor :cloud_run_revision
538
+
539
+ # Required. Fully qualified GCFv2 resource name i.e. projects/`project`/
540
+ # locations/`location`/functions/`function` Required.
541
+ # Corresponds to the JSON property `name`
542
+ # @return [String]
543
+ attr_accessor :name
544
+
545
+ def initialize(**args)
546
+ update!(**args)
547
+ end
548
+
549
+ # Update properties of this object
550
+ def update!(**args)
551
+ @cloud_run_revision = args[:cloud_run_revision] if args.key?(:cloud_run_revision)
552
+ @name = args[:name] if args.key?(:name)
553
+ end
554
+ end
555
+
463
556
  # Cloud Run service. Learn more at https://cloud.google.com/run.
464
557
  class CloudRun
465
558
  include Google::Apis::Core::Hashable
@@ -723,6 +816,32 @@ module Google
723
816
  # @return [Google::Apis::MonitoringV3::MonitoringQueryLanguageCondition]
724
817
  attr_accessor :condition_monitoring_query_language
725
818
 
819
+ # A condition type that allows alert policies to be defined using Prometheus
820
+ # Query Language (PromQL) (https://prometheus.io/docs/prometheus/latest/querying/
821
+ # basics/).The PrometheusQueryLanguageCondition message contains information
822
+ # from a Prometheus alerting rule and its associated rule group.A Prometheus
823
+ # alerting rule is described here (https://prometheus.io/docs/prometheus/latest/
824
+ # configuration/alerting_rules/). The semantics of a Prometheus alerting rule is
825
+ # described here (https://prometheus.io/docs/prometheus/latest/configuration/
826
+ # recording_rules/#rule).A Prometheus rule group is described here (https://
827
+ # prometheus.io/docs/prometheus/latest/configuration/recording_rules/). The
828
+ # semantics of a Prometheus rule group is described here (https://prometheus.io/
829
+ # docs/prometheus/latest/configuration/recording_rules/#rule_group).Because
830
+ # Cloud Alerting has no representation of a Prometheus rule group resource, we
831
+ # must embed the information of the parent rule group inside each of the
832
+ # conditions that refer to it. We must also update the contents of all
833
+ # Prometheus alerts in case the information of their rule group changes.The
834
+ # PrometheusQueryLanguageCondition protocol buffer combines the information of
835
+ # the corresponding rule group and alerting rule. The structure of the
836
+ # PrometheusQueryLanguageCondition protocol buffer does NOT mimic the structure
837
+ # of the Prometheus rule group and alerting rule YAML declarations. The
838
+ # PrometheusQueryLanguageCondition protocol buffer may change in the future to
839
+ # support future rule group and/or alerting rule features. There are no new such
840
+ # features at the present time (2023-06-26).
841
+ # Corresponds to the JSON property `conditionPrometheusQueryLanguage`
842
+ # @return [Google::Apis::MonitoringV3::PrometheusQueryLanguageCondition]
843
+ attr_accessor :condition_prometheus_query_language
844
+
726
845
  # A condition type that compares a collection of time series against a threshold.
727
846
  # Corresponds to the JSON property `conditionThreshold`
728
847
  # @return [Google::Apis::MonitoringV3::MetricThreshold]
@@ -762,6 +881,7 @@ module Google
762
881
  @condition_absent = args[:condition_absent] if args.key?(:condition_absent)
763
882
  @condition_matched_log = args[:condition_matched_log] if args.key?(:condition_matched_log)
764
883
  @condition_monitoring_query_language = args[:condition_monitoring_query_language] if args.key?(:condition_monitoring_query_language)
884
+ @condition_prometheus_query_language = args[:condition_prometheus_query_language] if args.key?(:condition_prometheus_query_language)
765
885
  @condition_threshold = args[:condition_threshold] if args.key?(:condition_threshold)
766
886
  @display_name = args[:display_name] if args.key?(:display_name)
767
887
  @name = args[:name] if args.key?(:name)
@@ -932,8 +1052,33 @@ module Google
932
1052
  end
933
1053
  end
934
1054
 
935
- # Custom view of service telemetry. Currently a place-holder pending final
936
- # design.
1055
+ # Criteria specific to the AlertPolicys that this Snooze applies to. The Snooze
1056
+ # will suppress alerts that come from one of the AlertPolicys whose names are
1057
+ # supplied.
1058
+ class Criteria
1059
+ include Google::Apis::Core::Hashable
1060
+
1061
+ # The specific AlertPolicy names for the alert that should be snoozed. The
1062
+ # format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID] There is
1063
+ # a limit of 16 policies per snooze. This limit is checked during snooze
1064
+ # creation.
1065
+ # Corresponds to the JSON property `policies`
1066
+ # @return [Array<String>]
1067
+ attr_accessor :policies
1068
+
1069
+ def initialize(**args)
1070
+ update!(**args)
1071
+ end
1072
+
1073
+ # Update properties of this object
1074
+ def update!(**args)
1075
+ @policies = args[:policies] if args.key?(:policies)
1076
+ end
1077
+ end
1078
+
1079
+ # Use a custom service to designate a service that you want to monitor when none
1080
+ # of the other service types (like App Engine, Cloud Run, or a GKE type) matches
1081
+ # your intended service.
937
1082
  class Custom
938
1083
  include Google::Apis::Core::Hashable
939
1084
 
@@ -1067,19 +1212,26 @@ module Google
1067
1212
  end
1068
1213
  end
1069
1214
 
1070
- # A content string and a MIME type that describes the content string's format.
1215
+ # Documentation that is included in the notifications and incidents pertaining
1216
+ # to this policy.
1071
1217
  class Documentation
1072
1218
  include Google::Apis::Core::Hashable
1073
1219
 
1074
- # The text of the documentation, interpreted according to mime_type. The content
1220
+ # The body of the documentation, interpreted according to mime_type. The content
1075
1221
  # may not exceed 8,192 Unicode characters and may not exceed more than 10,240
1076
1222
  # bytes when encoded in UTF-8 format, whichever is smaller. This text can be
1077
1223
  # templatized by using variables (https://cloud.google.com/monitoring/alerts/doc-
1078
- # variables).
1224
+ # variables#doc-vars).
1079
1225
  # Corresponds to the JSON property `content`
1080
1226
  # @return [String]
1081
1227
  attr_accessor :content
1082
1228
 
1229
+ # Optional. Links to content such as playbooks, repositories, and other
1230
+ # resources. This field can contain up to 3 entries.
1231
+ # Corresponds to the JSON property `links`
1232
+ # @return [Array<Google::Apis::MonitoringV3::Link>]
1233
+ attr_accessor :links
1234
+
1083
1235
  # The format of the content field. Presently, only the value "text/markdown" is
1084
1236
  # supported. See Markdown (https://en.wikipedia.org/wiki/Markdown) for more
1085
1237
  # information.
@@ -1087,6 +1239,21 @@ module Google
1087
1239
  # @return [String]
1088
1240
  attr_accessor :mime_type
1089
1241
 
1242
+ # Optional. The subject line of the notification. The subject line may not
1243
+ # exceed 10,240 bytes. In notifications generated by this policy, the contents
1244
+ # of the subject line after variable expansion will be truncated to 255 bytes or
1245
+ # shorter at the latest UTF-8 character boundary. The 255-byte limit is
1246
+ # recommended by this thread (https://stackoverflow.com/questions/1592291/what-
1247
+ # is-the-email-subject-length-limit). It is both the limit imposed by some third-
1248
+ # party ticketing products and it is common to define textual fields in
1249
+ # databases as VARCHAR(255).The contents of the subject line can be templatized
1250
+ # by using variables (https://cloud.google.com/monitoring/alerts/doc-variables#
1251
+ # doc-vars). If this field is missing or empty, a default subject line will be
1252
+ # generated.
1253
+ # Corresponds to the JSON property `subject`
1254
+ # @return [String]
1255
+ attr_accessor :subject
1256
+
1090
1257
  def initialize(**args)
1091
1258
  update!(**args)
1092
1259
  end
@@ -1094,7 +1261,9 @@ module Google
1094
1261
  # Update properties of this object
1095
1262
  def update!(**args)
1096
1263
  @content = args[:content] if args.key?(:content)
1264
+ @links = args[:links] if args.key?(:links)
1097
1265
  @mime_type = args[:mime_type] if args.key?(:mime_type)
1266
+ @subject = args[:subject] if args.key?(:subject)
1098
1267
  end
1099
1268
  end
1100
1269
 
@@ -1243,7 +1412,7 @@ module Google
1243
1412
  # proportional to the value of the lower bound. Each bucket represents a
1244
1413
  # constant relative uncertainty on a specific value in the bucket.There are
1245
1414
  # num_finite_buckets + 2 (= N) buckets. Bucket i has the following boundaries:
1246
- # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i). Lower bound (1 <= i <
1415
+ # Upper bound (0 <= i < N-1): scale * (growth_factor ^ i).Lower bound (1 <= i <
1247
1416
  # N): scale * (growth_factor ^ (i - 1)).
1248
1417
  class Exponential
1249
1418
  include Google::Apis::Core::Hashable
@@ -1351,6 +1520,30 @@ module Google
1351
1520
  end
1352
1521
  end
1353
1522
 
1523
+ # Options used when forecasting the time series and testing the predicted value
1524
+ # against the threshold.
1525
+ class ForecastOptions
1526
+ include Google::Apis::Core::Hashable
1527
+
1528
+ # Required. The length of time into the future to forecast whether a time series
1529
+ # will violate the threshold. If the predicted value is found to violate the
1530
+ # threshold, and the violation is observed in all forecasts made for the
1531
+ # configured duration, then the time series is considered to be failing. The
1532
+ # forecast horizon can range from 1 hour to 60 hours.
1533
+ # Corresponds to the JSON property `forecastHorizon`
1534
+ # @return [String]
1535
+ attr_accessor :forecast_horizon
1536
+
1537
+ def initialize(**args)
1538
+ update!(**args)
1539
+ end
1540
+
1541
+ # Update properties of this object
1542
+ def update!(**args)
1543
+ @forecast_horizon = args[:forecast_horizon] if args.key?(:forecast_horizon)
1544
+ end
1545
+ end
1546
+
1354
1547
  # The GetNotificationChannelVerificationCode request.
1355
1548
  class GetNotificationChannelVerificationCodeRequest
1356
1549
  include Google::Apis::Core::Hashable
@@ -1684,6 +1877,15 @@ module Google
1684
1877
  # @return [String]
1685
1878
  attr_accessor :content_type
1686
1879
 
1880
+ # A user provided content type header to use for the check. The invalid
1881
+ # configurations outlined in the content_type field apply to custom_content_type,
1882
+ # as well as the following: 1. content_type is URL_ENCODED and
1883
+ # custom_content_type is set. 2. content_type is USER_PROVIDED and
1884
+ # custom_content_type is not set.
1885
+ # Corresponds to the JSON property `customContentType`
1886
+ # @return [String]
1887
+ attr_accessor :custom_content_type
1888
+
1687
1889
  # The list of headers to send as part of the Uptime check request. If two
1688
1890
  # headers have the same key and different values, they should be entered as a
1689
1891
  # single header, with the value being a comma-separated list of all the desired
@@ -1733,6 +1935,14 @@ module Google
1733
1935
  # @return [String]
1734
1936
  attr_accessor :request_method
1735
1937
 
1938
+ # Contains information needed for generating either an OpenID Connect token (
1939
+ # https://developers.google.com/identity/protocols/OpenIDConnect) or OAuth token
1940
+ # (https://developers.google.com/identity/protocols/oauth2). The token will be
1941
+ # generated for the Monitoring service agent service account.
1942
+ # Corresponds to the JSON property `serviceAgentAuthentication`
1943
+ # @return [Google::Apis::MonitoringV3::ServiceAgentAuthentication]
1944
+ attr_accessor :service_agent_authentication
1945
+
1736
1946
  # If true, use HTTPS instead of HTTP to run the check.
1737
1947
  # Corresponds to the JSON property `useSsl`
1738
1948
  # @return [Boolean]
@@ -1757,12 +1967,14 @@ module Google
1757
1967
  @auth_info = args[:auth_info] if args.key?(:auth_info)
1758
1968
  @body = args[:body] if args.key?(:body)
1759
1969
  @content_type = args[:content_type] if args.key?(:content_type)
1970
+ @custom_content_type = args[:custom_content_type] if args.key?(:custom_content_type)
1760
1971
  @headers = args[:headers] if args.key?(:headers)
1761
1972
  @mask_headers = args[:mask_headers] if args.key?(:mask_headers)
1762
1973
  @path = args[:path] if args.key?(:path)
1763
1974
  @ping_config = args[:ping_config] if args.key?(:ping_config)
1764
1975
  @port = args[:port] if args.key?(:port)
1765
1976
  @request_method = args[:request_method] if args.key?(:request_method)
1977
+ @service_agent_authentication = args[:service_agent_authentication] if args.key?(:service_agent_authentication)
1766
1978
  @use_ssl = args[:use_ssl] if args.key?(:use_ssl)
1767
1979
  @validate_ssl = args[:validate_ssl] if args.key?(:validate_ssl)
1768
1980
  end
@@ -1983,7 +2195,7 @@ module Google
1983
2195
  # overflow and underflow). Each bucket represents a constant absolute
1984
2196
  # uncertainty on the specific value in the bucket.There are num_finite_buckets +
1985
2197
  # 2 (= N) buckets. Bucket i has the following boundaries:Upper bound (0 <= i < N-
1986
- # 1): offset + (width * i). Lower bound (1 <= i < N): offset + (width * (i - 1)).
2198
+ # 1): offset + (width * i).Lower bound (1 <= i < N): offset + (width * (i - 1)).
1987
2199
  class Linear
1988
2200
  include Google::Apis::Core::Hashable
1989
2201
 
@@ -2014,6 +2226,35 @@ module Google
2014
2226
  end
2015
2227
  end
2016
2228
 
2229
+ # Links to content such as playbooks, repositories, and other resources.
2230
+ class Link
2231
+ include Google::Apis::Core::Hashable
2232
+
2233
+ # A short display name for the link. The display name must not be empty or
2234
+ # exceed 63 characters. Example: "playbook".
2235
+ # Corresponds to the JSON property `displayName`
2236
+ # @return [String]
2237
+ attr_accessor :display_name
2238
+
2239
+ # The url of a webpage. A url can be templatized by using variables in the path
2240
+ # or the query parameters. The total length of a URL should not exceed 2083
2241
+ # characters before and after variable expansion. Example: "https://my_domain.
2242
+ # com/playbook?name=$`resource.name`"
2243
+ # Corresponds to the JSON property `url`
2244
+ # @return [String]
2245
+ attr_accessor :url
2246
+
2247
+ def initialize(**args)
2248
+ update!(**args)
2249
+ end
2250
+
2251
+ # Update properties of this object
2252
+ def update!(**args)
2253
+ @display_name = args[:display_name] if args.key?(:display_name)
2254
+ @url = args[:url] if args.key?(:url)
2255
+ end
2256
+ end
2257
+
2017
2258
  # The protocol for the ListAlertPolicies response.
2018
2259
  class ListAlertPoliciesResponse
2019
2260
  include Google::Apis::Core::Hashable
@@ -2280,6 +2521,32 @@ module Google
2280
2521
  end
2281
2522
  end
2282
2523
 
2524
+ # The results of a successful ListSnoozes call, containing the matching Snoozes.
2525
+ class ListSnoozesResponse
2526
+ include Google::Apis::Core::Hashable
2527
+
2528
+ # Page token for repeated calls to ListSnoozes, to fetch additional pages of
2529
+ # results. If this is empty or missing, there are no more pages.
2530
+ # Corresponds to the JSON property `nextPageToken`
2531
+ # @return [String]
2532
+ attr_accessor :next_page_token
2533
+
2534
+ # Snoozes matching this list call.
2535
+ # Corresponds to the JSON property `snoozes`
2536
+ # @return [Array<Google::Apis::MonitoringV3::Snooze>]
2537
+ attr_accessor :snoozes
2538
+
2539
+ def initialize(**args)
2540
+ update!(**args)
2541
+ end
2542
+
2543
+ # Update properties of this object
2544
+ def update!(**args)
2545
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2546
+ @snoozes = args[:snoozes] if args.key?(:snoozes)
2547
+ end
2548
+ end
2549
+
2283
2550
  # The ListTimeSeries response.
2284
2551
  class ListTimeSeriesResponse
2285
2552
  include Google::Apis::Core::Hashable
@@ -2814,7 +3081,8 @@ module Google
2814
3081
  attr_accessor :duration
2815
3082
 
2816
3083
  # A condition control that determines how metric-threshold conditions are
2817
- # evaluated when data stops arriving.
3084
+ # evaluated when data stops arriving. To use this control, the value of the
3085
+ # duration field must be greater than or equal to 60 seconds.
2818
3086
  # Corresponds to the JSON property `evaluationMissingData`
2819
3087
  # @return [String]
2820
3088
  attr_accessor :evaluation_missing_data
@@ -2831,6 +3099,12 @@ module Google
2831
3099
  # @return [String]
2832
3100
  attr_accessor :filter
2833
3101
 
3102
+ # Options used when forecasting the time series and testing the predicted value
3103
+ # against the threshold.
3104
+ # Corresponds to the JSON property `forecastOptions`
3105
+ # @return [Google::Apis::MonitoringV3::ForecastOptions]
3106
+ attr_accessor :forecast_options
3107
+
2834
3108
  # A value against which to compare the time series.
2835
3109
  # Corresponds to the JSON property `thresholdValue`
2836
3110
  # @return [Float]
@@ -2855,6 +3129,7 @@ module Google
2855
3129
  @duration = args[:duration] if args.key?(:duration)
2856
3130
  @evaluation_missing_data = args[:evaluation_missing_data] if args.key?(:evaluation_missing_data)
2857
3131
  @filter = args[:filter] if args.key?(:filter)
3132
+ @forecast_options = args[:forecast_options] if args.key?(:forecast_options)
2858
3133
  @threshold_value = args[:threshold_value] if args.key?(:threshold_value)
2859
3134
  @trigger = args[:trigger] if args.key?(:trigger)
2860
3135
  end
@@ -2947,7 +3222,7 @@ module Google
2947
3222
 
2948
3223
  # Required. The monitored resource type. For example, the type "
2949
3224
  # cloudsql_database" represents databases in Google Cloud SQL. For a list of
2950
- # types, see Monitoring resource types (https://cloud.google.com/monitoring/api/
3225
+ # types, see Monitored resource types (https://cloud.google.com/monitoring/api/
2951
3226
  # resources) and Logging resource types (https://cloud.google.com/logging/docs/
2952
3227
  # api/v2/resource-list).
2953
3228
  # Corresponds to the JSON property `type`
@@ -3252,6 +3527,36 @@ module Google
3252
3527
  end
3253
3528
  end
3254
3529
 
3530
+ # Control over how the notification channels in notification_channels are
3531
+ # notified when this alert fires, on a per-channel basis.
3532
+ class NotificationChannelStrategy
3533
+ include Google::Apis::Core::Hashable
3534
+
3535
+ # The full REST resource name for the notification channels that these settings
3536
+ # apply to. Each of these correspond to the name field in one of the
3537
+ # NotificationChannel objects referenced in the notification_channels field of
3538
+ # this AlertPolicy. The format is: projects/[PROJECT_ID_OR_NUMBER]/
3539
+ # notificationChannels/[CHANNEL_ID]
3540
+ # Corresponds to the JSON property `notificationChannelNames`
3541
+ # @return [Array<String>]
3542
+ attr_accessor :notification_channel_names
3543
+
3544
+ # The frequency at which to send reminder notifications for open incidents.
3545
+ # Corresponds to the JSON property `renotifyInterval`
3546
+ # @return [String]
3547
+ attr_accessor :renotify_interval
3548
+
3549
+ def initialize(**args)
3550
+ update!(**args)
3551
+ end
3552
+
3553
+ # Update properties of this object
3554
+ def update!(**args)
3555
+ @notification_channel_names = args[:notification_channel_names] if args.key?(:notification_channel_names)
3556
+ @renotify_interval = args[:renotify_interval] if args.key?(:renotify_interval)
3557
+ end
3558
+ end
3559
+
3255
3560
  # Control over the rate of notifications sent to this alert policy's
3256
3561
  # notification channels.
3257
3562
  class NotificationRateLimit
@@ -3501,6 +3806,105 @@ module Google
3501
3806
  end
3502
3807
  end
3503
3808
 
3809
+ # A condition type that allows alert policies to be defined using Prometheus
3810
+ # Query Language (PromQL) (https://prometheus.io/docs/prometheus/latest/querying/
3811
+ # basics/).The PrometheusQueryLanguageCondition message contains information
3812
+ # from a Prometheus alerting rule and its associated rule group.A Prometheus
3813
+ # alerting rule is described here (https://prometheus.io/docs/prometheus/latest/
3814
+ # configuration/alerting_rules/). The semantics of a Prometheus alerting rule is
3815
+ # described here (https://prometheus.io/docs/prometheus/latest/configuration/
3816
+ # recording_rules/#rule).A Prometheus rule group is described here (https://
3817
+ # prometheus.io/docs/prometheus/latest/configuration/recording_rules/). The
3818
+ # semantics of a Prometheus rule group is described here (https://prometheus.io/
3819
+ # docs/prometheus/latest/configuration/recording_rules/#rule_group).Because
3820
+ # Cloud Alerting has no representation of a Prometheus rule group resource, we
3821
+ # must embed the information of the parent rule group inside each of the
3822
+ # conditions that refer to it. We must also update the contents of all
3823
+ # Prometheus alerts in case the information of their rule group changes.The
3824
+ # PrometheusQueryLanguageCondition protocol buffer combines the information of
3825
+ # the corresponding rule group and alerting rule. The structure of the
3826
+ # PrometheusQueryLanguageCondition protocol buffer does NOT mimic the structure
3827
+ # of the Prometheus rule group and alerting rule YAML declarations. The
3828
+ # PrometheusQueryLanguageCondition protocol buffer may change in the future to
3829
+ # support future rule group and/or alerting rule features. There are no new such
3830
+ # features at the present time (2023-06-26).
3831
+ class PrometheusQueryLanguageCondition
3832
+ include Google::Apis::Core::Hashable
3833
+
3834
+ # Optional. The alerting rule name of this alert in the corresponding Prometheus
3835
+ # configuration file.Some external tools may require this field to be populated
3836
+ # correctly in order to refer to the original Prometheus configuration file. The
3837
+ # rule group name and the alert name are necessary to update the relevant
3838
+ # AlertPolicies in case the definition of the rule group changes in the future.
3839
+ # This field is optional. If this field is not empty, then it must be a valid
3840
+ # Prometheus label name (https://prometheus.io/docs/concepts/data_model/#metric-
3841
+ # names-and-labels). This field may not exceed 2048 Unicode characters in length.
3842
+ # Corresponds to the JSON property `alertRule`
3843
+ # @return [String]
3844
+ attr_accessor :alert_rule
3845
+
3846
+ # Optional. Alerts are considered firing once their PromQL expression was
3847
+ # evaluated to be "true" for this long. Alerts whose PromQL expression was not
3848
+ # evaluated to be "true" for long enough are considered pending. Must be a non-
3849
+ # negative duration or missing. This field is optional. Its default value is
3850
+ # zero.
3851
+ # Corresponds to the JSON property `duration`
3852
+ # @return [String]
3853
+ attr_accessor :duration
3854
+
3855
+ # Optional. How often this rule should be evaluated. Must be a positive multiple
3856
+ # of 30 seconds or missing. This field is optional. Its default value is 30
3857
+ # seconds. If this PrometheusQueryLanguageCondition was generated from a
3858
+ # Prometheus alerting rule, then this value should be taken from the enclosing
3859
+ # rule group.
3860
+ # Corresponds to the JSON property `evaluationInterval`
3861
+ # @return [String]
3862
+ attr_accessor :evaluation_interval
3863
+
3864
+ # Optional. Labels to add to or overwrite in the PromQL query result. Label
3865
+ # names must be valid (https://prometheus.io/docs/concepts/data_model/#metric-
3866
+ # names-and-labels). Label values can be templatized by using variables (https://
3867
+ # cloud.google.com/monitoring/alerts/doc-variables#doc-vars). The only available
3868
+ # variable names are the names of the labels in the PromQL result, including "
3869
+ # __name__" and "value". "labels" may be empty.
3870
+ # Corresponds to the JSON property `labels`
3871
+ # @return [Hash<String,String>]
3872
+ attr_accessor :labels
3873
+
3874
+ # Required. The PromQL expression to evaluate. Every evaluation cycle this
3875
+ # expression is evaluated at the current time, and all resultant time series
3876
+ # become pending/firing alerts. This field must not be empty.
3877
+ # Corresponds to the JSON property `query`
3878
+ # @return [String]
3879
+ attr_accessor :query
3880
+
3881
+ # Optional. The rule group name of this alert in the corresponding Prometheus
3882
+ # configuration file.Some external tools may require this field to be populated
3883
+ # correctly in order to refer to the original Prometheus configuration file. The
3884
+ # rule group name and the alert name are necessary to update the relevant
3885
+ # AlertPolicies in case the definition of the rule group changes in the future.
3886
+ # This field is optional. If this field is not empty, then it must contain a
3887
+ # valid UTF-8 string. This field may not exceed 2048 Unicode characters in
3888
+ # length.
3889
+ # Corresponds to the JSON property `ruleGroup`
3890
+ # @return [String]
3891
+ attr_accessor :rule_group
3892
+
3893
+ def initialize(**args)
3894
+ update!(**args)
3895
+ end
3896
+
3897
+ # Update properties of this object
3898
+ def update!(**args)
3899
+ @alert_rule = args[:alert_rule] if args.key?(:alert_rule)
3900
+ @duration = args[:duration] if args.key?(:duration)
3901
+ @evaluation_interval = args[:evaluation_interval] if args.key?(:evaluation_interval)
3902
+ @labels = args[:labels] if args.key?(:labels)
3903
+ @query = args[:query] if args.key?(:query)
3904
+ @rule_group = args[:rule_group] if args.key?(:rule_group)
3905
+ end
3906
+ end
3907
+
3504
3908
  # The QueryTimeSeries request.
3505
3909
  class QueryTimeSeriesRequest
3506
3910
  include Google::Apis::Core::Hashable
@@ -3713,6 +4117,13 @@ module Google
3713
4117
  # @return [Google::Apis::MonitoringV3::AppEngine]
3714
4118
  attr_accessor :app_engine
3715
4119
 
4120
+ # A well-known service type, defined by its service type and service labels.
4121
+ # Documentation and examples here (https://cloud.google.com/stackdriver/docs/
4122
+ # solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
4123
+ # Corresponds to the JSON property `basicService`
4124
+ # @return [Google::Apis::MonitoringV3::BasicService]
4125
+ attr_accessor :basic_service
4126
+
3716
4127
  # Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.
3717
4128
  # Corresponds to the JSON property `cloudEndpoints`
3718
4129
  # @return [Google::Apis::MonitoringV3::CloudEndpoints]
@@ -3730,8 +4141,9 @@ module Google
3730
4141
  # @return [Google::Apis::MonitoringV3::ClusterIstio]
3731
4142
  attr_accessor :cluster_istio
3732
4143
 
3733
- # Custom view of service telemetry. Currently a place-holder pending final
3734
- # design.
4144
+ # Use a custom service to designate a service that you want to monitor when none
4145
+ # of the other service types (like App Engine, Cloud Run, or a GKE type) matches
4146
+ # your intended service.
3735
4147
  # Corresponds to the JSON property `custom`
3736
4148
  # @return [Google::Apis::MonitoringV3::Custom]
3737
4149
  attr_accessor :custom
@@ -3775,8 +4187,8 @@ module Google
3775
4187
  # @return [Google::Apis::MonitoringV3::MeshIstio]
3776
4188
  attr_accessor :mesh_istio
3777
4189
 
3778
- # Resource name for this Service. The format is: projects/[PROJECT_ID_OR_NUMBER]/
3779
- # services/[SERVICE_ID]
4190
+ # Identifier. Resource name for this Service. The format is: projects/[
4191
+ # PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
3780
4192
  # Corresponds to the JSON property `name`
3781
4193
  # @return [String]
3782
4194
  attr_accessor :name
@@ -3803,6 +4215,7 @@ module Google
3803
4215
  # Update properties of this object
3804
4216
  def update!(**args)
3805
4217
  @app_engine = args[:app_engine] if args.key?(:app_engine)
4218
+ @basic_service = args[:basic_service] if args.key?(:basic_service)
3806
4219
  @cloud_endpoints = args[:cloud_endpoints] if args.key?(:cloud_endpoints)
3807
4220
  @cloud_run = args[:cloud_run] if args.key?(:cloud_run)
3808
4221
  @cluster_istio = args[:cluster_istio] if args.key?(:cluster_istio)
@@ -3819,6 +4232,28 @@ module Google
3819
4232
  end
3820
4233
  end
3821
4234
 
4235
+ # Contains information needed for generating either an OpenID Connect token (
4236
+ # https://developers.google.com/identity/protocols/OpenIDConnect) or OAuth token
4237
+ # (https://developers.google.com/identity/protocols/oauth2). The token will be
4238
+ # generated for the Monitoring service agent service account.
4239
+ class ServiceAgentAuthentication
4240
+ include Google::Apis::Core::Hashable
4241
+
4242
+ # Type of authentication.
4243
+ # Corresponds to the JSON property `type`
4244
+ # @return [String]
4245
+ attr_accessor :type
4246
+
4247
+ def initialize(**args)
4248
+ update!(**args)
4249
+ end
4250
+
4251
+ # Update properties of this object
4252
+ def update!(**args)
4253
+ @type = args[:type] if args.key?(:type)
4254
+ end
4255
+ end
4256
+
3822
4257
  # A Service-Level Indicator (SLI) describes the "performance" of a service. For
3823
4258
  # some services, the SLI is well-defined. In such cases, the SLI can be
3824
4259
  # described easily by referencing the well-known SLI and providing the needed
@@ -3889,13 +4324,14 @@ module Google
3889
4324
  attr_accessor :display_name
3890
4325
 
3891
4326
  # The fraction of service that must be good in order for this objective to be
3892
- # met. 0 < goal <= 0.999.
4327
+ # met. 0 < goal <= 0.9999.
3893
4328
  # Corresponds to the JSON property `goal`
3894
4329
  # @return [Float]
3895
4330
  attr_accessor :goal
3896
4331
 
3897
- # Resource name for this ServiceLevelObjective. The format is: projects/[
3898
- # PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
4332
+ # Identifier. Resource name for this ServiceLevelObjective. The format is:
4333
+ # projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[
4334
+ # SLO_NAME]
3899
4335
  # Corresponds to the JSON property `name`
3900
4336
  # @return [String]
3901
4337
  attr_accessor :name
@@ -3948,6 +4384,79 @@ module Google
3948
4384
  end
3949
4385
  end
3950
4386
 
4387
+ # A Snooze will prevent any alerts from being opened, and close any that are
4388
+ # already open. The Snooze will work on alerts that match the criteria defined
4389
+ # in the Snooze. The Snooze will be active from interval.start_time through
4390
+ # interval.end_time.
4391
+ class Snooze
4392
+ include Google::Apis::Core::Hashable
4393
+
4394
+ # Criteria specific to the AlertPolicys that this Snooze applies to. The Snooze
4395
+ # will suppress alerts that come from one of the AlertPolicys whose names are
4396
+ # supplied.
4397
+ # Corresponds to the JSON property `criteria`
4398
+ # @return [Google::Apis::MonitoringV3::Criteria]
4399
+ attr_accessor :criteria
4400
+
4401
+ # Required. A display name for the Snooze. This can be, at most, 512 unicode
4402
+ # characters.
4403
+ # Corresponds to the JSON property `displayName`
4404
+ # @return [String]
4405
+ attr_accessor :display_name
4406
+
4407
+ # Describes a time interval: Reads: A half-open time interval. It includes the
4408
+ # end time but excludes the start time: (startTime, endTime]. The start time
4409
+ # must be specified, must be earlier than the end time, and should be no older
4410
+ # than the data retention period for the metric. Writes: A closed time interval.
4411
+ # It extends from the start time to the end time, and includes both: [startTime,
4412
+ # endTime]. Valid time intervals depend on the MetricKind (https://cloud.google.
4413
+ # com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind) of
4414
+ # the metric value. The end time must not be earlier than the start time, and
4415
+ # the end time must not be more than 25 hours in the past or more than five
4416
+ # minutes in the future. For GAUGE metrics, the startTime value is technically
4417
+ # optional; if no value is specified, the start time defaults to the value of
4418
+ # the end time, and the interval represents a single point in time. If both
4419
+ # start and end times are specified, they must be identical. Such an interval is
4420
+ # valid only for GAUGE metrics, which are point-in-time measurements. The end
4421
+ # time of a new interval must be at least a millisecond after the end time of
4422
+ # the previous interval. For DELTA metrics, the start time and end time must
4423
+ # specify a non-zero interval, with subsequent points specifying contiguous and
4424
+ # non-overlapping intervals. For DELTA metrics, the start time of the next
4425
+ # interval must be at least a millisecond after the end time of the previous
4426
+ # interval. For CUMULATIVE metrics, the start time and end time must specify a
4427
+ # non-zero interval, with subsequent points specifying the same start time and
4428
+ # increasing end times, until an event resets the cumulative value to zero and
4429
+ # sets a new start time for the following points. The new start time must be at
4430
+ # least a millisecond after the end time of the previous interval. The start
4431
+ # time of a new interval must be at least a millisecond after the end time of
4432
+ # the previous interval because intervals are closed. If the start time of a new
4433
+ # interval is the same as the end time of the previous interval, then data
4434
+ # written at the new start time could overwrite data written at the previous end
4435
+ # time.
4436
+ # Corresponds to the JSON property `interval`
4437
+ # @return [Google::Apis::MonitoringV3::TimeInterval]
4438
+ attr_accessor :interval
4439
+
4440
+ # Required. Identifier. The name of the Snooze. The format is: projects/[
4441
+ # PROJECT_ID_OR_NUMBER]/snoozes/[SNOOZE_ID] The ID of the Snooze will be
4442
+ # generated by the system.
4443
+ # Corresponds to the JSON property `name`
4444
+ # @return [String]
4445
+ attr_accessor :name
4446
+
4447
+ def initialize(**args)
4448
+ update!(**args)
4449
+ end
4450
+
4451
+ # Update properties of this object
4452
+ def update!(**args)
4453
+ @criteria = args[:criteria] if args.key?(:criteria)
4454
+ @display_name = args[:display_name] if args.key?(:display_name)
4455
+ @interval = args[:interval] if args.key?(:interval)
4456
+ @name = args[:name] if args.key?(:name)
4457
+ end
4458
+ end
4459
+
3951
4460
  # SourceContext represents information about the source of a protobuf element,
3952
4461
  # like the file in which it is defined.
3953
4462
  class SourceContext
@@ -4033,6 +4542,25 @@ module Google
4033
4542
  end
4034
4543
  end
4035
4544
 
4545
+ # Describes a Synthetic Monitor to be invoked by Uptime.
4546
+ class SyntheticMonitorTarget
4547
+ include Google::Apis::Core::Hashable
4548
+
4549
+ # A Synthetic Monitor deployed to a Cloud Functions V2 instance.
4550
+ # Corresponds to the JSON property `cloudFunctionV2`
4551
+ # @return [Google::Apis::MonitoringV3::CloudFunctionV2Target]
4552
+ attr_accessor :cloud_function_v2
4553
+
4554
+ def initialize(**args)
4555
+ update!(**args)
4556
+ end
4557
+
4558
+ # Update properties of this object
4559
+ def update!(**args)
4560
+ @cloud_function_v2 = args[:cloud_function_v2] if args.key?(:cloud_function_v2)
4561
+ end
4562
+ end
4563
+
4036
4564
  # Information required for a TCP Uptime check request.
4037
4565
  class TcpCheck
4038
4566
  include Google::Apis::Core::Hashable
@@ -4355,6 +4883,11 @@ module Google
4355
4883
  class Type
4356
4884
  include Google::Apis::Core::Hashable
4357
4885
 
4886
+ # The source edition string, only valid when syntax is SYNTAX_EDITIONS.
4887
+ # Corresponds to the JSON property `edition`
4888
+ # @return [String]
4889
+ attr_accessor :edition
4890
+
4358
4891
  # The list of fields.
4359
4892
  # Corresponds to the JSON property `fields`
4360
4893
  # @return [Array<Google::Apis::MonitoringV3::Field>]
@@ -4392,6 +4925,7 @@ module Google
4392
4925
 
4393
4926
  # Update properties of this object
4394
4927
  def update!(**args)
4928
+ @edition = args[:edition] if args.key?(:edition)
4395
4929
  @fields = args[:fields] if args.key?(:fields)
4396
4930
  @name = args[:name] if args.key?(:name)
4397
4931
  @oneofs = args[:oneofs] if args.key?(:oneofs)
@@ -4517,10 +5051,10 @@ module Google
4517
5051
  # @return [Google::Apis::MonitoringV3::MonitoredResource]
4518
5052
  attr_accessor :monitored_resource
4519
5053
 
4520
- # A unique resource name for this Uptime check configuration. The format is:
4521
- # projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID] [
4522
- # PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the Uptime
4523
- # check.This field should be omitted when creating the Uptime check
5054
+ # Identifier. A unique resource name for this Uptime check configuration. The
5055
+ # format is: projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
5056
+ # [PROJECT_ID_OR_NUMBER] is the Workspace host project associated with the
5057
+ # Uptime check.This field should be omitted when creating the Uptime check
4524
5058
  # configuration; on create, the resource name is assigned by the server and
4525
5059
  # included in the response.
4526
5060
  # Corresponds to the JSON property `name`
@@ -4548,6 +5082,11 @@ module Google
4548
5082
  # @return [Array<String>]
4549
5083
  attr_accessor :selected_regions
4550
5084
 
5085
+ # Describes a Synthetic Monitor to be invoked by Uptime.
5086
+ # Corresponds to the JSON property `syntheticMonitor`
5087
+ # @return [Google::Apis::MonitoringV3::SyntheticMonitorTarget]
5088
+ attr_accessor :synthetic_monitor
5089
+
4551
5090
  # Information required for a TCP Uptime check request.
4552
5091
  # Corresponds to the JSON property `tcpCheck`
4553
5092
  # @return [Google::Apis::MonitoringV3::TcpCheck]
@@ -4585,6 +5124,7 @@ module Google
4585
5124
  @period = args[:period] if args.key?(:period)
4586
5125
  @resource_group = args[:resource_group] if args.key?(:resource_group)
4587
5126
  @selected_regions = args[:selected_regions] if args.key?(:selected_regions)
5127
+ @synthetic_monitor = args[:synthetic_monitor] if args.key?(:synthetic_monitor)
4588
5128
  @tcp_check = args[:tcp_check] if args.key?(:tcp_check)
4589
5129
  @timeout = args[:timeout] if args.key?(:timeout)
4590
5130
  @user_labels = args[:user_labels] if args.key?(:user_labels)