google-apis-monitoring_v3 0.64.0 → 0.83.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.
@@ -116,10 +116,94 @@ module Google
116
116
  end
117
117
  end
118
118
 
119
+ # An alert is the representation of a violation of an alert policy. It is a read-
120
+ # only resource that cannot be modified by the accompanied API.
121
+ class Alert
122
+ include Google::Apis::Core::Hashable
123
+
124
+ # The time when the alert was closed.
125
+ # Corresponds to the JSON property `closeTime`
126
+ # @return [String]
127
+ attr_accessor :close_time
128
+
129
+ # Information about the log for log-based alerts.
130
+ # Corresponds to the JSON property `log`
131
+ # @return [Google::Apis::MonitoringV3::LogMetadata]
132
+ attr_accessor :log
133
+
134
+ # Auxiliary metadata for a MonitoredResource object. MonitoredResource objects
135
+ # contain the minimum set of information to uniquely identify a monitored
136
+ # resource instance. There is some other useful auxiliary metadata. Monitoring
137
+ # and Logging use an ingestion pipeline to extract metadata for cloud resources
138
+ # of all types, and store the metadata in this message.
139
+ # Corresponds to the JSON property `metadata`
140
+ # @return [Google::Apis::MonitoringV3::MonitoredResourceMetadata]
141
+ attr_accessor :metadata
142
+
143
+ # A specific metric, identified by specifying values for all of the labels of a
144
+ # MetricDescriptor.
145
+ # Corresponds to the JSON property `metric`
146
+ # @return [Google::Apis::MonitoringV3::Metric]
147
+ attr_accessor :metric
148
+
149
+ # Identifier. The name of the alert.The format is: projects/[
150
+ # PROJECT_ID_OR_NUMBER]/alerts/[ALERT_ID] The [ALERT_ID] is a system-assigned
151
+ # unique identifier for the alert.
152
+ # Corresponds to the JSON property `name`
153
+ # @return [String]
154
+ attr_accessor :name
155
+
156
+ # The time when the alert was opened.
157
+ # Corresponds to the JSON property `openTime`
158
+ # @return [String]
159
+ attr_accessor :open_time
160
+
161
+ # The state of the policy at the time the alert was generated.
162
+ # Corresponds to the JSON property `policy`
163
+ # @return [Google::Apis::MonitoringV3::PolicySnapshot]
164
+ attr_accessor :policy
165
+
166
+ # An object representing a resource that can be used for monitoring, logging,
167
+ # billing, or other purposes. Examples include virtual machine instances,
168
+ # databases, and storage devices such as disks. The type field identifies a
169
+ # MonitoredResourceDescriptor object that describes the resource's schema.
170
+ # Information in the labels field identifies the actual resource and its
171
+ # attributes according to the schema. For example, a particular Compute Engine
172
+ # VM instance could be represented by the following object, because the
173
+ # MonitoredResourceDescriptor for "gce_instance" has labels "project_id", "
174
+ # instance_id" and "zone": ` "type": "gce_instance", "labels": ` "project_id": "
175
+ # my-project", "instance_id": "12345678901234", "zone": "us-central1-a" ``
176
+ # Corresponds to the JSON property `resource`
177
+ # @return [Google::Apis::MonitoringV3::MonitoredResource]
178
+ attr_accessor :resource
179
+
180
+ # Output only. The current state of the alert.
181
+ # Corresponds to the JSON property `state`
182
+ # @return [String]
183
+ attr_accessor :state
184
+
185
+ def initialize(**args)
186
+ update!(**args)
187
+ end
188
+
189
+ # Update properties of this object
190
+ def update!(**args)
191
+ @close_time = args[:close_time] if args.key?(:close_time)
192
+ @log = args[:log] if args.key?(:log)
193
+ @metadata = args[:metadata] if args.key?(:metadata)
194
+ @metric = args[:metric] if args.key?(:metric)
195
+ @name = args[:name] if args.key?(:name)
196
+ @open_time = args[:open_time] if args.key?(:open_time)
197
+ @policy = args[:policy] if args.key?(:policy)
198
+ @resource = args[:resource] if args.key?(:resource)
199
+ @state = args[:state] if args.key?(:state)
200
+ end
201
+ end
202
+
119
203
  # A description of the conditions under which some aspect of your system is
120
204
  # 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/).
205
+ # this state. For an overview of alerting policies, see Introduction to Alerting
206
+ # (https://cloud.google.com/monitoring/alerts/).
123
207
  class AlertPolicy
124
208
  include Google::Apis::Core::Hashable
125
209
 
@@ -184,9 +268,9 @@ module Google
184
268
  # @return [Google::Apis::MonitoringV3::MutationRecord]
185
269
  attr_accessor :mutation_record
186
270
 
187
- # Required if the policy exists. The resource name for this policy. The format
188
- # is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] [
189
- # ALERT_POLICY_ID] is assigned by Cloud Monitoring when the policy is created.
271
+ # Identifier. Required if the policy exists. The resource name for this policy.
272
+ # The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]
273
+ # [ALERT_POLICY_ID] is assigned by Cloud Monitoring when the policy is created.
190
274
  # When calling the alertPolicies.create method, do not include the name field in
191
275
  # the alerting policy passed as part of the request.
192
276
  # Corresponds to the JSON property `name`
@@ -203,7 +287,7 @@ module Google
203
287
  # @return [Array<String>]
204
288
  attr_accessor :notification_channels
205
289
 
206
- # Optional. The severity of an alert policy indicates how important incidents
290
+ # Optional. The severity of an alerting policy indicates how important incidents
207
291
  # generated by that policy are. The severity level will be displayed on the
208
292
  # Incident detail page and in notifications.
209
293
  # Corresponds to the JSON property `severity`
@@ -260,7 +344,7 @@ module Google
260
344
  class AlertStrategy
261
345
  include Google::Apis::Core::Hashable
262
346
 
263
- # If an alert policy that was active has no data for this long, any open
347
+ # If an alerting policy that was active has no data for this long, any open
264
348
  # incidents will close
265
349
  # Corresponds to the JSON property `autoClose`
266
350
  # @return [String]
@@ -271,7 +355,14 @@ module Google
271
355
  # @return [Array<Google::Apis::MonitoringV3::NotificationChannelStrategy>]
272
356
  attr_accessor :notification_channel_strategy
273
357
 
274
- # Control over the rate of notifications sent to this alert policy's
358
+ # For log-based alert policies, the notification prompts is always OPENED. For
359
+ # non log-based alert policies, the notification prompts can be OPENED or OPENED,
360
+ # CLOSED.
361
+ # Corresponds to the JSON property `notificationPrompts`
362
+ # @return [Array<String>]
363
+ attr_accessor :notification_prompts
364
+
365
+ # Control over the rate of notifications sent to this alerting policy's
275
366
  # notification channels.
276
367
  # Corresponds to the JSON property `notificationRateLimit`
277
368
  # @return [Google::Apis::MonitoringV3::NotificationRateLimit]
@@ -285,6 +376,7 @@ module Google
285
376
  def update!(**args)
286
377
  @auto_close = args[:auto_close] if args.key?(:auto_close)
287
378
  @notification_channel_strategy = args[:notification_channel_strategy] if args.key?(:notification_channel_strategy)
379
+ @notification_prompts = args[:notification_prompts] if args.key?(:notification_prompts)
288
380
  @notification_rate_limit = args[:notification_rate_limit] if args.key?(:notification_rate_limit)
289
381
  end
290
382
  end
@@ -440,6 +532,27 @@ module Google
440
532
  end
441
533
  end
442
534
 
535
+ # A test that uses an alerting result in a boolean column produced by the SQL
536
+ # query.
537
+ class BooleanTest
538
+ include Google::Apis::Core::Hashable
539
+
540
+ # Required. The name of the column containing the boolean value. If the value in
541
+ # a row is NULL, that row is ignored.
542
+ # Corresponds to the JSON property `column`
543
+ # @return [String]
544
+ attr_accessor :column
545
+
546
+ def initialize(**args)
547
+ update!(**args)
548
+ end
549
+
550
+ # Update properties of this object
551
+ def update!(**args)
552
+ @column = args[:column] if args.key?(:column)
553
+ end
554
+ end
555
+
443
556
  # BucketOptions describes the bucket boundaries used to create a histogram for
444
557
  # the distribution. The buckets can be in a linear sequence, an exponential
445
558
  # sequence, or each bucket can be specified explicitly. BucketOptions does not
@@ -810,13 +923,13 @@ module Google
810
923
  # @return [Google::Apis::MonitoringV3::LogMatch]
811
924
  attr_accessor :condition_matched_log
812
925
 
813
- # A condition type that allows alert policies to be defined using Monitoring
926
+ # A condition type that allows alerting policies to be defined using Monitoring
814
927
  # Query Language (https://cloud.google.com/monitoring/mql).
815
928
  # Corresponds to the JSON property `conditionMonitoringQueryLanguage`
816
929
  # @return [Google::Apis::MonitoringV3::MonitoringQueryLanguageCondition]
817
930
  attr_accessor :condition_monitoring_query_language
818
931
 
819
- # A condition type that allows alert policies to be defined using Prometheus
932
+ # A condition type that allows alerting policies to be defined using Prometheus
820
933
  # Query Language (PromQL) (https://prometheus.io/docs/prometheus/latest/querying/
821
934
  # basics/).The PrometheusQueryLanguageCondition message contains information
822
935
  # from a Prometheus alerting rule and its associated rule group.A Prometheus
@@ -842,6 +955,13 @@ module Google
842
955
  # @return [Google::Apis::MonitoringV3::PrometheusQueryLanguageCondition]
843
956
  attr_accessor :condition_prometheus_query_language
844
957
 
958
+ # A condition that allows alerting policies to be defined using GoogleSQL. SQL
959
+ # conditions examine a sliding window of logs using GoogleSQL. Alert policies
960
+ # with SQL conditions may incur additional billing.
961
+ # Corresponds to the JSON property `conditionSql`
962
+ # @return [Google::Apis::MonitoringV3::SqlCondition]
963
+ attr_accessor :condition_sql
964
+
845
965
  # A condition type that compares a collection of time series against a threshold.
846
966
  # Corresponds to the JSON property `conditionThreshold`
847
967
  # @return [Google::Apis::MonitoringV3::MetricThreshold]
@@ -882,6 +1002,7 @@ module Google
882
1002
  @condition_matched_log = args[:condition_matched_log] if args.key?(:condition_matched_log)
883
1003
  @condition_monitoring_query_language = args[:condition_monitoring_query_language] if args.key?(:condition_monitoring_query_language)
884
1004
  @condition_prometheus_query_language = args[:condition_prometheus_query_language] if args.key?(:condition_prometheus_query_language)
1005
+ @condition_sql = args[:condition_sql] if args.key?(:condition_sql)
885
1006
  @condition_threshold = args[:condition_threshold] if args.key?(:condition_threshold)
886
1007
  @display_name = args[:display_name] if args.key?(:display_name)
887
1008
  @name = args[:name] if args.key?(:name)
@@ -1058,10 +1179,30 @@ module Google
1058
1179
  class Criteria
1059
1180
  include Google::Apis::Core::Hashable
1060
1181
 
1182
+ # Optional. When you define a snooze, you can also define a filter for that
1183
+ # snooze. The filter is a string containing one or more key-value pairs. The
1184
+ # string uses the standard https://google.aip.dev/160 filter syntax. If you
1185
+ # define a filter for a snooze, then the snooze can only apply to one alert
1186
+ # policy. When the snooze is active, incidents won't be created when the
1187
+ # incident would have key-value pairs (labels) that match those specified by the
1188
+ # filter in the snooze.Snooze filters support resource, metric, and metadata
1189
+ # labels. If multiple labels are used, then they must be connected with an AND
1190
+ # operator. For example, the following filter applies the snooze to incidents
1191
+ # that have a resource label with an instance ID of 1234567890, a metric label
1192
+ # with an instance name of test_group, a metadata user label with a key of foo
1193
+ # and a value of bar, and a metadata system label with a key of region and a
1194
+ # value of us-central1: "filter": "resource.labels.instance_id=\"1234567890\"
1195
+ # AND metric.labels.instance_name=\"test_group\" AND metadata.user_labels.foo=\"
1196
+ # bar\" AND metadata.system_labels.region=\"us-central1\""
1197
+ # Corresponds to the JSON property `filter`
1198
+ # @return [String]
1199
+ attr_accessor :filter
1200
+
1061
1201
  # The specific AlertPolicy names for the alert that should be snoozed. The
1062
1202
  # format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID] There is
1063
1203
  # a limit of 16 policies per snooze. This limit is checked during snooze
1064
- # creation.
1204
+ # creation. Exactly 1 alert policy is required if filter is specified at the
1205
+ # same time.
1065
1206
  # Corresponds to the JSON property `policies`
1066
1207
  # @return [Array<String>]
1067
1208
  attr_accessor :policies
@@ -1072,6 +1213,7 @@ module Google
1072
1213
 
1073
1214
  # Update properties of this object
1074
1215
  def update!(**args)
1216
+ @filter = args[:filter] if args.key?(:filter)
1075
1217
  @policies = args[:policies] if args.key?(:policies)
1076
1218
  end
1077
1219
  end
@@ -1091,6 +1233,34 @@ module Google
1091
1233
  end
1092
1234
  end
1093
1235
 
1236
+ # Used to schedule the query to run every so many days.
1237
+ class Daily
1238
+ include Google::Apis::Core::Hashable
1239
+
1240
+ # Represents a time of day. The date and time zone are either not significant or
1241
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
1242
+ # types are google.type.Date and google.protobuf.Timestamp.
1243
+ # Corresponds to the JSON property `executionTime`
1244
+ # @return [Google::Apis::MonitoringV3::TimeOfDay]
1245
+ attr_accessor :execution_time
1246
+
1247
+ # Required. The number of days between runs. Must be greater than or equal to 1
1248
+ # day and less than or equal to 31 days.
1249
+ # Corresponds to the JSON property `periodicity`
1250
+ # @return [Fixnum]
1251
+ attr_accessor :periodicity
1252
+
1253
+ def initialize(**args)
1254
+ update!(**args)
1255
+ end
1256
+
1257
+ # Update properties of this object
1258
+ def update!(**args)
1259
+ @execution_time = args[:execution_time] if args.key?(:execution_time)
1260
+ @periodicity = args[:periodicity] if args.key?(:periodicity)
1261
+ end
1262
+ end
1263
+
1094
1264
  # Distribution contains summary statistics for a population of values. It
1095
1265
  # optionally contains a histogram representing the distribution of those values
1096
1266
  # across a set of buckets.The summary statistics are the count, mean, sum of the
@@ -1444,7 +1614,11 @@ module Google
1444
1614
  end
1445
1615
  end
1446
1616
 
1447
- # A single field of a message type.
1617
+ # A single field of a message type.New usages of this message as an alternative
1618
+ # to FieldDescriptorProto are strongly discouraged. This message does not
1619
+ # reliability preserve all information necessary to model the schema and
1620
+ # preserve semantics. Instead make use of FileDescriptorSet which preserves the
1621
+ # necessary information.
1448
1622
  class Field
1449
1623
  include Google::Apis::Core::Hashable
1450
1624
 
@@ -1837,6 +2011,34 @@ module Google
1837
2011
  end
1838
2012
  end
1839
2013
 
2014
+ # Used to schedule the query to run every so many hours.
2015
+ class Hourly
2016
+ include Google::Apis::Core::Hashable
2017
+
2018
+ # Optional. The number of minutes after the hour (in UTC) to run the query. Must
2019
+ # be greater than or equal to 0 minutes and less than or equal to 59 minutes. If
2020
+ # left unspecified, then an arbitrary offset is used.
2021
+ # Corresponds to the JSON property `minuteOffset`
2022
+ # @return [Fixnum]
2023
+ attr_accessor :minute_offset
2024
+
2025
+ # Required. The number of hours between runs. Must be greater than or equal to 1
2026
+ # hour and less than or equal to 48 hours.
2027
+ # Corresponds to the JSON property `periodicity`
2028
+ # @return [Fixnum]
2029
+ attr_accessor :periodicity
2030
+
2031
+ def initialize(**args)
2032
+ update!(**args)
2033
+ end
2034
+
2035
+ # Update properties of this object
2036
+ def update!(**args)
2037
+ @minute_offset = args[:minute_offset] if args.key?(:minute_offset)
2038
+ @periodicity = args[:periodicity] if args.key?(:periodicity)
2039
+ end
2040
+ end
2041
+
1840
2042
  # Information involved in an HTTP/HTTPS Uptime check request.
1841
2043
  class HttpCheck
1842
2044
  include Google::Apis::Core::Hashable
@@ -2289,6 +2491,41 @@ module Google
2289
2491
  end
2290
2492
  end
2291
2493
 
2494
+ # The ListAlerts response.
2495
+ class ListAlertsResponse
2496
+ include Google::Apis::Core::Hashable
2497
+
2498
+ # The list of alerts.
2499
+ # Corresponds to the JSON property `alerts`
2500
+ # @return [Array<Google::Apis::MonitoringV3::Alert>]
2501
+ attr_accessor :alerts
2502
+
2503
+ # If not empty, indicates that there may be more results that match the request.
2504
+ # Use the value in the page_token field in a subsequent request to fetch the
2505
+ # next set of results. The token is encrypted and only guaranteed to return
2506
+ # correct results for 72 hours after it is created. If empty, all results have
2507
+ # been returned.
2508
+ # Corresponds to the JSON property `nextPageToken`
2509
+ # @return [String]
2510
+ attr_accessor :next_page_token
2511
+
2512
+ # The estimated total number of matching results for this query.
2513
+ # Corresponds to the JSON property `totalSize`
2514
+ # @return [Fixnum]
2515
+ attr_accessor :total_size
2516
+
2517
+ def initialize(**args)
2518
+ update!(**args)
2519
+ end
2520
+
2521
+ # Update properties of this object
2522
+ def update!(**args)
2523
+ @alerts = args[:alerts] if args.key?(:alerts)
2524
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2525
+ @total_size = args[:total_size] if args.key?(:total_size)
2526
+ end
2527
+ end
2528
+
2292
2529
  # The ListGroupMembers response.
2293
2530
  class ListGroupMembersResponse
2294
2531
  include Google::Apis::Core::Hashable
@@ -2578,6 +2815,12 @@ module Google
2578
2815
  # @return [String]
2579
2816
  attr_accessor :unit
2580
2817
 
2818
+ # Cloud regions that were unreachable which may have caused incomplete data to
2819
+ # be returned.
2820
+ # Corresponds to the JSON property `unreachable`
2821
+ # @return [Array<String>]
2822
+ attr_accessor :unreachable
2823
+
2581
2824
  def initialize(**args)
2582
2825
  update!(**args)
2583
2826
  end
@@ -2588,6 +2831,7 @@ module Google
2588
2831
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2589
2832
  @time_series = args[:time_series] if args.key?(:time_series)
2590
2833
  @unit = args[:unit] if args.key?(:unit)
2834
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2591
2835
  end
2592
2836
  end
2593
2837
 
@@ -2694,6 +2938,25 @@ module Google
2694
2938
  end
2695
2939
  end
2696
2940
 
2941
+ # Information about the log for log-based alerts.
2942
+ class LogMetadata
2943
+ include Google::Apis::Core::Hashable
2944
+
2945
+ # The labels extracted from the log.
2946
+ # Corresponds to the JSON property `extractedLabels`
2947
+ # @return [Hash<String,String>]
2948
+ attr_accessor :extracted_labels
2949
+
2950
+ def initialize(**args)
2951
+ update!(**args)
2952
+ end
2953
+
2954
+ # Update properties of this object
2955
+ def update!(**args)
2956
+ @extracted_labels = args[:extracted_labels] if args.key?(:extracted_labels)
2957
+ end
2958
+ end
2959
+
2697
2960
  # Istio service scoped to an Istio mesh. Anthos clusters running ASM < 1.6.8
2698
2961
  # will have their services ingested as this type.
2699
2962
  class MeshIstio
@@ -2776,11 +3039,10 @@ module Google
2776
3039
  # @return [Array<Google::Apis::MonitoringV3::Aggregation>]
2777
3040
  attr_accessor :aggregations
2778
3041
 
2779
- # The amount of time that a time series must fail to report new data to be
2780
- # considered failing. The minimum value of this field is 120 seconds. Larger
2781
- # values that are a multiple of a minute--for example, 240 or 300 seconds--are
2782
- # supported. If an invalid value is given, an error will be returned. The
2783
- # Duration.nanos field is ignored.
3042
+ # Required. The amount of time that a time series must fail to report new data
3043
+ # to be considered failing. The minimum value of this field is 120 seconds.
3044
+ # Larger values that are a multiple of a minute--for example, 240 or 300 seconds-
3045
+ # -are supported. If an invalid value is given, an error will be returned.
2784
3046
  # Corresponds to the JSON property `duration`
2785
3047
  # @return [String]
2786
3048
  attr_accessor :duration
@@ -2980,6 +3242,11 @@ module Google
2980
3242
  # @return [String]
2981
3243
  attr_accessor :sample_period
2982
3244
 
3245
+ # The scope of the timeseries data of the metric.
3246
+ # Corresponds to the JSON property `timeSeriesResourceHierarchyLevel`
3247
+ # @return [Array<String>]
3248
+ attr_accessor :time_series_resource_hierarchy_level
3249
+
2983
3250
  def initialize(**args)
2984
3251
  update!(**args)
2985
3252
  end
@@ -2989,6 +3256,7 @@ module Google
2989
3256
  @ingest_delay = args[:ingest_delay] if args.key?(:ingest_delay)
2990
3257
  @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
2991
3258
  @sample_period = args[:sample_period] if args.key?(:sample_period)
3259
+ @time_series_resource_hierarchy_level = args[:time_series_resource_hierarchy_level] if args.key?(:time_series_resource_hierarchy_level)
2992
3260
  end
2993
3261
  end
2994
3262
 
@@ -3067,9 +3335,9 @@ module Google
3067
3335
  # @return [String]
3068
3336
  attr_accessor :denominator_filter
3069
3337
 
3070
- # The amount of time that a time series must violate the threshold to be
3071
- # considered failing. Currently, only values that are a multiple of a minute--e.
3072
- # g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given,
3338
+ # Required. The amount of time that a time series must violate the threshold to
3339
+ # be considered failing. Currently, only values that are a multiple of a minute--
3340
+ # e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given,
3073
3341
  # an error will be returned. When choosing a duration, it is useful to keep in
3074
3342
  # mind the frequency of the underlying time series data (which may also be
3075
3343
  # affected by any alignments specified in the aggregations field); a good
@@ -3135,6 +3403,26 @@ module Google
3135
3403
  end
3136
3404
  end
3137
3405
 
3406
+ # Used to schedule the query to run every so many minutes.
3407
+ class Minutes
3408
+ include Google::Apis::Core::Hashable
3409
+
3410
+ # Required. Number of minutes between runs. The interval must be greater than or
3411
+ # equal to 5 minutes and less than or equal to 1440 minutes.
3412
+ # Corresponds to the JSON property `periodicity`
3413
+ # @return [Fixnum]
3414
+ attr_accessor :periodicity
3415
+
3416
+ def initialize(**args)
3417
+ update!(**args)
3418
+ end
3419
+
3420
+ # Update properties of this object
3421
+ def update!(**args)
3422
+ @periodicity = args[:periodicity] if args.key?(:periodicity)
3423
+ end
3424
+ end
3425
+
3138
3426
  # An object representing a resource that can be used for monitoring, logging,
3139
3427
  # billing, or other purposes. Examples include virtual machine instances,
3140
3428
  # databases, and storage devices such as disks. The type field identifies a
@@ -3277,20 +3565,20 @@ module Google
3277
3565
  end
3278
3566
  end
3279
3567
 
3280
- # A condition type that allows alert policies to be defined using Monitoring
3568
+ # A condition type that allows alerting policies to be defined using Monitoring
3281
3569
  # Query Language (https://cloud.google.com/monitoring/mql).
3282
3570
  class MonitoringQueryLanguageCondition
3283
3571
  include Google::Apis::Core::Hashable
3284
3572
 
3285
- # The amount of time that a time series must violate the threshold to be
3286
- # considered failing. Currently, only values that are a multiple of a minute--e.
3287
- # g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given,
3573
+ # Optional. The amount of time that a time series must violate the threshold to
3574
+ # be considered failing. Currently, only values that are a multiple of a minute--
3575
+ # e.g., 0, 60, 120, or 300 seconds--are supported. If an invalid value is given,
3288
3576
  # an error will be returned. When choosing a duration, it is useful to keep in
3289
3577
  # mind the frequency of the underlying time series data (which may also be
3290
3578
  # affected by any alignments specified in the aggregations field); a good
3291
3579
  # duration is long enough so that a single outlier does not generate spurious
3292
3580
  # alerts, but short enough that unhealthy states are detected and alerted on
3293
- # quickly.
3581
+ # quickly. The default value is zero.
3294
3582
  # Corresponds to the JSON property `duration`
3295
3583
  # @return [String]
3296
3584
  attr_accessor :duration
@@ -3402,9 +3690,9 @@ module Google
3402
3690
  # @return [Array<Google::Apis::MonitoringV3::MutationRecord>]
3403
3691
  attr_accessor :mutation_records
3404
3692
 
3405
- # The full REST resource name for this channel. The format is: projects/[
3406
- # PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID] The [CHANNEL_ID] is
3407
- # automatically assigned by the server on creation.
3693
+ # Identifier. The full REST resource name for this channel. The format is:
3694
+ # projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID] The [
3695
+ # CHANNEL_ID] is automatically assigned by the server on creation.
3408
3696
  # Corresponds to the JSON property `name`
3409
3697
  # @return [String]
3410
3698
  attr_accessor :name
@@ -3557,7 +3845,7 @@ module Google
3557
3845
  end
3558
3846
  end
3559
3847
 
3560
- # Control over the rate of notifications sent to this alert policy's
3848
+ # Control over the rate of notifications sent to this alerting policy's
3561
3849
  # notification channels.
3562
3850
  class NotificationRateLimit
3563
3851
  include Google::Apis::Core::Hashable
@@ -3610,7 +3898,9 @@ module Google
3610
3898
  end
3611
3899
 
3612
3900
  # A protocol buffer option, which can be attached to a message, field,
3613
- # enumeration, etc.
3901
+ # enumeration, etc.New usages of this message as an alternative to FileOptions,
3902
+ # MessageOptions, FieldOptions, EnumOptions, EnumValueOptions, ServiceOptions,
3903
+ # or MethodOptions are strongly discouraged.
3614
3904
  class Option
3615
3905
  include Google::Apis::Core::Hashable
3616
3906
 
@@ -3806,7 +4096,45 @@ module Google
3806
4096
  end
3807
4097
  end
3808
4098
 
3809
- # A condition type that allows alert policies to be defined using Prometheus
4099
+ # The state of the policy at the time the alert was generated.
4100
+ class PolicySnapshot
4101
+ include Google::Apis::Core::Hashable
4102
+
4103
+ # The display name of the alert policy.
4104
+ # Corresponds to the JSON property `displayName`
4105
+ # @return [String]
4106
+ attr_accessor :display_name
4107
+
4108
+ # The name of the alert policy resource. In the form of "projects/
4109
+ # PROJECT_ID_OR_NUMBER/alertPolicies/ALERT_POLICY_ID".
4110
+ # Corresponds to the JSON property `name`
4111
+ # @return [String]
4112
+ attr_accessor :name
4113
+
4114
+ # The severity of the alert policy.
4115
+ # Corresponds to the JSON property `severity`
4116
+ # @return [String]
4117
+ attr_accessor :severity
4118
+
4119
+ # The user labels for the alert policy.
4120
+ # Corresponds to the JSON property `userLabels`
4121
+ # @return [Hash<String,String>]
4122
+ attr_accessor :user_labels
4123
+
4124
+ def initialize(**args)
4125
+ update!(**args)
4126
+ end
4127
+
4128
+ # Update properties of this object
4129
+ def update!(**args)
4130
+ @display_name = args[:display_name] if args.key?(:display_name)
4131
+ @name = args[:name] if args.key?(:name)
4132
+ @severity = args[:severity] if args.key?(:severity)
4133
+ @user_labels = args[:user_labels] if args.key?(:user_labels)
4134
+ end
4135
+ end
4136
+
4137
+ # A condition type that allows alerting policies to be defined using Prometheus
3810
4138
  # Query Language (PromQL) (https://prometheus.io/docs/prometheus/latest/querying/
3811
4139
  # basics/).The PrometheusQueryLanguageCondition message contains information
3812
4140
  # from a Prometheus alerting rule and its associated rule group.A Prometheus
@@ -3843,6 +4171,16 @@ module Google
3843
4171
  # @return [String]
3844
4172
  attr_accessor :alert_rule
3845
4173
 
4174
+ # Optional. Whether to disable metric existence validation for this condition.
4175
+ # This allows alerting policies to be defined on metrics that do not yet exist,
4176
+ # improving advanced customer workflows such as configuring alerting policies
4177
+ # using Terraform.Users with the monitoring.alertPolicyViewer role are able to
4178
+ # see the name of the non-existent metric in the alerting policy condition.
4179
+ # Corresponds to the JSON property `disableMetricValidation`
4180
+ # @return [Boolean]
4181
+ attr_accessor :disable_metric_validation
4182
+ alias_method :disable_metric_validation?, :disable_metric_validation
4183
+
3846
4184
  # Optional. Alerts are considered firing once their PromQL expression was
3847
4185
  # evaluated to be "true" for this long. Alerts whose PromQL expression was not
3848
4186
  # evaluated to be "true" for long enough are considered pending. Must be a non-
@@ -3897,6 +4235,7 @@ module Google
3897
4235
  # Update properties of this object
3898
4236
  def update!(**args)
3899
4237
  @alert_rule = args[:alert_rule] if args.key?(:alert_rule)
4238
+ @disable_metric_validation = args[:disable_metric_validation] if args.key?(:disable_metric_validation)
3900
4239
  @duration = args[:duration] if args.key?(:duration)
3901
4240
  @evaluation_interval = args[:evaluation_interval] if args.key?(:evaluation_interval)
3902
4241
  @labels = args[:labels] if args.key?(:labels)
@@ -3905,7 +4244,9 @@ module Google
3905
4244
  end
3906
4245
  end
3907
4246
 
3908
- # The QueryTimeSeries request.
4247
+ # The QueryTimeSeries request. For information about the status of Monitoring
4248
+ # Query Language (MQL), see the MQL deprecation notice (https://cloud.google.com/
4249
+ # stackdriver/docs/deprecations/mql).
3909
4250
  class QueryTimeSeriesRequest
3910
4251
  include Google::Apis::Core::Hashable
3911
4252
 
@@ -3939,7 +4280,9 @@ module Google
3939
4280
  end
3940
4281
  end
3941
4282
 
3942
- # The QueryTimeSeries response.
4283
+ # The QueryTimeSeries response. For information about the status of Monitoring
4284
+ # Query Language (MQL), see the MQL deprecation notice (https://cloud.google.com/
4285
+ # stackdriver/docs/deprecations/mql).
3943
4286
  class QueryTimeSeriesResponse
3944
4287
  include Google::Apis::Core::Hashable
3945
4288
 
@@ -4092,6 +4435,33 @@ module Google
4092
4435
  end
4093
4436
  end
4094
4437
 
4438
+ # A test that checks if the number of rows in the result set violates some
4439
+ # threshold.
4440
+ class RowCountTest
4441
+ include Google::Apis::Core::Hashable
4442
+
4443
+ # Required. The comparison to apply between the number of rows returned by the
4444
+ # query and the threshold.
4445
+ # Corresponds to the JSON property `comparison`
4446
+ # @return [String]
4447
+ attr_accessor :comparison
4448
+
4449
+ # Required. The value against which to compare the row count.
4450
+ # Corresponds to the JSON property `threshold`
4451
+ # @return [Fixnum]
4452
+ attr_accessor :threshold
4453
+
4454
+ def initialize(**args)
4455
+ update!(**args)
4456
+ end
4457
+
4458
+ # Update properties of this object
4459
+ def update!(**args)
4460
+ @comparison = args[:comparison] if args.key?(:comparison)
4461
+ @threshold = args[:threshold] if args.key?(:threshold)
4462
+ end
4463
+ end
4464
+
4095
4465
  # The SendNotificationChannelVerificationCode request.
4096
4466
  class SendNotificationChannelVerificationCodeRequest
4097
4467
  include Google::Apis::Core::Hashable
@@ -4503,6 +4873,65 @@ module Google
4503
4873
  end
4504
4874
  end
4505
4875
 
4876
+ # A condition that allows alerting policies to be defined using GoogleSQL. SQL
4877
+ # conditions examine a sliding window of logs using GoogleSQL. Alert policies
4878
+ # with SQL conditions may incur additional billing.
4879
+ class SqlCondition
4880
+ include Google::Apis::Core::Hashable
4881
+
4882
+ # A test that uses an alerting result in a boolean column produced by the SQL
4883
+ # query.
4884
+ # Corresponds to the JSON property `booleanTest`
4885
+ # @return [Google::Apis::MonitoringV3::BooleanTest]
4886
+ attr_accessor :boolean_test
4887
+
4888
+ # Used to schedule the query to run every so many days.
4889
+ # Corresponds to the JSON property `daily`
4890
+ # @return [Google::Apis::MonitoringV3::Daily]
4891
+ attr_accessor :daily
4892
+
4893
+ # Used to schedule the query to run every so many hours.
4894
+ # Corresponds to the JSON property `hourly`
4895
+ # @return [Google::Apis::MonitoringV3::Hourly]
4896
+ attr_accessor :hourly
4897
+
4898
+ # Used to schedule the query to run every so many minutes.
4899
+ # Corresponds to the JSON property `minutes`
4900
+ # @return [Google::Apis::MonitoringV3::Minutes]
4901
+ attr_accessor :minutes
4902
+
4903
+ # Required. The Log Analytics SQL query to run, as a string. The query must
4904
+ # conform to the required shape. Specifically, the query must not try to filter
4905
+ # the input by time. A filter will automatically be applied to filter the input
4906
+ # so that the query receives all rows received since the last time the query was
4907
+ # run.For example, the following query extracts all log entries containing an
4908
+ # HTTP request: SELECT timestamp, log_name, severity, http_request, resource,
4909
+ # labels FROM my-project.global._Default._AllLogs WHERE http_request IS NOT NULL
4910
+ # Corresponds to the JSON property `query`
4911
+ # @return [String]
4912
+ attr_accessor :query
4913
+
4914
+ # A test that checks if the number of rows in the result set violates some
4915
+ # threshold.
4916
+ # Corresponds to the JSON property `rowCountTest`
4917
+ # @return [Google::Apis::MonitoringV3::RowCountTest]
4918
+ attr_accessor :row_count_test
4919
+
4920
+ def initialize(**args)
4921
+ update!(**args)
4922
+ end
4923
+
4924
+ # Update properties of this object
4925
+ def update!(**args)
4926
+ @boolean_test = args[:boolean_test] if args.key?(:boolean_test)
4927
+ @daily = args[:daily] if args.key?(:daily)
4928
+ @hourly = args[:hourly] if args.key?(:hourly)
4929
+ @minutes = args[:minutes] if args.key?(:minutes)
4930
+ @query = args[:query] if args.key?(:query)
4931
+ @row_count_test = args[:row_count_test] if args.key?(:row_count_test)
4932
+ end
4933
+ end
4934
+
4506
4935
  # The Status type defines a logical error model that is suitable for different
4507
4936
  # programming environments, including REST APIs and RPC APIs. It is used by gRPC
4508
4937
  # (https://github.com/grpc). Each Status message contains three pieces of data:
@@ -4663,6 +5092,51 @@ module Google
4663
5092
  end
4664
5093
  end
4665
5094
 
5095
+ # Represents a time of day. The date and time zone are either not significant or
5096
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
5097
+ # types are google.type.Date and google.protobuf.Timestamp.
5098
+ class TimeOfDay
5099
+ include Google::Apis::Core::Hashable
5100
+
5101
+ # Hours of a day in 24 hour format. Must be greater than or equal to 0 and
5102
+ # typically must be less than or equal to 23. An API may choose to allow the
5103
+ # value "24:00:00" for scenarios like business closing time.
5104
+ # Corresponds to the JSON property `hours`
5105
+ # @return [Fixnum]
5106
+ attr_accessor :hours
5107
+
5108
+ # Minutes of an hour. Must be greater than or equal to 0 and less than or equal
5109
+ # to 59.
5110
+ # Corresponds to the JSON property `minutes`
5111
+ # @return [Fixnum]
5112
+ attr_accessor :minutes
5113
+
5114
+ # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and
5115
+ # less than or equal to 999,999,999.
5116
+ # Corresponds to the JSON property `nanos`
5117
+ # @return [Fixnum]
5118
+ attr_accessor :nanos
5119
+
5120
+ # Seconds of a minute. Must be greater than or equal to 0 and typically must be
5121
+ # less than or equal to 59. An API may allow the value 60 if it allows leap-
5122
+ # seconds.
5123
+ # Corresponds to the JSON property `seconds`
5124
+ # @return [Fixnum]
5125
+ attr_accessor :seconds
5126
+
5127
+ def initialize(**args)
5128
+ update!(**args)
5129
+ end
5130
+
5131
+ # Update properties of this object
5132
+ def update!(**args)
5133
+ @hours = args[:hours] if args.key?(:hours)
5134
+ @minutes = args[:minutes] if args.key?(:minutes)
5135
+ @nanos = args[:nanos] if args.key?(:nanos)
5136
+ @seconds = args[:seconds] if args.key?(:seconds)
5137
+ end
5138
+ end
5139
+
4666
5140
  # A collection of data points that describes the time-varying values of a metric.
4667
5141
  # A time series is identified by a combination of a fully-specified monitored
4668
5142
  # resource and a fully-specified metric. This type is used for both listing and
@@ -4670,6 +5144,13 @@ module Google
4670
5144
  class TimeSeries
4671
5145
  include Google::Apis::Core::Hashable
4672
5146
 
5147
+ # Input only. A detailed description of the time series that will be associated
5148
+ # with the google.api.MetricDescriptor for the metric. Once set, this field
5149
+ # cannot be changed through CreateTimeSeries.
5150
+ # Corresponds to the JSON property `description`
5151
+ # @return [String]
5152
+ attr_accessor :description
5153
+
4673
5154
  # Auxiliary metadata for a MonitoredResource object. MonitoredResource objects
4674
5155
  # contain the minimum set of information to uniquely identify a monitored
4675
5156
  # resource instance. There is some other useful auxiliary metadata. Monitoring
@@ -4722,7 +5203,8 @@ module Google
4722
5203
 
4723
5204
  # The units in which the metric value is reported. It is only applicable if the
4724
5205
  # value_type is INT64, DOUBLE, or DISTRIBUTION. The unit defines the
4725
- # representation of the stored metric values.
5206
+ # representation of the stored metric values. This field can only be changed
5207
+ # through CreateTimeSeries when it is empty.
4726
5208
  # Corresponds to the JSON property `unit`
4727
5209
  # @return [String]
4728
5210
  attr_accessor :unit
@@ -4742,6 +5224,7 @@ module Google
4742
5224
 
4743
5225
  # Update properties of this object
4744
5226
  def update!(**args)
5227
+ @description = args[:description] if args.key?(:description)
4745
5228
  @metadata = args[:metadata] if args.key?(:metadata)
4746
5229
  @metric = args[:metric] if args.key?(:metric)
4747
5230
  @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
@@ -4879,7 +5362,11 @@ module Google
4879
5362
  end
4880
5363
  end
4881
5364
 
4882
- # A protocol buffer message type.
5365
+ # A protocol buffer message type.New usages of this message as an alternative to
5366
+ # DescriptorProto are strongly discouraged. This message does not reliability
5367
+ # preserve all information necessary to model the schema and preserve semantics.
5368
+ # Instead make use of FileDescriptorSet which preserves the necessary
5369
+ # information.
4883
5370
  class Type
4884
5371
  include Google::Apis::Core::Hashable
4885
5372
 
@@ -5009,6 +5496,12 @@ module Google
5009
5496
  # @return [Array<Google::Apis::MonitoringV3::ContentMatcher>]
5010
5497
  attr_accessor :content_matchers
5011
5498
 
5499
+ # Whether the check is disabled or not.
5500
+ # Corresponds to the JSON property `disabled`
5501
+ # @return [Boolean]
5502
+ attr_accessor :disabled
5503
+ alias_method :disabled?, :disabled
5504
+
5012
5505
  # A human-friendly name for the Uptime check configuration. The display name
5013
5506
  # should be unique within a Cloud Monitoring Workspace in order to make it
5014
5507
  # easier to identify; however, uniqueness is not enforced. Required.
@@ -5037,6 +5530,12 @@ module Google
5037
5530
  attr_accessor :is_internal
5038
5531
  alias_method :is_internal?, :is_internal
5039
5532
 
5533
+ # To specify whether to log the results of failed probes to Cloud Logging.
5534
+ # Corresponds to the JSON property `logCheckFailures`
5535
+ # @return [Boolean]
5536
+ attr_accessor :log_check_failures
5537
+ alias_method :log_check_failures?, :log_check_failures
5538
+
5040
5539
  # An object representing a resource that can be used for monitoring, logging,
5041
5540
  # billing, or other purposes. Examples include virtual machine instances,
5042
5541
  # databases, and storage devices such as disks. The type field identifies a
@@ -5115,10 +5614,12 @@ module Google
5115
5614
  def update!(**args)
5116
5615
  @checker_type = args[:checker_type] if args.key?(:checker_type)
5117
5616
  @content_matchers = args[:content_matchers] if args.key?(:content_matchers)
5617
+ @disabled = args[:disabled] if args.key?(:disabled)
5118
5618
  @display_name = args[:display_name] if args.key?(:display_name)
5119
5619
  @http_check = args[:http_check] if args.key?(:http_check)
5120
5620
  @internal_checkers = args[:internal_checkers] if args.key?(:internal_checkers)
5121
5621
  @is_internal = args[:is_internal] if args.key?(:is_internal)
5622
+ @log_check_failures = args[:log_check_failures] if args.key?(:log_check_failures)
5122
5623
  @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
5123
5624
  @name = args[:name] if args.key?(:name)
5124
5625
  @period = args[:period] if args.key?(:period)