google-apis-databasecenter_v1beta 0.1.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.
@@ -0,0 +1,2560 @@
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 DatabasecenterV1beta
24
+
25
+ # Details related to signal.
26
+ class AdditionalDetail
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Automated backup policy signal info
30
+ # Corresponds to the JSON property `automatedBackupPolicyInfo`
31
+ # @return [Google::Apis::DatabasecenterV1beta::AutomatedBackupPolicyInfo]
32
+ attr_accessor :automated_backup_policy_info
33
+
34
+ # Metadata about latest backup run state for a database resource.
35
+ # Corresponds to the JSON property `backupRunInfo`
36
+ # @return [Google::Apis::DatabasecenterV1beta::BackupRunInfo]
37
+ attr_accessor :backup_run_info
38
+
39
+ # Deletion protection signal info for a database resource.
40
+ # Corresponds to the JSON property `deletionProtectionInfo`
41
+ # @return [Google::Apis::DatabasecenterV1beta::DeletionProtectionInfo]
42
+ attr_accessor :deletion_protection_info
43
+
44
+ # Metadata about inefficient query signal info for a database resource.
45
+ # Corresponds to the JSON property `inefficientQueryInfo`
46
+ # @return [Google::Apis::DatabasecenterV1beta::InefficientQueryInfo]
47
+ attr_accessor :inefficient_query_info
48
+
49
+ # Info associated with maintenance recommendation.
50
+ # Corresponds to the JSON property `maintenanceRecommendationInfo`
51
+ # @return [Google::Apis::DatabasecenterV1beta::MaintenanceRecommendationInfo]
52
+ attr_accessor :maintenance_recommendation_info
53
+
54
+ # Info associated with outdated minor version.
55
+ # Corresponds to the JSON property `outdatedMinorVersionInfo`
56
+ # @return [Google::Apis::DatabasecenterV1beta::OutdatedMinorVersionInfo]
57
+ attr_accessor :outdated_minor_version_info
58
+
59
+ # Info associated with recommendation.
60
+ # Corresponds to the JSON property `recommendationInfo`
61
+ # @return [Google::Apis::DatabasecenterV1beta::RecommendationInfo]
62
+ attr_accessor :recommendation_info
63
+
64
+ # Resource suspension info for a database resource.
65
+ # Corresponds to the JSON property `resourceSuspensionInfo`
66
+ # @return [Google::Apis::DatabasecenterV1beta::ResourceSuspensionInfo]
67
+ attr_accessor :resource_suspension_info
68
+
69
+ # Info associated with SCC signals.
70
+ # Corresponds to the JSON property `sccInfo`
71
+ # @return [Google::Apis::DatabasecenterV1beta::SccInfo]
72
+ attr_accessor :scc_info
73
+
74
+ # Metadata about backup retention settings for a database resource.
75
+ # Corresponds to the JSON property `shortBackupRetentionInfo`
76
+ # @return [Google::Apis::DatabasecenterV1beta::RetentionSettingsInfo]
77
+ attr_accessor :short_backup_retention_info
78
+
79
+ # Event time when signal was recorded by source service.
80
+ # Corresponds to the JSON property `signalEventTime`
81
+ # @return [String]
82
+ attr_accessor :signal_event_time
83
+
84
+ # Where the signal is coming from.
85
+ # Corresponds to the JSON property `signalSource`
86
+ # @return [String]
87
+ attr_accessor :signal_source
88
+
89
+ # Type of the signal.
90
+ # Corresponds to the JSON property `signalType`
91
+ # @return [String]
92
+ attr_accessor :signal_type
93
+
94
+ def initialize(**args)
95
+ update!(**args)
96
+ end
97
+
98
+ # Update properties of this object
99
+ def update!(**args)
100
+ @automated_backup_policy_info = args[:automated_backup_policy_info] if args.key?(:automated_backup_policy_info)
101
+ @backup_run_info = args[:backup_run_info] if args.key?(:backup_run_info)
102
+ @deletion_protection_info = args[:deletion_protection_info] if args.key?(:deletion_protection_info)
103
+ @inefficient_query_info = args[:inefficient_query_info] if args.key?(:inefficient_query_info)
104
+ @maintenance_recommendation_info = args[:maintenance_recommendation_info] if args.key?(:maintenance_recommendation_info)
105
+ @outdated_minor_version_info = args[:outdated_minor_version_info] if args.key?(:outdated_minor_version_info)
106
+ @recommendation_info = args[:recommendation_info] if args.key?(:recommendation_info)
107
+ @resource_suspension_info = args[:resource_suspension_info] if args.key?(:resource_suspension_info)
108
+ @scc_info = args[:scc_info] if args.key?(:scc_info)
109
+ @short_backup_retention_info = args[:short_backup_retention_info] if args.key?(:short_backup_retention_info)
110
+ @signal_event_time = args[:signal_event_time] if args.key?(:signal_event_time)
111
+ @signal_source = args[:signal_source] if args.key?(:signal_source)
112
+ @signal_type = args[:signal_type] if args.key?(:signal_type)
113
+ end
114
+ end
115
+
116
+ # Affiliation information of a resource
117
+ class Affiliation
118
+ include Google::Apis::Core::Hashable
119
+
120
+ # Optional. Full resource name
121
+ # Corresponds to the JSON property `fullResourceName`
122
+ # @return [String]
123
+ attr_accessor :full_resource_name
124
+
125
+ # Optional. Multiple lineages can be created from a resource. For example, a
126
+ # resource can be replicated to multiple target resources. In this case, there
127
+ # will be multiple lineages for the resource, one for each target resource.
128
+ # Corresponds to the JSON property `lineages`
129
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Lineage>]
130
+ attr_accessor :lineages
131
+
132
+ # Optional. resource id of affiliated resource
133
+ # Corresponds to the JSON property `resourceId`
134
+ # @return [String]
135
+ attr_accessor :resource_id
136
+
137
+ def initialize(**args)
138
+ update!(**args)
139
+ end
140
+
141
+ # Update properties of this object
142
+ def update!(**args)
143
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
144
+ @lineages = args[:lineages] if args.key?(:lineages)
145
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
146
+ end
147
+ end
148
+
149
+ # The response message to aggregate a fleet by some group by fields.
150
+ class AggregateFleetResponse
151
+ include Google::Apis::Core::Hashable
152
+
153
+ # A token that can be sent as `page_token` to retrieve the next page. If this
154
+ # field is omitted, there are no subsequent pages.
155
+ # Corresponds to the JSON property `nextPageToken`
156
+ # @return [String]
157
+ attr_accessor :next_page_token
158
+
159
+ # Count of all resource groups in the fleet. This includes counts from all pages.
160
+ # Corresponds to the JSON property `resourceGroupsTotalCount`
161
+ # @return [Fixnum]
162
+ attr_accessor :resource_groups_total_count
163
+
164
+ # Count of all resources in the fleet. This includes counts from all pages.
165
+ # Corresponds to the JSON property `resourceTotalCount`
166
+ # @return [Fixnum]
167
+ attr_accessor :resource_total_count
168
+
169
+ # Represents a row grouped by the fields in the input.
170
+ # Corresponds to the JSON property `rows`
171
+ # @return [Array<Google::Apis::DatabasecenterV1beta::AggregateFleetRow>]
172
+ attr_accessor :rows
173
+
174
+ # Output only. The total number of rows in the entire list.
175
+ # Corresponds to the JSON property `totalSize`
176
+ # @return [Fixnum]
177
+ attr_accessor :total_size
178
+
179
+ # Unordered list. List of unreachable regions from where data could not be
180
+ # retrieved.
181
+ # Corresponds to the JSON property `unreachable`
182
+ # @return [Array<String>]
183
+ attr_accessor :unreachable
184
+
185
+ def initialize(**args)
186
+ update!(**args)
187
+ end
188
+
189
+ # Update properties of this object
190
+ def update!(**args)
191
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
192
+ @resource_groups_total_count = args[:resource_groups_total_count] if args.key?(:resource_groups_total_count)
193
+ @resource_total_count = args[:resource_total_count] if args.key?(:resource_total_count)
194
+ @rows = args[:rows] if args.key?(:rows)
195
+ @total_size = args[:total_size] if args.key?(:total_size)
196
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
197
+ end
198
+ end
199
+
200
+ # Individual row grouped by a particular dimension.
201
+ class AggregateFleetRow
202
+ include Google::Apis::Core::Hashable
203
+
204
+ # Captures the details of items that have increased or decreased in some bucket
205
+ # when compared to some point in history. It is currently used to capture the
206
+ # delta of resources that have been added or removed in the fleet as well as to
207
+ # capture the resources that have a change in Issue/Signal status.
208
+ # Corresponds to the JSON property `deltaDetails`
209
+ # @return [Google::Apis::DatabasecenterV1beta::DeltaDetails]
210
+ attr_accessor :delta_details
211
+
212
+ # Group by dimension.
213
+ # Corresponds to the JSON property `dimension`
214
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Dimension>]
215
+ attr_accessor :dimension
216
+
217
+ # Number of resource groups that have a particular dimension.
218
+ # Corresponds to the JSON property `resourceGroupsCount`
219
+ # @return [Fixnum]
220
+ attr_accessor :resource_groups_count
221
+
222
+ # Number of resources that have a particular dimension.
223
+ # Corresponds to the JSON property `resourcesCount`
224
+ # @return [Fixnum]
225
+ attr_accessor :resources_count
226
+
227
+ def initialize(**args)
228
+ update!(**args)
229
+ end
230
+
231
+ # Update properties of this object
232
+ def update!(**args)
233
+ @delta_details = args[:delta_details] if args.key?(:delta_details)
234
+ @dimension = args[:dimension] if args.key?(:dimension)
235
+ @resource_groups_count = args[:resource_groups_count] if args.key?(:resource_groups_count)
236
+ @resources_count = args[:resources_count] if args.key?(:resources_count)
237
+ end
238
+ end
239
+
240
+ # AggregateIssueStatsRequest represents the input to the AggregateIssueStats
241
+ # method.
242
+ class AggregateIssueStatsRequest
243
+ include Google::Apis::Core::Hashable
244
+
245
+ # Represents a whole or partial calendar date, such as a birthday. The time of
246
+ # day and time zone are either specified elsewhere or are insignificant. The
247
+ # date is relative to the Gregorian Calendar. This can represent one of the
248
+ # following: * A full date, with non-zero year, month, and day values. * A month
249
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
250
+ # with a zero month and a zero day. * A year and month, with a zero day (for
251
+ # example, a credit card expiration date). Related types: * google.type.
252
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
253
+ # Corresponds to the JSON property `baselineDate`
254
+ # @return [Google::Apis::DatabasecenterV1beta::Date]
255
+ attr_accessor :baseline_date
256
+
257
+ # Optional. The expression to filter resources. Supported fields are: `
258
+ # full_resource_name`, `resource_type`, `container`, `product.type`, `product.
259
+ # engine`, `product.version`, `location`, `labels`, `issues`, fields of
260
+ # availability_info, data_protection_info,'resource_name', etc. The expression
261
+ # is a list of zero or more restrictions combined via logical operators `AND`
262
+ # and `OR`. When `AND` and `OR` are both used in the expression, parentheses
263
+ # must be appropriately used to group the combinations. Example: `location="us-
264
+ # east1"` Example: `container="projects/123" OR container="projects/456"`
265
+ # Example: `(container="projects/123" OR container="projects/456") AND location="
266
+ # us-east1"`
267
+ # Corresponds to the JSON property `filter`
268
+ # @return [String]
269
+ attr_accessor :filter
270
+
271
+ # Required. Parent can be a project, a folder, or an organization. The search is
272
+ # limited to the resources within the `scope`. The allowed values are: *
273
+ # projects/`PROJECT_ID` (e.g., "projects/foo-bar") * projects/`PROJECT_NUMBER` (
274
+ # e.g., "projects/12345678") * folders/`FOLDER_NUMBER` (e.g., "folders/1234567")
275
+ # * organizations/`ORGANIZATION_NUMBER` (e.g., "organizations/123456")
276
+ # Corresponds to the JSON property `parent`
277
+ # @return [String]
278
+ attr_accessor :parent
279
+
280
+ # Optional. Lists of signal types that are issues.
281
+ # Corresponds to the JSON property `signalTypeGroups`
282
+ # @return [Array<Google::Apis::DatabasecenterV1beta::SignalTypeGroup>]
283
+ attr_accessor :signal_type_groups
284
+
285
+ def initialize(**args)
286
+ update!(**args)
287
+ end
288
+
289
+ # Update properties of this object
290
+ def update!(**args)
291
+ @baseline_date = args[:baseline_date] if args.key?(:baseline_date)
292
+ @filter = args[:filter] if args.key?(:filter)
293
+ @parent = args[:parent] if args.key?(:parent)
294
+ @signal_type_groups = args[:signal_type_groups] if args.key?(:signal_type_groups)
295
+ end
296
+ end
297
+
298
+ # The response message containing one of more group of relevant health issues
299
+ # for database resources.
300
+ class AggregateIssueStatsResponse
301
+ include Google::Apis::Core::Hashable
302
+
303
+ # List of issue group stats where each group contains stats for resources having
304
+ # a particular combination of relevant issues.
305
+ # Corresponds to the JSON property `issueGroupStats`
306
+ # @return [Array<Google::Apis::DatabasecenterV1beta::IssueGroupStats>]
307
+ attr_accessor :issue_group_stats
308
+
309
+ # Total count of the resource filtered in based on the user given filter.
310
+ # Corresponds to the JSON property `totalResourceGroupsCount`
311
+ # @return [Fixnum]
312
+ attr_accessor :total_resource_groups_count
313
+
314
+ # Total count of the resources filtered in based on the user given filter.
315
+ # Corresponds to the JSON property `totalResourcesCount`
316
+ # @return [Fixnum]
317
+ attr_accessor :total_resources_count
318
+
319
+ # Unordered list. List of unreachable regions from where data could not be
320
+ # retrieved.
321
+ # Corresponds to the JSON property `unreachable`
322
+ # @return [Array<String>]
323
+ attr_accessor :unreachable
324
+
325
+ def initialize(**args)
326
+ update!(**args)
327
+ end
328
+
329
+ # Update properties of this object
330
+ def update!(**args)
331
+ @issue_group_stats = args[:issue_group_stats] if args.key?(:issue_group_stats)
332
+ @total_resource_groups_count = args[:total_resource_groups_count] if args.key?(:total_resource_groups_count)
333
+ @total_resources_count = args[:total_resources_count] if args.key?(:total_resources_count)
334
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
335
+ end
336
+ end
337
+
338
+ # AggregateQueryStatsRequest represents the input to the AggregateQueryStats
339
+ # method.
340
+ class AggregateQueryStatsRequest
341
+ include Google::Apis::Core::Hashable
342
+
343
+ # Optional. The expression to filter resources. Supported fields are: `
344
+ # full_resource_name`, `resource_type`, `container`, `product.type`, `product.
345
+ # engine`, `product.version`, `location`, `labels`, `issues`, fields of
346
+ # availability_info, data_protection_info,'resource_name', etc. The expression
347
+ # is a list of zero or more restrictions combined via logical operators `AND`
348
+ # and `OR`. When `AND` and `OR` are both used in the expression, parentheses
349
+ # must be appropriately used to group the combinations. Example: `location="us-
350
+ # east1"` Example: `container="projects/123" OR container="projects/456"`
351
+ # Example: `(container="projects/123" OR container="projects/456") AND location="
352
+ # us-east1"` Additional specific fields for query stats are: `metric_window`, `
353
+ # query_hash`, `normalized_query`. Example: `metric_window="LAST_ONE_DAY"` (
354
+ # Possible values for `metric_window` are: `LAST_ONE_DAY`, `LAST_ONE_WEEK`, `
355
+ # LAST_TWO_WEEKS`) Example: `query_hash="12345678"` Example: `normalized_query="
356
+ # SELECT * FROM table"`
357
+ # Corresponds to the JSON property `filter`
358
+ # @return [String]
359
+ attr_accessor :filter
360
+
361
+ # Optional. The expression to order the results by. Example: `order_by="
362
+ # execution_count"` Example: `order_by="execution_count desc"` Supported order
363
+ # by fields are `execution_count`, `rows_processed`, `total_cpu_time`, `
364
+ # avg_cpu_time`.
365
+ # Corresponds to the JSON property `orderBy`
366
+ # @return [String]
367
+ attr_accessor :order_by
368
+
369
+ # Optional. If unspecified, at most 100 query stats will be returned. The
370
+ # maximum value is 1000; values above 1000 will be coerced to 1000.
371
+ # Corresponds to the JSON property `pageSize`
372
+ # @return [Fixnum]
373
+ attr_accessor :page_size
374
+
375
+ # Optional. A page token, received from a previous `AggregateQueryStatsRequest`
376
+ # call. Provide this to retrieve the subsequent page. All parameters except
377
+ # page_token should match the parameters in the call that provided the page
378
+ # token.
379
+ # Corresponds to the JSON property `pageToken`
380
+ # @return [String]
381
+ attr_accessor :page_token
382
+
383
+ def initialize(**args)
384
+ update!(**args)
385
+ end
386
+
387
+ # Update properties of this object
388
+ def update!(**args)
389
+ @filter = args[:filter] if args.key?(:filter)
390
+ @order_by = args[:order_by] if args.key?(:order_by)
391
+ @page_size = args[:page_size] if args.key?(:page_size)
392
+ @page_token = args[:page_token] if args.key?(:page_token)
393
+ end
394
+ end
395
+
396
+ # The response message containing relevant query stats for database resources.
397
+ class AggregateQueryStatsResponse
398
+ include Google::Apis::Core::Hashable
399
+
400
+ # A token that can be sent as `page_token` to retrieve the next page. If this
401
+ # field is omitted, there are no subsequent pages.
402
+ # Corresponds to the JSON property `nextPageToken`
403
+ # @return [String]
404
+ attr_accessor :next_page_token
405
+
406
+ # List of query stats where each group contains stats for resources having a
407
+ # particular combination of relevant query stats.
408
+ # Corresponds to the JSON property `queryStats`
409
+ # @return [Array<Google::Apis::DatabasecenterV1beta::QueryStatsInfo>]
410
+ attr_accessor :query_stats
411
+
412
+ # Unordered list. List of unreachable regions from where data could not be
413
+ # retrieved.
414
+ # Corresponds to the JSON property `unreachable`
415
+ # @return [Array<String>]
416
+ attr_accessor :unreachable
417
+
418
+ def initialize(**args)
419
+ update!(**args)
420
+ end
421
+
422
+ # Update properties of this object
423
+ def update!(**args)
424
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
425
+ @query_stats = args[:query_stats] if args.key?(:query_stats)
426
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
427
+ end
428
+ end
429
+
430
+ # Automated backup policy signal info
431
+ class AutomatedBackupPolicyInfo
432
+ include Google::Apis::Core::Hashable
433
+
434
+ # Is automated policy enabled.
435
+ # Corresponds to the JSON property `isEnabled`
436
+ # @return [Boolean]
437
+ attr_accessor :is_enabled
438
+ alias_method :is_enabled?, :is_enabled
439
+
440
+ # Sub resource details For Spanner/Bigtable instance certain data protection
441
+ # settings are at sub resource level like database/table. This message is used
442
+ # to capture such sub resource details.
443
+ # Corresponds to the JSON property `subResource`
444
+ # @return [Google::Apis::DatabasecenterV1beta::SubResource]
445
+ attr_accessor :sub_resource
446
+
447
+ def initialize(**args)
448
+ update!(**args)
449
+ end
450
+
451
+ # Update properties of this object
452
+ def update!(**args)
453
+ @is_enabled = args[:is_enabled] if args.key?(:is_enabled)
454
+ @sub_resource = args[:sub_resource] if args.key?(:sub_resource)
455
+ end
456
+ end
457
+
458
+ # BackupDRConfig to capture the backup and disaster recovery details of database
459
+ # resource.
460
+ class BackupDrConfig
461
+ include Google::Apis::Core::Hashable
462
+
463
+ # Indicates if the resource is managed by BackupDR.
464
+ # Corresponds to the JSON property `backupdrManaged`
465
+ # @return [Boolean]
466
+ attr_accessor :backupdr_managed
467
+ alias_method :backupdr_managed?, :backupdr_managed
468
+
469
+ def initialize(**args)
470
+ update!(**args)
471
+ end
472
+
473
+ # Update properties of this object
474
+ def update!(**args)
475
+ @backupdr_managed = args[:backupdr_managed] if args.key?(:backupdr_managed)
476
+ end
477
+ end
478
+
479
+ # Metadata about latest backup run state for a database resource.
480
+ class BackupRunInfo
481
+ include Google::Apis::Core::Hashable
482
+
483
+ # The time the backup operation completed.
484
+ # Corresponds to the JSON property `endTime`
485
+ # @return [String]
486
+ attr_accessor :end_time
487
+
488
+ # Additional information about the error encountered.
489
+ # Corresponds to the JSON property `errorMessage`
490
+ # @return [String]
491
+ attr_accessor :error_message
492
+
493
+ # Optional. OperationErrorType to expose specific error when backup operation of
494
+ # database resource failed, that is state is FAILED.
495
+ # Corresponds to the JSON property `operationErrorType`
496
+ # @return [String]
497
+ attr_accessor :operation_error_type
498
+
499
+ # The time the backup operation started.
500
+ # Corresponds to the JSON property `startTime`
501
+ # @return [String]
502
+ attr_accessor :start_time
503
+
504
+ # Output only. The state of this run.
505
+ # Corresponds to the JSON property `state`
506
+ # @return [String]
507
+ attr_accessor :state
508
+
509
+ # Sub resource details For Spanner/Bigtable instance certain data protection
510
+ # settings are at sub resource level like database/table. This message is used
511
+ # to capture such sub resource details.
512
+ # Corresponds to the JSON property `subResource`
513
+ # @return [Google::Apis::DatabasecenterV1beta::SubResource]
514
+ attr_accessor :sub_resource
515
+
516
+ def initialize(**args)
517
+ update!(**args)
518
+ end
519
+
520
+ # Update properties of this object
521
+ def update!(**args)
522
+ @end_time = args[:end_time] if args.key?(:end_time)
523
+ @error_message = args[:error_message] if args.key?(:error_message)
524
+ @operation_error_type = args[:operation_error_type] if args.key?(:operation_error_type)
525
+ @start_time = args[:start_time] if args.key?(:start_time)
526
+ @state = args[:state] if args.key?(:state)
527
+ @sub_resource = args[:sub_resource] if args.key?(:sub_resource)
528
+ end
529
+ end
530
+
531
+ # DatabaseResource represents every individually configured database unit
532
+ # representing compute and/or storage.
533
+ class DatabaseResource
534
+ include Google::Apis::Core::Hashable
535
+
536
+ # Optional. Affiliation details of the resource.
537
+ # Corresponds to the JSON property `affiliations`
538
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Affiliation>]
539
+ attr_accessor :affiliations
540
+
541
+ # BackupDRConfig to capture the backup and disaster recovery details of database
542
+ # resource.
543
+ # Corresponds to the JSON property `backupdrConfig`
544
+ # @return [Google::Apis::DatabasecenterV1beta::BackupDrConfig]
545
+ attr_accessor :backupdr_config
546
+
547
+ # List of children associated with a database group.
548
+ # Corresponds to the JSON property `childResources`
549
+ # @return [Array<Google::Apis::DatabasecenterV1beta::DatabaseResource>]
550
+ attr_accessor :child_resources
551
+
552
+ # Specifies where the resource is created. For Google Cloud resources, it is the
553
+ # full name of the project.
554
+ # Corresponds to the JSON property `container`
555
+ # @return [String]
556
+ attr_accessor :container
557
+
558
+ # The edition of the resource.
559
+ # Corresponds to the JSON property `edition`
560
+ # @return [String]
561
+ attr_accessor :edition
562
+
563
+ # The full resource name, based on CAIS resource name format https://cloud.
564
+ # google.com/asset-inventory/docs/resource-name-format Example: `//cloudsql.
565
+ # googleapis.com/projects/project-number/instances/mysql-1` `//cloudsql.
566
+ # googleapis.com/projects/project-number/instances/postgres-1` `//spanner.
567
+ # googleapis.com/projects/project-number/instances/spanner-instance-1` `//
568
+ # alloydb.googleapis.com/projects/project-number/locations/us-central1/clusters/
569
+ # c1` `//alloydb.googleapis.com/projects/project-number/locations/us-central1/
570
+ # clusters/c1/instances/i1`
571
+ # Corresponds to the JSON property `fullResourceName`
572
+ # @return [String]
573
+ attr_accessor :full_resource_name
574
+
575
+ # Labels applied on the resource. The requirements for labels assigned to Google
576
+ # Cloud resources may be found at https://cloud.google.com/resource-manager/docs/
577
+ # labels-overview#requirements
578
+ # Corresponds to the JSON property `labels`
579
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Label>]
580
+ attr_accessor :labels
581
+
582
+ # The location of the resources. It supports returning only regional locations
583
+ # in Google Cloud. These are of the form: "us-central1", "us-east1", etc. See
584
+ # https://cloud.google.com/about/locations for a list of such regions.
585
+ # Corresponds to the JSON property `location`
586
+ # @return [String]
587
+ attr_accessor :location
588
+
589
+ # MachineConfig describes the configuration of a machine specific to a Database
590
+ # Resource.
591
+ # Corresponds to the JSON property `machineConfig`
592
+ # @return [Google::Apis::DatabasecenterV1beta::MachineConfig]
593
+ attr_accessor :machine_config
594
+
595
+ # MaintenanceInfo to capture the maintenance details of database resource.
596
+ # Corresponds to the JSON property `maintenanceInfo`
597
+ # @return [Google::Apis::DatabasecenterV1beta::MaintenanceInfo]
598
+ attr_accessor :maintenance_info
599
+
600
+ # Metrics represents the metrics for a database resource.
601
+ # Corresponds to the JSON property `metrics`
602
+ # @return [Google::Apis::DatabasecenterV1beta::Metrics]
603
+ attr_accessor :metrics
604
+
605
+ # Product specification for databasecenter resources.
606
+ # Corresponds to the JSON property `product`
607
+ # @return [Google::Apis::DatabasecenterV1beta::Product]
608
+ attr_accessor :product
609
+
610
+ # The category of the resource.
611
+ # Corresponds to the JSON property `resourceCategory`
612
+ # @return [String]
613
+ attr_accessor :resource_category
614
+
615
+ # The name of the resource(The last part of the full resource name). Example:
616
+ # For full resource name - `//cloudsql.googleapis.com/projects/project-number/
617
+ # instances/mysql-1`, resource name - `mysql-1` For full resource name - `//
618
+ # cloudsql.googleapis.com/projects/project-number/instances/postgres-1` ,
619
+ # resource name - `postgres-1` Note: In some cases, there might be more than one
620
+ # resource with the same resource name.
621
+ # Corresponds to the JSON property `resourceName`
622
+ # @return [String]
623
+ attr_accessor :resource_name
624
+
625
+ # The type of resource defined according to the pattern: `Service Name`/`Type`.
626
+ # Ex: sqladmin.googleapis.com/Instance alloydb.googleapis.com/Cluster alloydb.
627
+ # googleapis.com/Instance spanner.googleapis.com/Instance
628
+ # Corresponds to the JSON property `resourceType`
629
+ # @return [String]
630
+ attr_accessor :resource_type
631
+
632
+ # The list of signal groups and count of issues related to the resource. Only
633
+ # those signals which have been requested would be included.
634
+ # Corresponds to the JSON property `signalGroups`
635
+ # @return [Array<Google::Apis::DatabasecenterV1beta::SignalGroup>]
636
+ attr_accessor :signal_groups
637
+
638
+ # Subtype of the resource specified at creation time.
639
+ # Corresponds to the JSON property `subResourceType`
640
+ # @return [String]
641
+ attr_accessor :sub_resource_type
642
+
643
+ # Tags applied on the resource. The requirements for tags assigned to Google
644
+ # Cloud resources may be found at https://cloud.google.com/resource-manager/docs/
645
+ # tags/tags-overview
646
+ # Corresponds to the JSON property `tags`
647
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Tag>]
648
+ attr_accessor :tags
649
+
650
+ def initialize(**args)
651
+ update!(**args)
652
+ end
653
+
654
+ # Update properties of this object
655
+ def update!(**args)
656
+ @affiliations = args[:affiliations] if args.key?(:affiliations)
657
+ @backupdr_config = args[:backupdr_config] if args.key?(:backupdr_config)
658
+ @child_resources = args[:child_resources] if args.key?(:child_resources)
659
+ @container = args[:container] if args.key?(:container)
660
+ @edition = args[:edition] if args.key?(:edition)
661
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
662
+ @labels = args[:labels] if args.key?(:labels)
663
+ @location = args[:location] if args.key?(:location)
664
+ @machine_config = args[:machine_config] if args.key?(:machine_config)
665
+ @maintenance_info = args[:maintenance_info] if args.key?(:maintenance_info)
666
+ @metrics = args[:metrics] if args.key?(:metrics)
667
+ @product = args[:product] if args.key?(:product)
668
+ @resource_category = args[:resource_category] if args.key?(:resource_category)
669
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
670
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
671
+ @signal_groups = args[:signal_groups] if args.key?(:signal_groups)
672
+ @sub_resource_type = args[:sub_resource_type] if args.key?(:sub_resource_type)
673
+ @tags = args[:tags] if args.key?(:tags)
674
+ end
675
+ end
676
+
677
+ # DatabaseResourceGroup represents all resources that serve a common data set.
678
+ # It is considered notionally as a single entity, powered by any number of units
679
+ # of compute and storage.
680
+ class DatabaseResourceGroup
681
+ include Google::Apis::Core::Hashable
682
+
683
+ # A database resource that serves as a root of the group of database resources.
684
+ # It is repeated just in case we have the concept of multiple roots in the
685
+ # future, however, it will only be populated with a single value for now.
686
+ # Corresponds to the JSON property `rootResources`
687
+ # @return [Array<Google::Apis::DatabasecenterV1beta::DatabaseResource>]
688
+ attr_accessor :root_resources
689
+
690
+ # The filtered signal groups and the count of issues associated with the
691
+ # resources that have been filtered in.
692
+ # Corresponds to the JSON property `signalGroups`
693
+ # @return [Array<Google::Apis::DatabasecenterV1beta::IssueCount>]
694
+ attr_accessor :signal_groups
695
+
696
+ def initialize(**args)
697
+ update!(**args)
698
+ end
699
+
700
+ # Update properties of this object
701
+ def update!(**args)
702
+ @root_resources = args[:root_resources] if args.key?(:root_resources)
703
+ @signal_groups = args[:signal_groups] if args.key?(:signal_groups)
704
+ end
705
+ end
706
+
707
+ # DatabaseResource and Issue associated with it.
708
+ class DatabaseResourceIssue
709
+ include Google::Apis::Core::Hashable
710
+
711
+ # DatabaseResource represents every individually configured database unit
712
+ # representing compute and/or storage.
713
+ # Corresponds to the JSON property `resource`
714
+ # @return [Google::Apis::DatabasecenterV1beta::DatabaseResource]
715
+ attr_accessor :resource
716
+
717
+ # Represents a signal.
718
+ # Corresponds to the JSON property `signal`
719
+ # @return [Google::Apis::DatabasecenterV1beta::Signal]
720
+ attr_accessor :signal
721
+
722
+ def initialize(**args)
723
+ update!(**args)
724
+ end
725
+
726
+ # Update properties of this object
727
+ def update!(**args)
728
+ @resource = args[:resource] if args.key?(:resource)
729
+ @signal = args[:signal] if args.key?(:signal)
730
+ end
731
+ end
732
+
733
+ # Represents a whole or partial calendar date, such as a birthday. The time of
734
+ # day and time zone are either specified elsewhere or are insignificant. The
735
+ # date is relative to the Gregorian Calendar. This can represent one of the
736
+ # following: * A full date, with non-zero year, month, and day values. * A month
737
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
738
+ # with a zero month and a zero day. * A year and month, with a zero day (for
739
+ # example, a credit card expiration date). Related types: * google.type.
740
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
741
+ class Date
742
+ include Google::Apis::Core::Hashable
743
+
744
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
745
+ # specify a year by itself or a year and month where the day isn't significant.
746
+ # Corresponds to the JSON property `day`
747
+ # @return [Fixnum]
748
+ attr_accessor :day
749
+
750
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
751
+ # and day.
752
+ # Corresponds to the JSON property `month`
753
+ # @return [Fixnum]
754
+ attr_accessor :month
755
+
756
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
757
+ # year.
758
+ # Corresponds to the JSON property `year`
759
+ # @return [Fixnum]
760
+ attr_accessor :year
761
+
762
+ def initialize(**args)
763
+ update!(**args)
764
+ end
765
+
766
+ # Update properties of this object
767
+ def update!(**args)
768
+ @day = args[:day] if args.key?(:day)
769
+ @month = args[:month] if args.key?(:month)
770
+ @year = args[:year] if args.key?(:year)
771
+ end
772
+ end
773
+
774
+ # Deletion protection signal info for a database resource.
775
+ class DeletionProtectionInfo
776
+ include Google::Apis::Core::Hashable
777
+
778
+ # Is deletion protection enabled.
779
+ # Corresponds to the JSON property `deletionProtectionEnabled`
780
+ # @return [Boolean]
781
+ attr_accessor :deletion_protection_enabled
782
+ alias_method :deletion_protection_enabled?, :deletion_protection_enabled
783
+
784
+ # Sub resource details For Spanner/Bigtable instance certain data protection
785
+ # settings are at sub resource level like database/table. This message is used
786
+ # to capture such sub resource details.
787
+ # Corresponds to the JSON property `subResource`
788
+ # @return [Google::Apis::DatabasecenterV1beta::SubResource]
789
+ attr_accessor :sub_resource
790
+
791
+ def initialize(**args)
792
+ update!(**args)
793
+ end
794
+
795
+ # Update properties of this object
796
+ def update!(**args)
797
+ @deletion_protection_enabled = args[:deletion_protection_enabled] if args.key?(:deletion_protection_enabled)
798
+ @sub_resource = args[:sub_resource] if args.key?(:sub_resource)
799
+ end
800
+ end
801
+
802
+ # Captures the details of items that have increased or decreased in some bucket
803
+ # when compared to some point in history. It is currently used to capture the
804
+ # delta of resources that have been added or removed in the fleet as well as to
805
+ # capture the resources that have a change in Issue/Signal status.
806
+ class DeltaDetails
807
+ include Google::Apis::Core::Hashable
808
+
809
+ # Details of resources that have decreased.
810
+ # Corresponds to the JSON property `decreasedResources`
811
+ # @return [Array<Google::Apis::DatabasecenterV1beta::ResourceDetails>]
812
+ attr_accessor :decreased_resources
813
+
814
+ # Details of resources that have increased.
815
+ # Corresponds to the JSON property `increasedResources`
816
+ # @return [Array<Google::Apis::DatabasecenterV1beta::ResourceDetails>]
817
+ attr_accessor :increased_resources
818
+
819
+ def initialize(**args)
820
+ update!(**args)
821
+ end
822
+
823
+ # Update properties of this object
824
+ def update!(**args)
825
+ @decreased_resources = args[:decreased_resources] if args.key?(:decreased_resources)
826
+ @increased_resources = args[:increased_resources] if args.key?(:increased_resources)
827
+ end
828
+ end
829
+
830
+ # Dimension used to aggregate the fleet.
831
+ class Dimension
832
+ include Google::Apis::Core::Hashable
833
+
834
+ # Specifies where the resource is created. For Google Cloud resources, it is the
835
+ # full name of the project.
836
+ # Corresponds to the JSON property `container`
837
+ # @return [String]
838
+ attr_accessor :container
839
+
840
+ # The edition of the resource.
841
+ # Corresponds to the JSON property `edition`
842
+ # @return [String]
843
+ attr_accessor :edition
844
+
845
+ # Whether the resource has deny maintenance schedules.
846
+ # Corresponds to the JSON property `hasDenyMaintenanceSchedules`
847
+ # @return [Boolean]
848
+ attr_accessor :has_deny_maintenance_schedules
849
+ alias_method :has_deny_maintenance_schedules?, :has_deny_maintenance_schedules
850
+
851
+ # Whether the resource has a maintenance schedule.
852
+ # Corresponds to the JSON property `hasMaintenanceSchedule`
853
+ # @return [Boolean]
854
+ attr_accessor :has_maintenance_schedule
855
+ alias_method :has_maintenance_schedule?, :has_maintenance_schedule
856
+
857
+ # Label key of the resource.
858
+ # Corresponds to the JSON property `labelKey`
859
+ # @return [String]
860
+ attr_accessor :label_key
861
+
862
+ # Label source of the resource.
863
+ # Corresponds to the JSON property `labelSource`
864
+ # @return [String]
865
+ attr_accessor :label_source
866
+
867
+ # Label value of the resource.
868
+ # Corresponds to the JSON property `labelValue`
869
+ # @return [String]
870
+ attr_accessor :label_value
871
+
872
+ # The location of the resources. It supports returning only regional locations
873
+ # in Google Cloud.
874
+ # Corresponds to the JSON property `location`
875
+ # @return [String]
876
+ attr_accessor :location
877
+
878
+ # The management type of the resource.
879
+ # Corresponds to the JSON property `managementType`
880
+ # @return [String]
881
+ attr_accessor :management_type
882
+
883
+ # Engine refers to underlying database binary running in an instance.
884
+ # Corresponds to the JSON property `productEngine`
885
+ # @return [String]
886
+ attr_accessor :product_engine
887
+
888
+ # Type to identify a product
889
+ # Corresponds to the JSON property `productType`
890
+ # @return [String]
891
+ attr_accessor :product_type
892
+
893
+ # Version of the underlying database engine
894
+ # Corresponds to the JSON property `productVersion`
895
+ # @return [String]
896
+ attr_accessor :product_version
897
+
898
+ # The category of the resource.
899
+ # Corresponds to the JSON property `resourceCategory`
900
+ # @return [String]
901
+ attr_accessor :resource_category
902
+
903
+ # The type of resource defined according to the pattern: `Service Name`/`Type`.
904
+ # Ex: sqladmin.googleapis.com/Instance alloydb.googleapis.com/Cluster alloydb.
905
+ # googleapis.com/Instance spanner.googleapis.com/Instance
906
+ # Corresponds to the JSON property `resourceType`
907
+ # @return [String]
908
+ attr_accessor :resource_type
909
+
910
+ # Subtype of the resource specified at creation time.
911
+ # Corresponds to the JSON property `subResourceType`
912
+ # @return [String]
913
+ attr_accessor :sub_resource_type
914
+
915
+ # Tag inheritance value of the resource.
916
+ # Corresponds to the JSON property `tagInherited`
917
+ # @return [Boolean]
918
+ attr_accessor :tag_inherited
919
+ alias_method :tag_inherited?, :tag_inherited
920
+
921
+ # Tag key of the resource.
922
+ # Corresponds to the JSON property `tagKey`
923
+ # @return [String]
924
+ attr_accessor :tag_key
925
+
926
+ # Tag source of the resource.
927
+ # Corresponds to the JSON property `tagSource`
928
+ # @return [String]
929
+ attr_accessor :tag_source
930
+
931
+ # Tag value of the resource.
932
+ # Corresponds to the JSON property `tagValue`
933
+ # @return [String]
934
+ attr_accessor :tag_value
935
+
936
+ def initialize(**args)
937
+ update!(**args)
938
+ end
939
+
940
+ # Update properties of this object
941
+ def update!(**args)
942
+ @container = args[:container] if args.key?(:container)
943
+ @edition = args[:edition] if args.key?(:edition)
944
+ @has_deny_maintenance_schedules = args[:has_deny_maintenance_schedules] if args.key?(:has_deny_maintenance_schedules)
945
+ @has_maintenance_schedule = args[:has_maintenance_schedule] if args.key?(:has_maintenance_schedule)
946
+ @label_key = args[:label_key] if args.key?(:label_key)
947
+ @label_source = args[:label_source] if args.key?(:label_source)
948
+ @label_value = args[:label_value] if args.key?(:label_value)
949
+ @location = args[:location] if args.key?(:location)
950
+ @management_type = args[:management_type] if args.key?(:management_type)
951
+ @product_engine = args[:product_engine] if args.key?(:product_engine)
952
+ @product_type = args[:product_type] if args.key?(:product_type)
953
+ @product_version = args[:product_version] if args.key?(:product_version)
954
+ @resource_category = args[:resource_category] if args.key?(:resource_category)
955
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
956
+ @sub_resource_type = args[:sub_resource_type] if args.key?(:sub_resource_type)
957
+ @tag_inherited = args[:tag_inherited] if args.key?(:tag_inherited)
958
+ @tag_key = args[:tag_key] if args.key?(:tag_key)
959
+ @tag_source = args[:tag_source] if args.key?(:tag_source)
960
+ @tag_value = args[:tag_value] if args.key?(:tag_value)
961
+ end
962
+ end
963
+
964
+ # Metadata about inefficient query signal info for a database resource.
965
+ class InefficientQueryInfo
966
+ include Google::Apis::Core::Hashable
967
+
968
+ # Name of the database where index is required. For example, "db1", which is the
969
+ # name of the database present in the instance.
970
+ # Corresponds to the JSON property `database`
971
+ # @return [String]
972
+ attr_accessor :database
973
+
974
+ # Count of queries to be impacted if index is applied
975
+ # Corresponds to the JSON property `impactedQueriesCount`
976
+ # @return [Fixnum]
977
+ attr_accessor :impacted_queries_count
978
+
979
+ # SQL statement of the index. Based on the ddl type, this will be either CREATE
980
+ # INDEX or DROP INDEX.
981
+ # Corresponds to the JSON property `sqlIndexStatement`
982
+ # @return [String]
983
+ attr_accessor :sql_index_statement
984
+
985
+ # Cost of additional disk usage in bytes
986
+ # Corresponds to the JSON property `storageCostBytes`
987
+ # @return [Fixnum]
988
+ attr_accessor :storage_cost_bytes
989
+
990
+ # Name of the table where index is required
991
+ # Corresponds to the JSON property `table`
992
+ # @return [String]
993
+ attr_accessor :table
994
+
995
+ def initialize(**args)
996
+ update!(**args)
997
+ end
998
+
999
+ # Update properties of this object
1000
+ def update!(**args)
1001
+ @database = args[:database] if args.key?(:database)
1002
+ @impacted_queries_count = args[:impacted_queries_count] if args.key?(:impacted_queries_count)
1003
+ @sql_index_statement = args[:sql_index_statement] if args.key?(:sql_index_statement)
1004
+ @storage_cost_bytes = args[:storage_cost_bytes] if args.key?(:storage_cost_bytes)
1005
+ @table = args[:table] if args.key?(:table)
1006
+ end
1007
+ end
1008
+
1009
+ # Count of issues for a group of signals.
1010
+ class IssueCount
1011
+ include Google::Apis::Core::Hashable
1012
+
1013
+ # Title of a signal group corresponding to the request.
1014
+ # Corresponds to the JSON property `displayName`
1015
+ # @return [String]
1016
+ attr_accessor :display_name
1017
+
1018
+ # The count of the number of issues associated with those resources that are
1019
+ # explicitly filtered in by the filters present in the request. A signal is an
1020
+ # issue when its SignalStatus field is set to SIGNAL_STATUS_ISSUE.
1021
+ # Corresponds to the JSON property `issueCount`
1022
+ # @return [Fixnum]
1023
+ attr_accessor :issue_count
1024
+
1025
+ def initialize(**args)
1026
+ update!(**args)
1027
+ end
1028
+
1029
+ # Update properties of this object
1030
+ def update!(**args)
1031
+ @display_name = args[:display_name] if args.key?(:display_name)
1032
+ @issue_count = args[:issue_count] if args.key?(:issue_count)
1033
+ end
1034
+ end
1035
+
1036
+ # IssueGroupStats refers to stats for a particulare combination of relevant
1037
+ # health issues of database resources.
1038
+ class IssueGroupStats
1039
+ include Google::Apis::Core::Hashable
1040
+
1041
+ # Database resource level health card name. This will corresponds to one of the
1042
+ # requested input group names.
1043
+ # Corresponds to the JSON property `displayName`
1044
+ # @return [String]
1045
+ attr_accessor :display_name
1046
+
1047
+ # The number of resource groups from the total groups as defined above that are
1048
+ # healthy with respect to all of the specified issues.
1049
+ # Corresponds to the JSON property `healthyResourceGroupsCount`
1050
+ # @return [Fixnum]
1051
+ attr_accessor :healthy_resource_groups_count
1052
+
1053
+ # The number of resources from the total defined above in field
1054
+ # total_resources_count that are healthy with respect to all of the specified
1055
+ # issues.
1056
+ # Corresponds to the JSON property `healthyResourcesCount`
1057
+ # @return [Fixnum]
1058
+ attr_accessor :healthy_resources_count
1059
+
1060
+ # List of issues stats containing count of resources having particular issue
1061
+ # category.
1062
+ # Corresponds to the JSON property `issueStats`
1063
+ # @return [Array<Google::Apis::DatabasecenterV1beta::IssueStats>]
1064
+ attr_accessor :issue_stats
1065
+
1066
+ # Total count of the groups of resources returned by the filter that also have
1067
+ # one or more resources for which any of the specified issues are applicable.
1068
+ # Corresponds to the JSON property `resourceGroupsCount`
1069
+ # @return [Fixnum]
1070
+ attr_accessor :resource_groups_count
1071
+
1072
+ # Total count of resources returned by the filter for which any of the specified
1073
+ # issues are applicable.
1074
+ # Corresponds to the JSON property `resourcesCount`
1075
+ # @return [Fixnum]
1076
+ attr_accessor :resources_count
1077
+
1078
+ def initialize(**args)
1079
+ update!(**args)
1080
+ end
1081
+
1082
+ # Update properties of this object
1083
+ def update!(**args)
1084
+ @display_name = args[:display_name] if args.key?(:display_name)
1085
+ @healthy_resource_groups_count = args[:healthy_resource_groups_count] if args.key?(:healthy_resource_groups_count)
1086
+ @healthy_resources_count = args[:healthy_resources_count] if args.key?(:healthy_resources_count)
1087
+ @issue_stats = args[:issue_stats] if args.key?(:issue_stats)
1088
+ @resource_groups_count = args[:resource_groups_count] if args.key?(:resource_groups_count)
1089
+ @resources_count = args[:resources_count] if args.key?(:resources_count)
1090
+ end
1091
+ end
1092
+
1093
+ # IssueStats holds stats for a particular signal category.
1094
+ class IssueStats
1095
+ include Google::Apis::Core::Hashable
1096
+
1097
+ # Captures the details of items that have increased or decreased in some bucket
1098
+ # when compared to some point in history. It is currently used to capture the
1099
+ # delta of resources that have been added or removed in the fleet as well as to
1100
+ # capture the resources that have a change in Issue/Signal status.
1101
+ # Corresponds to the JSON property `deltaDetails`
1102
+ # @return [Google::Apis::DatabasecenterV1beta::DeltaDetails]
1103
+ attr_accessor :delta_details
1104
+
1105
+ # Severity of the issue.
1106
+ # Corresponds to the JSON property `issueSeverity`
1107
+ # @return [String]
1108
+ attr_accessor :issue_severity
1109
+
1110
+ # Number of resources having issues of a given type.
1111
+ # Corresponds to the JSON property `resourceCount`
1112
+ # @return [Fixnum]
1113
+ attr_accessor :resource_count
1114
+
1115
+ # Type of signal which is an issue.
1116
+ # Corresponds to the JSON property `signalType`
1117
+ # @return [String]
1118
+ attr_accessor :signal_type
1119
+
1120
+ def initialize(**args)
1121
+ update!(**args)
1122
+ end
1123
+
1124
+ # Update properties of this object
1125
+ def update!(**args)
1126
+ @delta_details = args[:delta_details] if args.key?(:delta_details)
1127
+ @issue_severity = args[:issue_severity] if args.key?(:issue_severity)
1128
+ @resource_count = args[:resource_count] if args.key?(:resource_count)
1129
+ @signal_type = args[:signal_type] if args.key?(:signal_type)
1130
+ end
1131
+ end
1132
+
1133
+ # Label is a key value pair applied to a resource.
1134
+ class Label
1135
+ include Google::Apis::Core::Hashable
1136
+
1137
+ # The key part of the label.
1138
+ # Corresponds to the JSON property `key`
1139
+ # @return [String]
1140
+ attr_accessor :key
1141
+
1142
+ # The source of the Label. Source is empty if the label is directly attached to
1143
+ # the resource and not inherited.
1144
+ # Corresponds to the JSON property `source`
1145
+ # @return [String]
1146
+ attr_accessor :source
1147
+
1148
+ # The value part of the label.
1149
+ # Corresponds to the JSON property `value`
1150
+ # @return [String]
1151
+ attr_accessor :value
1152
+
1153
+ def initialize(**args)
1154
+ update!(**args)
1155
+ end
1156
+
1157
+ # Update properties of this object
1158
+ def update!(**args)
1159
+ @key = args[:key] if args.key?(:key)
1160
+ @source = args[:source] if args.key?(:source)
1161
+ @value = args[:value] if args.key?(:value)
1162
+ end
1163
+ end
1164
+
1165
+ # lineage information of the affiliated resources This captures source, target
1166
+ # and process which created the lineage.
1167
+ class Lineage
1168
+ include Google::Apis::Core::Hashable
1169
+
1170
+ # Optional. FQN of process which created the lineage i.e. dataplex, datastream
1171
+ # etc.
1172
+ # Corresponds to the JSON property `processFqn`
1173
+ # @return [String]
1174
+ attr_accessor :process_fqn
1175
+
1176
+ # Optional. Type of process which created the lineage.
1177
+ # Corresponds to the JSON property `processType`
1178
+ # @return [String]
1179
+ attr_accessor :process_type
1180
+
1181
+ # Optional. FQN of source table / column
1182
+ # Corresponds to the JSON property `sourceFqn`
1183
+ # @return [String]
1184
+ attr_accessor :source_fqn
1185
+
1186
+ # Optional. FQN of target table / column
1187
+ # Corresponds to the JSON property `targetFqn`
1188
+ # @return [String]
1189
+ attr_accessor :target_fqn
1190
+
1191
+ def initialize(**args)
1192
+ update!(**args)
1193
+ end
1194
+
1195
+ # Update properties of this object
1196
+ def update!(**args)
1197
+ @process_fqn = args[:process_fqn] if args.key?(:process_fqn)
1198
+ @process_type = args[:process_type] if args.key?(:process_type)
1199
+ @source_fqn = args[:source_fqn] if args.key?(:source_fqn)
1200
+ @target_fqn = args[:target_fqn] if args.key?(:target_fqn)
1201
+ end
1202
+ end
1203
+
1204
+ # MachineConfig describes the configuration of a machine specific to a Database
1205
+ # Resource.
1206
+ class MachineConfig
1207
+ include Google::Apis::Core::Hashable
1208
+
1209
+ # Optional. Baseline slots for BigQuery Reservations. Baseline slots are in
1210
+ # increments of 50.
1211
+ # Corresponds to the JSON property `baselineSlotCount`
1212
+ # @return [Fixnum]
1213
+ attr_accessor :baseline_slot_count
1214
+
1215
+ # Optional. Max slots for BigQuery Reservations. Max slots are in increments of
1216
+ # 50.
1217
+ # Corresponds to the JSON property `maxReservationSlotCount`
1218
+ # @return [Fixnum]
1219
+ attr_accessor :max_reservation_slot_count
1220
+
1221
+ # Memory size in bytes.
1222
+ # Corresponds to the JSON property `memorySizeBytes`
1223
+ # @return [Fixnum]
1224
+ attr_accessor :memory_size_bytes
1225
+
1226
+ # Optional. The number of Shards (if applicable).
1227
+ # Corresponds to the JSON property `shardCount`
1228
+ # @return [Fixnum]
1229
+ attr_accessor :shard_count
1230
+
1231
+ # Optional. The number of vCPUs (if applicable).
1232
+ # Corresponds to the JSON property `vcpuCount`
1233
+ # @return [Float]
1234
+ attr_accessor :vcpu_count
1235
+
1236
+ def initialize(**args)
1237
+ update!(**args)
1238
+ end
1239
+
1240
+ # Update properties of this object
1241
+ def update!(**args)
1242
+ @baseline_slot_count = args[:baseline_slot_count] if args.key?(:baseline_slot_count)
1243
+ @max_reservation_slot_count = args[:max_reservation_slot_count] if args.key?(:max_reservation_slot_count)
1244
+ @memory_size_bytes = args[:memory_size_bytes] if args.key?(:memory_size_bytes)
1245
+ @shard_count = args[:shard_count] if args.key?(:shard_count)
1246
+ @vcpu_count = args[:vcpu_count] if args.key?(:vcpu_count)
1247
+ end
1248
+ end
1249
+
1250
+ # MaintenanceInfo to capture the maintenance details of database resource.
1251
+ class MaintenanceInfo
1252
+ include Google::Apis::Core::Hashable
1253
+
1254
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1255
+ # day and time zone are either specified elsewhere or are insignificant. The
1256
+ # date is relative to the Gregorian Calendar. This can represent one of the
1257
+ # following: * A full date, with non-zero year, month, and day values. * A month
1258
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
1259
+ # with a zero month and a zero day. * A year and month, with a zero day (for
1260
+ # example, a credit card expiration date). Related types: * google.type.
1261
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
1262
+ # Corresponds to the JSON property `currentVersionReleaseDate`
1263
+ # @return [Google::Apis::DatabasecenterV1beta::Date]
1264
+ attr_accessor :current_version_release_date
1265
+
1266
+ # Optional. List of Deny maintenance period for the database resource.
1267
+ # Corresponds to the JSON property `denyMaintenanceSchedules`
1268
+ # @return [Array<Google::Apis::DatabasecenterV1beta::ResourceMaintenanceDenySchedule>]
1269
+ attr_accessor :deny_maintenance_schedules
1270
+
1271
+ # Maintenance window for the database resource. It specifies preferred time and
1272
+ # day of the week and phase in some cases, when the maintenance can start.
1273
+ # Corresponds to the JSON property `maintenanceSchedule`
1274
+ # @return [Google::Apis::DatabasecenterV1beta::ResourceMaintenanceSchedule]
1275
+ attr_accessor :maintenance_schedule
1276
+
1277
+ # Output only. Current Maintenance version of the database resource. Example: "
1278
+ # MYSQL_8_0_41.R20250531.01_15"
1279
+ # Corresponds to the JSON property `maintenanceVersion`
1280
+ # @return [String]
1281
+ attr_accessor :maintenance_version
1282
+
1283
+ # Output only. List of possible reasons why the maintenance is not completed.
1284
+ # This is an optional field and is only populated if there are any reasons for
1285
+ # failures recorded for the maintenance by DB Center. FAILURE maintenance status
1286
+ # may not always have a failure reason.
1287
+ # Corresponds to the JSON property `possibleFailureReasons`
1288
+ # @return [Array<String>]
1289
+ attr_accessor :possible_failure_reasons
1290
+
1291
+ # Output only. Previous maintenance version of the database resource. Example: "
1292
+ # MYSQL_8_0_41.R20250531.01_15". This is available once a minor version
1293
+ # maintenance is complete on a database resource.
1294
+ # Corresponds to the JSON property `previousMaintenanceVersion`
1295
+ # @return [String]
1296
+ attr_accessor :previous_maintenance_version
1297
+
1298
+ # Output only. Resource maintenance state. This is to capture the current state
1299
+ # of the maintenance.
1300
+ # Corresponds to the JSON property `state`
1301
+ # @return [String]
1302
+ attr_accessor :state
1303
+
1304
+ # Upcoming maintenance window for the database resource.
1305
+ # Corresponds to the JSON property `upcomingMaintenance`
1306
+ # @return [Google::Apis::DatabasecenterV1beta::UpcomingMaintenance]
1307
+ attr_accessor :upcoming_maintenance
1308
+
1309
+ def initialize(**args)
1310
+ update!(**args)
1311
+ end
1312
+
1313
+ # Update properties of this object
1314
+ def update!(**args)
1315
+ @current_version_release_date = args[:current_version_release_date] if args.key?(:current_version_release_date)
1316
+ @deny_maintenance_schedules = args[:deny_maintenance_schedules] if args.key?(:deny_maintenance_schedules)
1317
+ @maintenance_schedule = args[:maintenance_schedule] if args.key?(:maintenance_schedule)
1318
+ @maintenance_version = args[:maintenance_version] if args.key?(:maintenance_version)
1319
+ @possible_failure_reasons = args[:possible_failure_reasons] if args.key?(:possible_failure_reasons)
1320
+ @previous_maintenance_version = args[:previous_maintenance_version] if args.key?(:previous_maintenance_version)
1321
+ @state = args[:state] if args.key?(:state)
1322
+ @upcoming_maintenance = args[:upcoming_maintenance] if args.key?(:upcoming_maintenance)
1323
+ end
1324
+ end
1325
+
1326
+ # Info associated with maintenance recommendation.
1327
+ class MaintenanceRecommendationInfo
1328
+ include Google::Apis::Core::Hashable
1329
+
1330
+ # Optional. List of recommended maintenance schedules for the database resource.
1331
+ # Corresponds to the JSON property `resourceMaintenanceSchedules`
1332
+ # @return [Array<Google::Apis::DatabasecenterV1beta::ResourceMaintenanceSchedule>]
1333
+ attr_accessor :resource_maintenance_schedules
1334
+
1335
+ def initialize(**args)
1336
+ update!(**args)
1337
+ end
1338
+
1339
+ # Update properties of this object
1340
+ def update!(**args)
1341
+ @resource_maintenance_schedules = args[:resource_maintenance_schedules] if args.key?(:resource_maintenance_schedules)
1342
+ end
1343
+ end
1344
+
1345
+ # MetricData represents the metric data for a database resource.
1346
+ class MetricData
1347
+ include Google::Apis::Core::Hashable
1348
+
1349
+ # The time the metric was observed in the metric source service.
1350
+ # Corresponds to the JSON property `observationTime`
1351
+ # @return [String]
1352
+ attr_accessor :observation_time
1353
+
1354
+ # TypedValue represents the value of the metric based on data type.
1355
+ # Corresponds to the JSON property `value`
1356
+ # @return [Google::Apis::DatabasecenterV1beta::TypedValue]
1357
+ attr_accessor :value
1358
+
1359
+ def initialize(**args)
1360
+ update!(**args)
1361
+ end
1362
+
1363
+ # Update properties of this object
1364
+ def update!(**args)
1365
+ @observation_time = args[:observation_time] if args.key?(:observation_time)
1366
+ @value = args[:value] if args.key?(:value)
1367
+ end
1368
+ end
1369
+
1370
+ # Metrics represents the metrics for a database resource.
1371
+ class Metrics
1372
+ include Google::Apis::Core::Hashable
1373
+
1374
+ # MetricData represents the metric data for a database resource.
1375
+ # Corresponds to the JSON property `currentMemoryUsedBytes`
1376
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1377
+ attr_accessor :current_memory_used_bytes
1378
+
1379
+ # MetricData represents the metric data for a database resource.
1380
+ # Corresponds to the JSON property `currentStorageUsedBytes`
1381
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1382
+ attr_accessor :current_storage_used_bytes
1383
+
1384
+ # MetricData represents the metric data for a database resource.
1385
+ # Corresponds to the JSON property `nodeCount`
1386
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1387
+ attr_accessor :node_count
1388
+
1389
+ # MetricData represents the metric data for a database resource.
1390
+ # Corresponds to the JSON property `p95CpuUtilization`
1391
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1392
+ attr_accessor :p95_cpu_utilization
1393
+
1394
+ # MetricData represents the metric data for a database resource.
1395
+ # Corresponds to the JSON property `p99CpuUtilization`
1396
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1397
+ attr_accessor :p99_cpu_utilization
1398
+
1399
+ # MetricData represents the metric data for a database resource.
1400
+ # Corresponds to the JSON property `peakMemoryUtilization`
1401
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1402
+ attr_accessor :peak_memory_utilization
1403
+
1404
+ # MetricData represents the metric data for a database resource.
1405
+ # Corresponds to the JSON property `peakNumberConnections`
1406
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1407
+ attr_accessor :peak_number_connections
1408
+
1409
+ # MetricData represents the metric data for a database resource.
1410
+ # Corresponds to the JSON property `peakStorageUtilization`
1411
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1412
+ attr_accessor :peak_storage_utilization
1413
+
1414
+ # MetricData represents the metric data for a database resource.
1415
+ # Corresponds to the JSON property `processingUnitCount`
1416
+ # @return [Google::Apis::DatabasecenterV1beta::MetricData]
1417
+ attr_accessor :processing_unit_count
1418
+
1419
+ def initialize(**args)
1420
+ update!(**args)
1421
+ end
1422
+
1423
+ # Update properties of this object
1424
+ def update!(**args)
1425
+ @current_memory_used_bytes = args[:current_memory_used_bytes] if args.key?(:current_memory_used_bytes)
1426
+ @current_storage_used_bytes = args[:current_storage_used_bytes] if args.key?(:current_storage_used_bytes)
1427
+ @node_count = args[:node_count] if args.key?(:node_count)
1428
+ @p95_cpu_utilization = args[:p95_cpu_utilization] if args.key?(:p95_cpu_utilization)
1429
+ @p99_cpu_utilization = args[:p99_cpu_utilization] if args.key?(:p99_cpu_utilization)
1430
+ @peak_memory_utilization = args[:peak_memory_utilization] if args.key?(:peak_memory_utilization)
1431
+ @peak_number_connections = args[:peak_number_connections] if args.key?(:peak_number_connections)
1432
+ @peak_storage_utilization = args[:peak_storage_utilization] if args.key?(:peak_storage_utilization)
1433
+ @processing_unit_count = args[:processing_unit_count] if args.key?(:processing_unit_count)
1434
+ end
1435
+ end
1436
+
1437
+ # Info associated with outdated minor version.
1438
+ class OutdatedMinorVersionInfo
1439
+ include Google::Apis::Core::Hashable
1440
+
1441
+ # Recommended minor version of the underlying database engine. Example values:
1442
+ # For MySQL, it could be "8.0.35", "5.7.25" etc. For PostgreSQL, it could be "14.
1443
+ # 4", "15.5" etc.
1444
+ # Corresponds to the JSON property `recommendedMinorVersion`
1445
+ # @return [String]
1446
+ attr_accessor :recommended_minor_version
1447
+
1448
+ def initialize(**args)
1449
+ update!(**args)
1450
+ end
1451
+
1452
+ # Update properties of this object
1453
+ def update!(**args)
1454
+ @recommended_minor_version = args[:recommended_minor_version] if args.key?(:recommended_minor_version)
1455
+ end
1456
+ end
1457
+
1458
+ # Product specification for databasecenter resources.
1459
+ class Product
1460
+ include Google::Apis::Core::Hashable
1461
+
1462
+ # Optional. The specific engine that the underlying database is running.
1463
+ # Corresponds to the JSON property `engine`
1464
+ # @return [String]
1465
+ attr_accessor :engine
1466
+
1467
+ # Optional. Minor version of the underlying database engine. Example values: For
1468
+ # MySQL, it could be "8.0.35", "5.7.25" etc. For PostgreSQL, it could be "14.4",
1469
+ # "15.5" etc.
1470
+ # Corresponds to the JSON property `minorVersion`
1471
+ # @return [String]
1472
+ attr_accessor :minor_version
1473
+
1474
+ # Optional. Type of specific database product. It could be CloudSQL, AlloyDB etc.
1475
+ # .
1476
+ # Corresponds to the JSON property `type`
1477
+ # @return [String]
1478
+ attr_accessor :type
1479
+
1480
+ # Optional. Version of the underlying database engine. Example values: For MySQL,
1481
+ # it could be "8.0", "5.7" etc. For Postgres, it could be "14", "15" etc.
1482
+ # Corresponds to the JSON property `version`
1483
+ # @return [String]
1484
+ attr_accessor :version
1485
+
1486
+ def initialize(**args)
1487
+ update!(**args)
1488
+ end
1489
+
1490
+ # Update properties of this object
1491
+ def update!(**args)
1492
+ @engine = args[:engine] if args.key?(:engine)
1493
+ @minor_version = args[:minor_version] if args.key?(:minor_version)
1494
+ @type = args[:type] if args.key?(:type)
1495
+ @version = args[:version] if args.key?(:version)
1496
+ end
1497
+ end
1498
+
1499
+ # QueryDatabaseResourceGroupsRequest is the request to get a list of database
1500
+ # groups.
1501
+ class QueryDatabaseResourceGroupsRequest
1502
+ include Google::Apis::Core::Hashable
1503
+
1504
+ # Optional. The expression to filter resources. The following fields are
1505
+ # filterable: * full_resource_name * resource_type * container * product.type *
1506
+ # product.engine * product.version * location * labels * resource_category *
1507
+ # machine_config.cpu_count * machine_config.memory_size_bytes * machine_config.
1508
+ # shard_count * resource_name * tags * backupdr_config.backupdr_managed *
1509
+ # edition The expression is a list of zero or more restrictions combined via
1510
+ # logical operators `AND` and `OR`. When `AND` and `OR` are both used in the
1511
+ # expression, parentheses must be appropriately used to group the combinations.
1512
+ # Example: `location="us-east1"` Example: `container="projects/123" OR container=
1513
+ # "projects/456"` Example: `(container="projects/123" OR container="projects/456"
1514
+ # ) AND location="us-east1"` Example: `full_resource_name=~"test"` Example: `
1515
+ # full_resource_name=~"test.*master"`
1516
+ # Corresponds to the JSON property `filter`
1517
+ # @return [String]
1518
+ attr_accessor :filter
1519
+
1520
+ # Optional. A field that specifies the sort order of the results. The following
1521
+ # fields are sortable: * full_resource_name * product.type * product.engine *
1522
+ # product.version * container * issue_count * machine_config.vcpu_count *
1523
+ # machine_config.memory_size_bytes * machine_config.shard_count * resource_name *
1524
+ # issue_severity * signal_type * location * resource_type * instance_type *
1525
+ # edition * metrics.p99_cpu_utilization * metrics.p95_cpu_utilization * metrics.
1526
+ # current_storage_used_bytes * metrics.node_count * metrics.
1527
+ # processing_unit_count * metrics.current_memory_used_bytes * metrics.
1528
+ # peak_storage_utilization * metrics.peak_number_connections * metrics.
1529
+ # peak_memory_utilization The default order is ascending. Add "DESC" after the
1530
+ # field name to indicate descending order. Add "ASC" after the field name to
1531
+ # indicate ascending order. It only supports a single field at a time. For
1532
+ # example: `order_by = "full_resource_name"` sorts response in ascending order `
1533
+ # order_by = "full_resource_name DESC"` sorts response in descending order `
1534
+ # order_by = "issue_count DESC"` sorts response in descending order of count of
1535
+ # all issues associated with a resource. More explicitly, `order_by = "
1536
+ # full_resource_name, product"` is not supported.
1537
+ # Corresponds to the JSON property `orderBy`
1538
+ # @return [String]
1539
+ attr_accessor :order_by
1540
+
1541
+ # Optional. If unspecified, at most 50 resource groups will be returned. The
1542
+ # maximum value is 1000; values above 1000 will be coerced to 1000.
1543
+ # Corresponds to the JSON property `pageSize`
1544
+ # @return [Fixnum]
1545
+ attr_accessor :page_size
1546
+
1547
+ # Optional. A page token, received from a previous `
1548
+ # QueryDatabaseResourceGroupsRequest` call. Provide this to retrieve the
1549
+ # subsequent page. All parameters except page_token should match the parameters
1550
+ # in the call that provided the page page token.
1551
+ # Corresponds to the JSON property `pageToken`
1552
+ # @return [String]
1553
+ attr_accessor :page_token
1554
+
1555
+ # Required. Parent can be a project, a folder, or an organization. The search is
1556
+ # limited to the resources within the `scope`. The allowed values are: *
1557
+ # projects/`PROJECT_ID` (e.g., "projects/foo-bar") * projects/`PROJECT_NUMBER` (
1558
+ # e.g., "projects/12345678") * folders/`FOLDER_NUMBER` (e.g., "folders/1234567")
1559
+ # * organizations/`ORGANIZATION_NUMBER` (e.g., "organizations/123456")
1560
+ # Corresponds to the JSON property `parent`
1561
+ # @return [String]
1562
+ attr_accessor :parent
1563
+
1564
+ # Optional. Filters based on signals. The list will be ORed together and then
1565
+ # ANDed with the `filters` field above.
1566
+ # Corresponds to the JSON property `signalFilters`
1567
+ # @return [Array<Google::Apis::DatabasecenterV1beta::SignalFilter>]
1568
+ attr_accessor :signal_filters
1569
+
1570
+ # Optional. Groups of signal types that are requested.
1571
+ # Corresponds to the JSON property `signalTypeGroups`
1572
+ # @return [Array<Google::Apis::DatabasecenterV1beta::SignalTypeGroup>]
1573
+ attr_accessor :signal_type_groups
1574
+
1575
+ def initialize(**args)
1576
+ update!(**args)
1577
+ end
1578
+
1579
+ # Update properties of this object
1580
+ def update!(**args)
1581
+ @filter = args[:filter] if args.key?(:filter)
1582
+ @order_by = args[:order_by] if args.key?(:order_by)
1583
+ @page_size = args[:page_size] if args.key?(:page_size)
1584
+ @page_token = args[:page_token] if args.key?(:page_token)
1585
+ @parent = args[:parent] if args.key?(:parent)
1586
+ @signal_filters = args[:signal_filters] if args.key?(:signal_filters)
1587
+ @signal_type_groups = args[:signal_type_groups] if args.key?(:signal_type_groups)
1588
+ end
1589
+ end
1590
+
1591
+ # QueryDatabaseResourceGroupsResponse represents the response message containing
1592
+ # a list of resource groups.
1593
+ class QueryDatabaseResourceGroupsResponse
1594
+ include Google::Apis::Core::Hashable
1595
+
1596
+ # A token that can be sent as `page_token` to retrieve the next page. If this
1597
+ # field is omitted, there are no subsequent pages.
1598
+ # Corresponds to the JSON property `nextPageToken`
1599
+ # @return [String]
1600
+ attr_accessor :next_page_token
1601
+
1602
+ # List of database resource groups that pass the filter.
1603
+ # Corresponds to the JSON property `resourceGroups`
1604
+ # @return [Array<Google::Apis::DatabasecenterV1beta::DatabaseResourceGroup>]
1605
+ attr_accessor :resource_groups
1606
+
1607
+ # Output only. The total number of resource groups in the entire list.
1608
+ # Corresponds to the JSON property `totalSize`
1609
+ # @return [Fixnum]
1610
+ attr_accessor :total_size
1611
+
1612
+ # Unordered list. List of unreachable regions from where data could not be
1613
+ # retrieved.
1614
+ # Corresponds to the JSON property `unreachable`
1615
+ # @return [Array<String>]
1616
+ attr_accessor :unreachable
1617
+
1618
+ def initialize(**args)
1619
+ update!(**args)
1620
+ end
1621
+
1622
+ # Update properties of this object
1623
+ def update!(**args)
1624
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1625
+ @resource_groups = args[:resource_groups] if args.key?(:resource_groups)
1626
+ @total_size = args[:total_size] if args.key?(:total_size)
1627
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1628
+ end
1629
+ end
1630
+
1631
+ # QueryIssuesRequest is the request to get a list of issues.
1632
+ class QueryIssuesRequest
1633
+ include Google::Apis::Core::Hashable
1634
+
1635
+ # Optional. Supported fields are: 'product', `location`, `issue_severity`, 'tags'
1636
+ # , 'labels',
1637
+ # Corresponds to the JSON property `filter`
1638
+ # @return [String]
1639
+ attr_accessor :filter
1640
+
1641
+ # Optional. Following fields are sortable: SignalType Product Location
1642
+ # IssueSeverity The default order is ascending. Add "DESC" after the field name
1643
+ # to indicate descending order. Add "ASC" after the field name to indicate
1644
+ # ascending order. It only supports a single field at a time.
1645
+ # Corresponds to the JSON property `orderBy`
1646
+ # @return [String]
1647
+ attr_accessor :order_by
1648
+
1649
+ # Optional. If unspecified, at most 50 issues will be returned. The maximum
1650
+ # value is 1000; values above 1000 will be coerced to 1000.
1651
+ # Corresponds to the JSON property `pageSize`
1652
+ # @return [Fixnum]
1653
+ attr_accessor :page_size
1654
+
1655
+ # Optional. A page token, received from a previous `QueryIssues` call. Provide
1656
+ # this to retrieve the subsequent page. All parameters except page size should
1657
+ # match the parameters used in the call that provided the page token.
1658
+ # Corresponds to the JSON property `pageToken`
1659
+ # @return [String]
1660
+ attr_accessor :page_token
1661
+
1662
+ # Required. Parent can be a project, a folder, or an organization. The list is
1663
+ # limited to the one attached to resources within the `scope` that a user has
1664
+ # access to. The allowed values are: * projects/`PROJECT_ID` (e.g., "projects/
1665
+ # foo-bar") * projects/`PROJECT_NUMBER` (e.g., "projects/12345678") * folders/`
1666
+ # FOLDER_NUMBER` (e.g., "folders/1234567") * organizations/`ORGANIZATION_NUMBER`
1667
+ # (e.g., "organizations/123456")
1668
+ # Corresponds to the JSON property `parent`
1669
+ # @return [String]
1670
+ attr_accessor :parent
1671
+
1672
+ # Optional. Filters based on signal and product. The filter list will be ORed
1673
+ # across pairs and ANDed within a signal and products pair.
1674
+ # Corresponds to the JSON property `signalProductsFilters`
1675
+ # @return [Array<Google::Apis::DatabasecenterV1beta::SignalProductsFilters>]
1676
+ attr_accessor :signal_products_filters
1677
+
1678
+ def initialize(**args)
1679
+ update!(**args)
1680
+ end
1681
+
1682
+ # Update properties of this object
1683
+ def update!(**args)
1684
+ @filter = args[:filter] if args.key?(:filter)
1685
+ @order_by = args[:order_by] if args.key?(:order_by)
1686
+ @page_size = args[:page_size] if args.key?(:page_size)
1687
+ @page_token = args[:page_token] if args.key?(:page_token)
1688
+ @parent = args[:parent] if args.key?(:parent)
1689
+ @signal_products_filters = args[:signal_products_filters] if args.key?(:signal_products_filters)
1690
+ end
1691
+ end
1692
+
1693
+ # QueryIssuesResponse is the response containing a list of issues.
1694
+ class QueryIssuesResponse
1695
+ include Google::Apis::Core::Hashable
1696
+
1697
+ # A token that can be sent as `page_token` to retrieve the next page. If this
1698
+ # field is omitted, there are no subsequent pages.
1699
+ # Corresponds to the JSON property `nextPageToken`
1700
+ # @return [String]
1701
+ attr_accessor :next_page_token
1702
+
1703
+ # List of issues and resource details.
1704
+ # Corresponds to the JSON property `resourceIssues`
1705
+ # @return [Array<Google::Apis::DatabasecenterV1beta::DatabaseResourceIssue>]
1706
+ attr_accessor :resource_issues
1707
+
1708
+ # Unordered list. List of unreachable regions from where data could not be
1709
+ # retrieved.
1710
+ # Corresponds to the JSON property `unreachable`
1711
+ # @return [Array<String>]
1712
+ attr_accessor :unreachable
1713
+
1714
+ def initialize(**args)
1715
+ update!(**args)
1716
+ end
1717
+
1718
+ # Update properties of this object
1719
+ def update!(**args)
1720
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1721
+ @resource_issues = args[:resource_issues] if args.key?(:resource_issues)
1722
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1723
+ end
1724
+ end
1725
+
1726
+ # QueryMetrics contains the metrics related to the query execution.
1727
+ class QueryMetrics
1728
+ include Google::Apis::Core::Hashable
1729
+
1730
+ # The average execution period of the query across all runs.
1731
+ # Corresponds to the JSON property `avgCpuTime`
1732
+ # @return [String]
1733
+ attr_accessor :avg_cpu_time
1734
+
1735
+ # The number of times the query was executed.
1736
+ # Corresponds to the JSON property `executionCount`
1737
+ # @return [Fixnum]
1738
+ attr_accessor :execution_count
1739
+
1740
+ # The window over which the metrics are aggregated.
1741
+ # Corresponds to the JSON property `metricsWindow`
1742
+ # @return [String]
1743
+ attr_accessor :metrics_window
1744
+
1745
+ # The average number of rows processed by the query across all runs.
1746
+ # Corresponds to the JSON property `rowsProcessed`
1747
+ # @return [Fixnum]
1748
+ attr_accessor :rows_processed
1749
+
1750
+ # The total CPU time consumed by the query across all runs.
1751
+ # Corresponds to the JSON property `totalCpuTime`
1752
+ # @return [String]
1753
+ attr_accessor :total_cpu_time
1754
+
1755
+ def initialize(**args)
1756
+ update!(**args)
1757
+ end
1758
+
1759
+ # Update properties of this object
1760
+ def update!(**args)
1761
+ @avg_cpu_time = args[:avg_cpu_time] if args.key?(:avg_cpu_time)
1762
+ @execution_count = args[:execution_count] if args.key?(:execution_count)
1763
+ @metrics_window = args[:metrics_window] if args.key?(:metrics_window)
1764
+ @rows_processed = args[:rows_processed] if args.key?(:rows_processed)
1765
+ @total_cpu_time = args[:total_cpu_time] if args.key?(:total_cpu_time)
1766
+ end
1767
+ end
1768
+
1769
+ # QueryProductsResponse represents the response containing a list of products.
1770
+ class QueryProductsResponse
1771
+ include Google::Apis::Core::Hashable
1772
+
1773
+ # A token that can be sent as `page_token` to retrieve the next page. If this
1774
+ # field is omitted, there are no subsequent pages
1775
+ # Corresponds to the JSON property `nextPageToken`
1776
+ # @return [String]
1777
+ attr_accessor :next_page_token
1778
+
1779
+ # List of database products returned.
1780
+ # Corresponds to the JSON property `products`
1781
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Product>]
1782
+ attr_accessor :products
1783
+
1784
+ # Unordered list. List of unreachable regions from where data could not be
1785
+ # retrieved.
1786
+ # Corresponds to the JSON property `unreachable`
1787
+ # @return [Array<String>]
1788
+ attr_accessor :unreachable
1789
+
1790
+ def initialize(**args)
1791
+ update!(**args)
1792
+ end
1793
+
1794
+ # Update properties of this object
1795
+ def update!(**args)
1796
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1797
+ @products = args[:products] if args.key?(:products)
1798
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1799
+ end
1800
+ end
1801
+
1802
+ # QueryStats contains the stats for a particular combination of query_hash,
1803
+ # query_string and resource_type.
1804
+ class QueryStats
1805
+ include Google::Apis::Core::Hashable
1806
+
1807
+ # Metadata about inefficient query signal info for a database resource.
1808
+ # Corresponds to the JSON property `inefficientQueryInfo`
1809
+ # @return [Google::Apis::DatabasecenterV1beta::InefficientQueryInfo]
1810
+ attr_accessor :inefficient_query_info
1811
+
1812
+ # The query string is normalized query without any PII data.
1813
+ # Corresponds to the JSON property `normalizedQuery`
1814
+ # @return [String]
1815
+ attr_accessor :normalized_query
1816
+
1817
+ # The query hash of the query.
1818
+ # Corresponds to the JSON property `queryHash`
1819
+ # @return [String]
1820
+ attr_accessor :query_hash
1821
+
1822
+ # QueryMetrics contains the metrics related to the query execution.
1823
+ # Corresponds to the JSON property `queryMetrics`
1824
+ # @return [Google::Apis::DatabasecenterV1beta::QueryMetrics]
1825
+ attr_accessor :query_metrics
1826
+
1827
+ # The resource ids for which the query stats are collected.
1828
+ # Corresponds to the JSON property `resourceIds`
1829
+ # @return [Array<Google::Apis::DatabasecenterV1beta::ResourceId>]
1830
+ attr_accessor :resource_ids
1831
+
1832
+ # The type of the resource. sqladmin.googleapis.com/Instance alloydb.googleapis.
1833
+ # com/Cluster alloydb.googleapis.com/Instance
1834
+ # Corresponds to the JSON property `resourceType`
1835
+ # @return [String]
1836
+ attr_accessor :resource_type
1837
+
1838
+ def initialize(**args)
1839
+ update!(**args)
1840
+ end
1841
+
1842
+ # Update properties of this object
1843
+ def update!(**args)
1844
+ @inefficient_query_info = args[:inefficient_query_info] if args.key?(:inefficient_query_info)
1845
+ @normalized_query = args[:normalized_query] if args.key?(:normalized_query)
1846
+ @query_hash = args[:query_hash] if args.key?(:query_hash)
1847
+ @query_metrics = args[:query_metrics] if args.key?(:query_metrics)
1848
+ @resource_ids = args[:resource_ids] if args.key?(:resource_ids)
1849
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
1850
+ end
1851
+ end
1852
+
1853
+ # QueryStatsInfo contains the aggregated and detailed query stats for a
1854
+ # particular combination of relevant query stats for queries having same
1855
+ # normalized query.
1856
+ class QueryStatsInfo
1857
+ include Google::Apis::Core::Hashable
1858
+
1859
+ # QueryStats contains the stats for a particular combination of query_hash,
1860
+ # query_string and resource_type.
1861
+ # Corresponds to the JSON property `aggregatedQueryStats`
1862
+ # @return [Google::Apis::DatabasecenterV1beta::QueryStats]
1863
+ attr_accessor :aggregated_query_stats
1864
+
1865
+ # List of query stats for the resources in the group. This stats is stats at
1866
+ # resource level for the resources having same normalized query.
1867
+ # Corresponds to the JSON property `queryStats`
1868
+ # @return [Array<Google::Apis::DatabasecenterV1beta::QueryStats>]
1869
+ attr_accessor :query_stats
1870
+
1871
+ def initialize(**args)
1872
+ update!(**args)
1873
+ end
1874
+
1875
+ # Update properties of this object
1876
+ def update!(**args)
1877
+ @aggregated_query_stats = args[:aggregated_query_stats] if args.key?(:aggregated_query_stats)
1878
+ @query_stats = args[:query_stats] if args.key?(:query_stats)
1879
+ end
1880
+ end
1881
+
1882
+ # Info associated with recommendation.
1883
+ class RecommendationInfo
1884
+ include Google::Apis::Core::Hashable
1885
+
1886
+ # Name of recommendation. Examples: organizations/1234/locations/us-central1/
1887
+ # recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations/
1888
+ # 9876
1889
+ # Corresponds to the JSON property `recommender`
1890
+ # @return [String]
1891
+ attr_accessor :recommender
1892
+
1893
+ # ID of recommender. Examples: "google.cloudsql.instance.PerformanceRecommender"
1894
+ # Corresponds to the JSON property `recommenderId`
1895
+ # @return [String]
1896
+ attr_accessor :recommender_id
1897
+
1898
+ # Contains an identifier for a subtype of recommendations produced for the same
1899
+ # recommender. Subtype is a function of content and impact, meaning a new
1900
+ # subtype might be added when significant changes to `content` or `
1901
+ # primary_impact.category` are introduced. See the Recommenders section to see a
1902
+ # list of subtypes for a given Recommender. Examples: For recommender = "google.
1903
+ # cloudsql.instance.PerformanceRecommender", recommender_subtype can be "
1904
+ # MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE"/"
1905
+ # POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE"
1906
+ # Corresponds to the JSON property `recommenderSubtype`
1907
+ # @return [String]
1908
+ attr_accessor :recommender_subtype
1909
+
1910
+ def initialize(**args)
1911
+ update!(**args)
1912
+ end
1913
+
1914
+ # Update properties of this object
1915
+ def update!(**args)
1916
+ @recommender = args[:recommender] if args.key?(:recommender)
1917
+ @recommender_id = args[:recommender_id] if args.key?(:recommender_id)
1918
+ @recommender_subtype = args[:recommender_subtype] if args.key?(:recommender_subtype)
1919
+ end
1920
+ end
1921
+
1922
+ # Compliances associated with signals.
1923
+ class RegulatoryStandard
1924
+ include Google::Apis::Core::Hashable
1925
+
1926
+ # Name of industry compliance standards, such as such as CIS, PCI, and OWASP.
1927
+ # Corresponds to the JSON property `standard`
1928
+ # @return [String]
1929
+ attr_accessor :standard
1930
+
1931
+ # Version of the standard or benchmark, for example, 1.1.
1932
+ # Corresponds to the JSON property `version`
1933
+ # @return [String]
1934
+ attr_accessor :version
1935
+
1936
+ def initialize(**args)
1937
+ update!(**args)
1938
+ end
1939
+
1940
+ # Update properties of this object
1941
+ def update!(**args)
1942
+ @standard = args[:standard] if args.key?(:standard)
1943
+ @version = args[:version] if args.key?(:version)
1944
+ end
1945
+ end
1946
+
1947
+ # Capture the resource details for resources that are included in the delta
1948
+ # counts.
1949
+ class ResourceDetails
1950
+ include Google::Apis::Core::Hashable
1951
+
1952
+ # Specifies where the resource is created. For Google Cloud resources, it is the
1953
+ # full name of the project.
1954
+ # Corresponds to the JSON property `container`
1955
+ # @return [String]
1956
+ attr_accessor :container
1957
+
1958
+ # Full resource name of the resource.
1959
+ # Corresponds to the JSON property `fullResourceName`
1960
+ # @return [String]
1961
+ attr_accessor :full_resource_name
1962
+
1963
+ # Location of the resource.
1964
+ # Corresponds to the JSON property `location`
1965
+ # @return [String]
1966
+ attr_accessor :location
1967
+
1968
+ # Product specification for databasecenter resources.
1969
+ # Corresponds to the JSON property `product`
1970
+ # @return [Google::Apis::DatabasecenterV1beta::Product]
1971
+ attr_accessor :product
1972
+
1973
+ def initialize(**args)
1974
+ update!(**args)
1975
+ end
1976
+
1977
+ # Update properties of this object
1978
+ def update!(**args)
1979
+ @container = args[:container] if args.key?(:container)
1980
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
1981
+ @location = args[:location] if args.key?(:location)
1982
+ @product = args[:product] if args.key?(:product)
1983
+ end
1984
+ end
1985
+
1986
+ # ResourceId contains the identifier for a database resource, including the full
1987
+ # resource name, resource type, and product.
1988
+ class ResourceId
1989
+ include Google::Apis::Core::Hashable
1990
+
1991
+ # The full resource name of the resource.
1992
+ # Corresponds to the JSON property `fullResourceName`
1993
+ # @return [String]
1994
+ attr_accessor :full_resource_name
1995
+
1996
+ # Product specification for databasecenter resources.
1997
+ # Corresponds to the JSON property `product`
1998
+ # @return [Google::Apis::DatabasecenterV1beta::Product]
1999
+ attr_accessor :product
2000
+
2001
+ # The type of the resource. sqladmin.googleapis.com/Instance alloydb.googleapis.
2002
+ # com/Cluster alloydb.googleapis.com/Instance
2003
+ # Corresponds to the JSON property `resourceType`
2004
+ # @return [String]
2005
+ attr_accessor :resource_type
2006
+
2007
+ def initialize(**args)
2008
+ update!(**args)
2009
+ end
2010
+
2011
+ # Update properties of this object
2012
+ def update!(**args)
2013
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
2014
+ @product = args[:product] if args.key?(:product)
2015
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
2016
+ end
2017
+ end
2018
+
2019
+ # Deny maintenance period for the database resource. It specifies the time range
2020
+ # during which the maintenance cannot start. This is configured by the customer.
2021
+ class ResourceMaintenanceDenySchedule
2022
+ include Google::Apis::Core::Hashable
2023
+
2024
+ # Represents a whole or partial calendar date, such as a birthday. The time of
2025
+ # day and time zone are either specified elsewhere or are insignificant. The
2026
+ # date is relative to the Gregorian Calendar. This can represent one of the
2027
+ # following: * A full date, with non-zero year, month, and day values. * A month
2028
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
2029
+ # with a zero month and a zero day. * A year and month, with a zero day (for
2030
+ # example, a credit card expiration date). Related types: * google.type.
2031
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
2032
+ # Corresponds to the JSON property `endDate`
2033
+ # @return [Google::Apis::DatabasecenterV1beta::Date]
2034
+ attr_accessor :end_date
2035
+
2036
+ # Represents a whole or partial calendar date, such as a birthday. The time of
2037
+ # day and time zone are either specified elsewhere or are insignificant. The
2038
+ # date is relative to the Gregorian Calendar. This can represent one of the
2039
+ # following: * A full date, with non-zero year, month, and day values. * A month
2040
+ # and day, with a zero year (for example, an anniversary). * A year on its own,
2041
+ # with a zero month and a zero day. * A year and month, with a zero day (for
2042
+ # example, a credit card expiration date). Related types: * google.type.
2043
+ # TimeOfDay * google.type.DateTime * google.protobuf.Timestamp
2044
+ # Corresponds to the JSON property `startDate`
2045
+ # @return [Google::Apis::DatabasecenterV1beta::Date]
2046
+ attr_accessor :start_date
2047
+
2048
+ # Represents a time of day. The date and time zone are either not significant or
2049
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
2050
+ # types are google.type.Date and `google.protobuf.Timestamp`.
2051
+ # Corresponds to the JSON property `time`
2052
+ # @return [Google::Apis::DatabasecenterV1beta::TimeOfDay]
2053
+ attr_accessor :time
2054
+
2055
+ def initialize(**args)
2056
+ update!(**args)
2057
+ end
2058
+
2059
+ # Update properties of this object
2060
+ def update!(**args)
2061
+ @end_date = args[:end_date] if args.key?(:end_date)
2062
+ @start_date = args[:start_date] if args.key?(:start_date)
2063
+ @time = args[:time] if args.key?(:time)
2064
+ end
2065
+ end
2066
+
2067
+ # Maintenance window for the database resource. It specifies preferred time and
2068
+ # day of the week and phase in some cases, when the maintenance can start.
2069
+ class ResourceMaintenanceSchedule
2070
+ include Google::Apis::Core::Hashable
2071
+
2072
+ # Optional. Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc.
2073
+ # Corresponds to the JSON property `day`
2074
+ # @return [String]
2075
+ attr_accessor :day
2076
+
2077
+ # Optional. Phase of the maintenance window. This is to capture order of
2078
+ # maintenance. For example, for Cloud SQL resources, this can be used to capture
2079
+ # if the maintenance window is in Week1, Week2, Week5, etc. Non production
2080
+ # resources are usually part of early phase. For more details, refer to Cloud
2081
+ # SQL resources - https://cloud.google.com/sql/docs/mysql/maintenance
2082
+ # Corresponds to the JSON property `phase`
2083
+ # @return [String]
2084
+ attr_accessor :phase
2085
+
2086
+ # Represents a time of day. The date and time zone are either not significant or
2087
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
2088
+ # types are google.type.Date and `google.protobuf.Timestamp`.
2089
+ # Corresponds to the JSON property `startTime`
2090
+ # @return [Google::Apis::DatabasecenterV1beta::TimeOfDay]
2091
+ attr_accessor :start_time
2092
+
2093
+ def initialize(**args)
2094
+ update!(**args)
2095
+ end
2096
+
2097
+ # Update properties of this object
2098
+ def update!(**args)
2099
+ @day = args[:day] if args.key?(:day)
2100
+ @phase = args[:phase] if args.key?(:phase)
2101
+ @start_time = args[:start_time] if args.key?(:start_time)
2102
+ end
2103
+ end
2104
+
2105
+ # Resource suspension info for a database resource.
2106
+ class ResourceSuspensionInfo
2107
+ include Google::Apis::Core::Hashable
2108
+
2109
+ # Is resource suspended.
2110
+ # Corresponds to the JSON property `resourceSuspended`
2111
+ # @return [Boolean]
2112
+ attr_accessor :resource_suspended
2113
+ alias_method :resource_suspended?, :resource_suspended
2114
+
2115
+ # Suspension reason for the resource.
2116
+ # Corresponds to the JSON property `suspensionReason`
2117
+ # @return [String]
2118
+ attr_accessor :suspension_reason
2119
+
2120
+ def initialize(**args)
2121
+ update!(**args)
2122
+ end
2123
+
2124
+ # Update properties of this object
2125
+ def update!(**args)
2126
+ @resource_suspended = args[:resource_suspended] if args.key?(:resource_suspended)
2127
+ @suspension_reason = args[:suspension_reason] if args.key?(:suspension_reason)
2128
+ end
2129
+ end
2130
+
2131
+ # Metadata about backup retention settings for a database resource.
2132
+ class RetentionSettingsInfo
2133
+ include Google::Apis::Core::Hashable
2134
+
2135
+ # Duration based retention period i.e. 172800 seconds (2 days)
2136
+ # Corresponds to the JSON property `durationBasedRetention`
2137
+ # @return [String]
2138
+ attr_accessor :duration_based_retention
2139
+
2140
+ # Number of backups that will be retained.
2141
+ # Corresponds to the JSON property `quantityBasedRetention`
2142
+ # @return [Fixnum]
2143
+ attr_accessor :quantity_based_retention
2144
+
2145
+ # Sub resource details For Spanner/Bigtable instance certain data protection
2146
+ # settings are at sub resource level like database/table. This message is used
2147
+ # to capture such sub resource details.
2148
+ # Corresponds to the JSON property `subResource`
2149
+ # @return [Google::Apis::DatabasecenterV1beta::SubResource]
2150
+ attr_accessor :sub_resource
2151
+
2152
+ # Timestamp based retention period i.e. till 2024-05-01T00:00:00Z
2153
+ # Corresponds to the JSON property `timestampBasedRetentionTime`
2154
+ # @return [String]
2155
+ attr_accessor :timestamp_based_retention_time
2156
+
2157
+ def initialize(**args)
2158
+ update!(**args)
2159
+ end
2160
+
2161
+ # Update properties of this object
2162
+ def update!(**args)
2163
+ @duration_based_retention = args[:duration_based_retention] if args.key?(:duration_based_retention)
2164
+ @quantity_based_retention = args[:quantity_based_retention] if args.key?(:quantity_based_retention)
2165
+ @sub_resource = args[:sub_resource] if args.key?(:sub_resource)
2166
+ @timestamp_based_retention_time = args[:timestamp_based_retention_time] if args.key?(:timestamp_based_retention_time)
2167
+ end
2168
+ end
2169
+
2170
+ # Info associated with SCC signals.
2171
+ class SccInfo
2172
+ include Google::Apis::Core::Hashable
2173
+
2174
+ # Name by which SCC calls this signal.
2175
+ # Corresponds to the JSON property `category`
2176
+ # @return [String]
2177
+ attr_accessor :category
2178
+
2179
+ # External URI which points to a SCC page associated with the signal.
2180
+ # Corresponds to the JSON property `externalUri`
2181
+ # @return [String]
2182
+ attr_accessor :external_uri
2183
+
2184
+ # Compliances that are associated with the signal.
2185
+ # Corresponds to the JSON property `regulatoryStandards`
2186
+ # @return [Array<Google::Apis::DatabasecenterV1beta::RegulatoryStandard>]
2187
+ attr_accessor :regulatory_standards
2188
+
2189
+ # Name of the signal.
2190
+ # Corresponds to the JSON property `signal`
2191
+ # @return [String]
2192
+ attr_accessor :signal
2193
+
2194
+ def initialize(**args)
2195
+ update!(**args)
2196
+ end
2197
+
2198
+ # Update properties of this object
2199
+ def update!(**args)
2200
+ @category = args[:category] if args.key?(:category)
2201
+ @external_uri = args[:external_uri] if args.key?(:external_uri)
2202
+ @regulatory_standards = args[:regulatory_standards] if args.key?(:regulatory_standards)
2203
+ @signal = args[:signal] if args.key?(:signal)
2204
+ end
2205
+ end
2206
+
2207
+ # Represents a signal.
2208
+ class Signal
2209
+ include Google::Apis::Core::Hashable
2210
+
2211
+ # Additional information related to the signal. In the case of composite signals,
2212
+ # this field encapsulates details associated with granular signals, having a
2213
+ # signal status of "ISSUE"; signals with a status of "OK" are not included. For
2214
+ # granular signals, it encompasses information relevant to the signal,
2215
+ # regardless of the signal status.
2216
+ # Corresponds to the JSON property `additionalDetails`
2217
+ # @return [Array<Google::Apis::DatabasecenterV1beta::AdditionalDetail>]
2218
+ attr_accessor :additional_details
2219
+
2220
+ # Timestamp when the issue was created (when signal status is ISSUE).
2221
+ # Corresponds to the JSON property `issueCreateTime`
2222
+ # @return [String]
2223
+ attr_accessor :issue_create_time
2224
+
2225
+ # Severity of the issue.
2226
+ # Corresponds to the JSON property `issueSeverity`
2227
+ # @return [String]
2228
+ attr_accessor :issue_severity
2229
+
2230
+ # Status of the signal.
2231
+ # Corresponds to the JSON property `signalStatus`
2232
+ # @return [String]
2233
+ attr_accessor :signal_status
2234
+
2235
+ # Type of the signal.
2236
+ # Corresponds to the JSON property `signalType`
2237
+ # @return [String]
2238
+ attr_accessor :signal_type
2239
+
2240
+ def initialize(**args)
2241
+ update!(**args)
2242
+ end
2243
+
2244
+ # Update properties of this object
2245
+ def update!(**args)
2246
+ @additional_details = args[:additional_details] if args.key?(:additional_details)
2247
+ @issue_create_time = args[:issue_create_time] if args.key?(:issue_create_time)
2248
+ @issue_severity = args[:issue_severity] if args.key?(:issue_severity)
2249
+ @signal_status = args[:signal_status] if args.key?(:signal_status)
2250
+ @signal_type = args[:signal_type] if args.key?(:signal_type)
2251
+ end
2252
+ end
2253
+
2254
+ # A filter for Signals. If signal_type is left unset, all signals should be
2255
+ # returned. For example, the following filter returns all issues. signal_filter:
2256
+ # ` signal_status: SIGNAL_STATUS_ISSUE; ` Another example, the following filter
2257
+ # returns issues of the given type: signal_filter: ` type:
2258
+ # SIGNAL_TYPE_NO_PROMOTABLE_REPLICA signal_status: ISSUE ` If signal_status is
2259
+ # left unset or set to SIGNAL_STATE_UNSPECIFIED, an error should be returned.
2260
+ class SignalFilter
2261
+ include Google::Apis::Core::Hashable
2262
+
2263
+ # Optional. Represents the status of the Signal for which the filter is for.
2264
+ # Corresponds to the JSON property `signalStatus`
2265
+ # @return [String]
2266
+ attr_accessor :signal_status
2267
+
2268
+ # Optional. Represents the type of the Signal for which the filter is for.
2269
+ # Corresponds to the JSON property `signalType`
2270
+ # @return [String]
2271
+ attr_accessor :signal_type
2272
+
2273
+ def initialize(**args)
2274
+ update!(**args)
2275
+ end
2276
+
2277
+ # Update properties of this object
2278
+ def update!(**args)
2279
+ @signal_status = args[:signal_status] if args.key?(:signal_status)
2280
+ @signal_type = args[:signal_type] if args.key?(:signal_type)
2281
+ end
2282
+ end
2283
+
2284
+ # A group of signals and their counts.
2285
+ class SignalGroup
2286
+ include Google::Apis::Core::Hashable
2287
+
2288
+ # Title of a signal group corresponding to the request.
2289
+ # Corresponds to the JSON property `displayName`
2290
+ # @return [String]
2291
+ attr_accessor :display_name
2292
+
2293
+ # When applied to a DatabaseResource represents count of issues associated with
2294
+ # the resource. A signal is an issue when its SignalStatus field is set to
2295
+ # SIGNAL_STATUS_ISSUE.
2296
+ # Corresponds to the JSON property `issueCount`
2297
+ # @return [Fixnum]
2298
+ attr_accessor :issue_count
2299
+
2300
+ # List of signals present in the group and associated with the resource. Only
2301
+ # applies to a DatabaseResource.
2302
+ # Corresponds to the JSON property `signals`
2303
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Signal>]
2304
+ attr_accessor :signals
2305
+
2306
+ def initialize(**args)
2307
+ update!(**args)
2308
+ end
2309
+
2310
+ # Update properties of this object
2311
+ def update!(**args)
2312
+ @display_name = args[:display_name] if args.key?(:display_name)
2313
+ @issue_count = args[:issue_count] if args.key?(:issue_count)
2314
+ @signals = args[:signals] if args.key?(:signals)
2315
+ end
2316
+ end
2317
+
2318
+ # SignalProductsFilters represents a signal and list of supported products.
2319
+ class SignalProductsFilters
2320
+ include Google::Apis::Core::Hashable
2321
+
2322
+ # Optional. Product type of the resource. The version of the product will be
2323
+ # ignored in filtering.
2324
+ # Corresponds to the JSON property `products`
2325
+ # @return [Array<Google::Apis::DatabasecenterV1beta::Product>]
2326
+ attr_accessor :products
2327
+
2328
+ # Optional. The type of signal.
2329
+ # Corresponds to the JSON property `signalType`
2330
+ # @return [String]
2331
+ attr_accessor :signal_type
2332
+
2333
+ def initialize(**args)
2334
+ update!(**args)
2335
+ end
2336
+
2337
+ # Update properties of this object
2338
+ def update!(**args)
2339
+ @products = args[:products] if args.key?(:products)
2340
+ @signal_type = args[:signal_type] if args.key?(:signal_type)
2341
+ end
2342
+ end
2343
+
2344
+ # A group of signal types that specifies what the user is interested in. Used by
2345
+ # QueryDatabaseResourceGroups API. Example: signal_type_group ` name = "
2346
+ # AVAILABILITY" types = [SIGNAL_TYPE_NO_PROMOTABLE_REPLICA] `
2347
+ class SignalTypeGroup
2348
+ include Google::Apis::Core::Hashable
2349
+
2350
+ # Required. The display name of a signal group.
2351
+ # Corresponds to the JSON property `displayName`
2352
+ # @return [String]
2353
+ attr_accessor :display_name
2354
+
2355
+ # Optional. List of signal types present in the group.
2356
+ # Corresponds to the JSON property `signalTypes`
2357
+ # @return [Array<String>]
2358
+ attr_accessor :signal_types
2359
+
2360
+ def initialize(**args)
2361
+ update!(**args)
2362
+ end
2363
+
2364
+ # Update properties of this object
2365
+ def update!(**args)
2366
+ @display_name = args[:display_name] if args.key?(:display_name)
2367
+ @signal_types = args[:signal_types] if args.key?(:signal_types)
2368
+ end
2369
+ end
2370
+
2371
+ # Sub resource details For Spanner/Bigtable instance certain data protection
2372
+ # settings are at sub resource level like database/table. This message is used
2373
+ # to capture such sub resource details.
2374
+ class SubResource
2375
+ include Google::Apis::Core::Hashable
2376
+
2377
+ # Specifies where the resource is created. For Google Cloud resources, it is the
2378
+ # full name of the project.
2379
+ # Corresponds to the JSON property `container`
2380
+ # @return [String]
2381
+ attr_accessor :container
2382
+
2383
+ # Optional. Resource name associated with the sub resource where backup settings
2384
+ # are configured. E.g."//spanner.googleapis.com/projects/project1/instances/
2385
+ # inst1/databases/db1" for Spanner where backup retention is configured on
2386
+ # database within an instance OPTIONAL
2387
+ # Corresponds to the JSON property `fullResourceName`
2388
+ # @return [String]
2389
+ attr_accessor :full_resource_name
2390
+
2391
+ # Product specification for databasecenter resources.
2392
+ # Corresponds to the JSON property `product`
2393
+ # @return [Google::Apis::DatabasecenterV1beta::Product]
2394
+ attr_accessor :product
2395
+
2396
+ # Optional. Resource type associated with the sub resource where backup settings
2397
+ # are configured. E.g. "spanner.googleapis.com/Database" for Spanner where
2398
+ # backup retention is configured on database within an instance OPTIONAL
2399
+ # Corresponds to the JSON property `resourceType`
2400
+ # @return [String]
2401
+ attr_accessor :resource_type
2402
+
2403
+ def initialize(**args)
2404
+ update!(**args)
2405
+ end
2406
+
2407
+ # Update properties of this object
2408
+ def update!(**args)
2409
+ @container = args[:container] if args.key?(:container)
2410
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
2411
+ @product = args[:product] if args.key?(:product)
2412
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
2413
+ end
2414
+ end
2415
+
2416
+ # Tag is a key value pair attached to a resource.
2417
+ class Tag
2418
+ include Google::Apis::Core::Hashable
2419
+
2420
+ # Indicates the inheritance status of a tag value attached to the given resource.
2421
+ # If the tag value is inherited from one of the resource's ancestors, inherited
2422
+ # will be true. If false, then the tag value is directly attached to the
2423
+ # resource.
2424
+ # Corresponds to the JSON property `inherited`
2425
+ # @return [Boolean]
2426
+ attr_accessor :inherited
2427
+ alias_method :inherited?, :inherited
2428
+
2429
+ #
2430
+ # Corresponds to the JSON property `key`
2431
+ # @return [String]
2432
+ attr_accessor :key
2433
+
2434
+ # The source of the tag. According to https://cloud.google.com/resource-manager/
2435
+ # docs/tags/tags-overview#tags_and_labels, tags can be created only at the
2436
+ # project or organization level. Tags can be inherited from different project as
2437
+ # well not just the current project where the database resource is present.
2438
+ # Format: "projects/`PROJECT_ID`", "projects/`PROJECT_NUMBER`", "organizations/`
2439
+ # ORGANIZATION_ID`"
2440
+ # Corresponds to the JSON property `source`
2441
+ # @return [String]
2442
+ attr_accessor :source
2443
+
2444
+ # The value part of the tag.
2445
+ # Corresponds to the JSON property `value`
2446
+ # @return [String]
2447
+ attr_accessor :value
2448
+
2449
+ def initialize(**args)
2450
+ update!(**args)
2451
+ end
2452
+
2453
+ # Update properties of this object
2454
+ def update!(**args)
2455
+ @inherited = args[:inherited] if args.key?(:inherited)
2456
+ @key = args[:key] if args.key?(:key)
2457
+ @source = args[:source] if args.key?(:source)
2458
+ @value = args[:value] if args.key?(:value)
2459
+ end
2460
+ end
2461
+
2462
+ # Represents a time of day. The date and time zone are either not significant or
2463
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
2464
+ # types are google.type.Date and `google.protobuf.Timestamp`.
2465
+ class TimeOfDay
2466
+ include Google::Apis::Core::Hashable
2467
+
2468
+ # Hours of a day in 24 hour format. Must be greater than or equal to 0 and
2469
+ # typically must be less than or equal to 23. An API may choose to allow the
2470
+ # value "24:00:00" for scenarios like business closing time.
2471
+ # Corresponds to the JSON property `hours`
2472
+ # @return [Fixnum]
2473
+ attr_accessor :hours
2474
+
2475
+ # Minutes of an hour. Must be greater than or equal to 0 and less than or equal
2476
+ # to 59.
2477
+ # Corresponds to the JSON property `minutes`
2478
+ # @return [Fixnum]
2479
+ attr_accessor :minutes
2480
+
2481
+ # Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and
2482
+ # less than or equal to 999,999,999.
2483
+ # Corresponds to the JSON property `nanos`
2484
+ # @return [Fixnum]
2485
+ attr_accessor :nanos
2486
+
2487
+ # Seconds of a minute. Must be greater than or equal to 0 and typically must be
2488
+ # less than or equal to 59. An API may allow the value 60 if it allows leap-
2489
+ # seconds.
2490
+ # Corresponds to the JSON property `seconds`
2491
+ # @return [Fixnum]
2492
+ attr_accessor :seconds
2493
+
2494
+ def initialize(**args)
2495
+ update!(**args)
2496
+ end
2497
+
2498
+ # Update properties of this object
2499
+ def update!(**args)
2500
+ @hours = args[:hours] if args.key?(:hours)
2501
+ @minutes = args[:minutes] if args.key?(:minutes)
2502
+ @nanos = args[:nanos] if args.key?(:nanos)
2503
+ @seconds = args[:seconds] if args.key?(:seconds)
2504
+ end
2505
+ end
2506
+
2507
+ # TypedValue represents the value of the metric based on data type.
2508
+ class TypedValue
2509
+ include Google::Apis::Core::Hashable
2510
+
2511
+ # The value of the metric as double.
2512
+ # Corresponds to the JSON property `doubleValue`
2513
+ # @return [Float]
2514
+ attr_accessor :double_value
2515
+
2516
+ # The value of the metric as int.
2517
+ # Corresponds to the JSON property `int64Value`
2518
+ # @return [Fixnum]
2519
+ attr_accessor :int64_value
2520
+
2521
+ def initialize(**args)
2522
+ update!(**args)
2523
+ end
2524
+
2525
+ # Update properties of this object
2526
+ def update!(**args)
2527
+ @double_value = args[:double_value] if args.key?(:double_value)
2528
+ @int64_value = args[:int64_value] if args.key?(:int64_value)
2529
+ end
2530
+ end
2531
+
2532
+ # Upcoming maintenance window for the database resource.
2533
+ class UpcomingMaintenance
2534
+ include Google::Apis::Core::Hashable
2535
+
2536
+ # Output only. End time of the upcoming maintenance. This is only populated for
2537
+ # an engine, if end time is public for the engine.
2538
+ # Corresponds to the JSON property `endTime`
2539
+ # @return [String]
2540
+ attr_accessor :end_time
2541
+
2542
+ # Output only. Start time of the upcoming maintenance. Start time is always
2543
+ # populated when an upcoming maintenance is scheduled.
2544
+ # Corresponds to the JSON property `startTime`
2545
+ # @return [String]
2546
+ attr_accessor :start_time
2547
+
2548
+ def initialize(**args)
2549
+ update!(**args)
2550
+ end
2551
+
2552
+ # Update properties of this object
2553
+ def update!(**args)
2554
+ @end_time = args[:end_time] if args.key?(:end_time)
2555
+ @start_time = args[:start_time] if args.key?(:start_time)
2556
+ end
2557
+ end
2558
+ end
2559
+ end
2560
+ end