google-apis-gkebackup_v1 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.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google/apis/gkebackup_v1/classes.rb +2114 -0
- data/lib/google/apis/gkebackup_v1/gem_version.rb +28 -0
- data/lib/google/apis/gkebackup_v1/representations.rb +728 -0
- data/lib/google/apis/gkebackup_v1/service.rb +1961 -0
- data/lib/google/apis/gkebackup_v1.rb +37 -0
- data/lib/google-apis-gkebackup_v1.rb +15 -0
- metadata +82 -0
@@ -0,0 +1,2114 @@
|
|
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 GkebackupV1
|
24
|
+
|
25
|
+
# Specifies the audit configuration for a service. The configuration determines
|
26
|
+
# which permission types are logged, and what identities, if any, are exempted
|
27
|
+
# from logging. An AuditConfig must have one or more AuditLogConfigs. If there
|
28
|
+
# are AuditConfigs for both `allServices` and a specific service, the union of
|
29
|
+
# the two AuditConfigs is used for that service: the log_types specified in each
|
30
|
+
# AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
|
31
|
+
# exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
|
32
|
+
# service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
|
33
|
+
# exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
|
34
|
+
# ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
|
35
|
+
# "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
|
36
|
+
# , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
|
37
|
+
# this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
|
38
|
+
# exempts jose@example.com from DATA_READ logging, and aliya@example.com from
|
39
|
+
# DATA_WRITE logging.
|
40
|
+
class AuditConfig
|
41
|
+
include Google::Apis::Core::Hashable
|
42
|
+
|
43
|
+
# The configuration for logging of each type of permission.
|
44
|
+
# Corresponds to the JSON property `auditLogConfigs`
|
45
|
+
# @return [Array<Google::Apis::GkebackupV1::AuditLogConfig>]
|
46
|
+
attr_accessor :audit_log_configs
|
47
|
+
|
48
|
+
# Specifies a service that will be enabled for audit logging. For example, `
|
49
|
+
# storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
|
50
|
+
# value that covers all services.
|
51
|
+
# Corresponds to the JSON property `service`
|
52
|
+
# @return [String]
|
53
|
+
attr_accessor :service
|
54
|
+
|
55
|
+
def initialize(**args)
|
56
|
+
update!(**args)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Update properties of this object
|
60
|
+
def update!(**args)
|
61
|
+
@audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
|
62
|
+
@service = args[:service] if args.key?(:service)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# Provides the configuration for logging a type of permissions. Example: ` "
|
67
|
+
# audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
|
68
|
+
# jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
|
69
|
+
# DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
|
70
|
+
# DATA_READ logging.
|
71
|
+
class AuditLogConfig
|
72
|
+
include Google::Apis::Core::Hashable
|
73
|
+
|
74
|
+
# Specifies the identities that do not cause logging for this type of permission.
|
75
|
+
# Follows the same format of Binding.members.
|
76
|
+
# Corresponds to the JSON property `exemptedMembers`
|
77
|
+
# @return [Array<String>]
|
78
|
+
attr_accessor :exempted_members
|
79
|
+
|
80
|
+
# The log type that this config enables.
|
81
|
+
# Corresponds to the JSON property `logType`
|
82
|
+
# @return [String]
|
83
|
+
attr_accessor :log_type
|
84
|
+
|
85
|
+
def initialize(**args)
|
86
|
+
update!(**args)
|
87
|
+
end
|
88
|
+
|
89
|
+
# Update properties of this object
|
90
|
+
def update!(**args)
|
91
|
+
@exempted_members = args[:exempted_members] if args.key?(:exempted_members)
|
92
|
+
@log_type = args[:log_type] if args.key?(:log_type)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# Represents a request to perform a single point-in-time capture of some portion
|
97
|
+
# of the state of a GKE cluster, the record of the backup operation itself, and
|
98
|
+
# an anchor for the underlying artifacts that comprise the Backup (the config
|
99
|
+
# backup and VolumeBackups). Next id: 28
|
100
|
+
class Backup
|
101
|
+
include Google::Apis::Core::Hashable
|
102
|
+
|
103
|
+
# Output only. If True, all namespaces were included in the Backup.
|
104
|
+
# Corresponds to the JSON property `allNamespaces`
|
105
|
+
# @return [Boolean]
|
106
|
+
attr_accessor :all_namespaces
|
107
|
+
alias_method :all_namespaces?, :all_namespaces
|
108
|
+
|
109
|
+
# Information about the GKE cluster from which this Backup was created.
|
110
|
+
# Corresponds to the JSON property `clusterMetadata`
|
111
|
+
# @return [Google::Apis::GkebackupV1::ClusterMetadata]
|
112
|
+
attr_accessor :cluster_metadata
|
113
|
+
|
114
|
+
# Output only. Completion time of the Backup
|
115
|
+
# Corresponds to the JSON property `completeTime`
|
116
|
+
# @return [String]
|
117
|
+
attr_accessor :complete_time
|
118
|
+
|
119
|
+
# Output only. cluster config backup size in bytes.
|
120
|
+
# Corresponds to the JSON property `configBackupSizeBytes`
|
121
|
+
# @return [Fixnum]
|
122
|
+
attr_accessor :config_backup_size_bytes
|
123
|
+
|
124
|
+
# Output only. Whether or not the Backup contains Kubernetes Secrets. Inherited
|
125
|
+
# from the parent BackupPlan's backup_config.include_secrets.
|
126
|
+
# Corresponds to the JSON property `containsSecrets`
|
127
|
+
# @return [Boolean]
|
128
|
+
attr_accessor :contains_secrets
|
129
|
+
alias_method :contains_secrets?, :contains_secrets
|
130
|
+
|
131
|
+
# Output only. Whether or not the Backup contains volume data. Inherited from
|
132
|
+
# the parent BackupPlan's backup_config.include_volume_data.
|
133
|
+
# Corresponds to the JSON property `containsVolumeData`
|
134
|
+
# @return [Boolean]
|
135
|
+
attr_accessor :contains_volume_data
|
136
|
+
alias_method :contains_volume_data?, :contains_volume_data
|
137
|
+
|
138
|
+
# Output only. [Output Only] The timestamp when this Backup resource was created
|
139
|
+
# - can be converted to and from [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
|
140
|
+
# Corresponds to the JSON property `createTime`
|
141
|
+
# @return [String]
|
142
|
+
attr_accessor :create_time
|
143
|
+
|
144
|
+
# Minimum age for this Backup (in days). If this field is set to a non-zero
|
145
|
+
# value, the Backup will be "locked" against deletion (either manual or
|
146
|
+
# automatic deletion) for the number of days provided (measured from the
|
147
|
+
# creation time of the Backup). This value is inherited from the parent
|
148
|
+
# BackupPlan's retention_policy.backup_delete_lock_days value and may only be
|
149
|
+
# increased (either at creation time or in a subsequent update). This field MUST
|
150
|
+
# be an integer value between 0-90 (inclusive). Default: inherited from
|
151
|
+
# BackupPlan.
|
152
|
+
# Corresponds to the JSON property `deleteLockDays`
|
153
|
+
# @return [Fixnum]
|
154
|
+
attr_accessor :delete_lock_days
|
155
|
+
|
156
|
+
# Output only. The time at which an existing delete lock will expire for this
|
157
|
+
# backup (calculated from create_time + delete_lock_days).
|
158
|
+
# Corresponds to the JSON property `deleteLockExpireTime`
|
159
|
+
# @return [String]
|
160
|
+
attr_accessor :delete_lock_expire_time
|
161
|
+
|
162
|
+
# User specified descriptive string for this Backup.
|
163
|
+
# Corresponds to the JSON property `description`
|
164
|
+
# @return [String]
|
165
|
+
attr_accessor :description
|
166
|
+
|
167
|
+
# Defined a customer managed encryption key that will be used to encrypt Backup
|
168
|
+
# artifacts.
|
169
|
+
# Corresponds to the JSON property `encryptionKey`
|
170
|
+
# @return [Google::Apis::GkebackupV1::EncryptionKey]
|
171
|
+
attr_accessor :encryption_key
|
172
|
+
|
173
|
+
# Output only. `etag` is used for optimistic concurrency control as a way to
|
174
|
+
# help prevent simultaneous updates of a backup from overwriting each other. It
|
175
|
+
# is strongly suggested that systems make use of the `etag` in the read-modify-
|
176
|
+
# write cycle to perform backup updates in order to avoid race conditions: An `
|
177
|
+
# etag` is returned in the response to `GetBackup`, and systems are expected to
|
178
|
+
# put that etag in the request to `UpdateBackup` to ensure that their change
|
179
|
+
# will be applied to the same version.
|
180
|
+
# Corresponds to the JSON property `etag`
|
181
|
+
# @return [String]
|
182
|
+
attr_accessor :etag
|
183
|
+
|
184
|
+
# A set of custom labels supplied by user.
|
185
|
+
# Corresponds to the JSON property `labels`
|
186
|
+
# @return [Hash<String,String>]
|
187
|
+
attr_accessor :labels
|
188
|
+
|
189
|
+
# Output only. This flag indicates whether this Backup resource was created
|
190
|
+
# manually by a user or via a schedule in the BackupPlan. A value of True means
|
191
|
+
# that the Backup was created manually.
|
192
|
+
# Corresponds to the JSON property `manual`
|
193
|
+
# @return [Boolean]
|
194
|
+
attr_accessor :manual
|
195
|
+
alias_method :manual?, :manual
|
196
|
+
|
197
|
+
# Output only. The fully qualified name of the Backup. projects/*/locations/*/
|
198
|
+
# backupPlans/*/backups/*
|
199
|
+
# Corresponds to the JSON property `name`
|
200
|
+
# @return [String]
|
201
|
+
attr_accessor :name
|
202
|
+
|
203
|
+
# Output only. The total number of Kubernetes Pods contained in the Backup.
|
204
|
+
# Corresponds to the JSON property `podCount`
|
205
|
+
# @return [Fixnum]
|
206
|
+
attr_accessor :pod_count
|
207
|
+
|
208
|
+
# Output only. The total number of Kubernetes resources included in the Backup.
|
209
|
+
# Corresponds to the JSON property `resourceCount`
|
210
|
+
# @return [Fixnum]
|
211
|
+
attr_accessor :resource_count
|
212
|
+
|
213
|
+
# The age (in days) after which this Backup will be automatically deleted. If
|
214
|
+
# not specified at Backup creation time, this value is inherited from the parent
|
215
|
+
# BackupPlan's retention_policy.backup_retain_days value. Once a Backup is
|
216
|
+
# created, this value may only be increased. This must be an integer value >= 0.
|
217
|
+
# If 0, no automatic deletion will occur for this Backup. If not 0, this must be
|
218
|
+
# >= delete_lock_days. Default: inherited from BackupPlan.
|
219
|
+
# Corresponds to the JSON property `retainDays`
|
220
|
+
# @return [Fixnum]
|
221
|
+
attr_accessor :retain_days
|
222
|
+
|
223
|
+
# Output only. The time at which this Backup will be automatically deleted (
|
224
|
+
# calculated from create_time + retain_days).
|
225
|
+
# Corresponds to the JSON property `retainExpireTime`
|
226
|
+
# @return [String]
|
227
|
+
attr_accessor :retain_expire_time
|
228
|
+
|
229
|
+
# A list of namespaced Kubernetes resources.
|
230
|
+
# Corresponds to the JSON property `selectedApplications`
|
231
|
+
# @return [Google::Apis::GkebackupV1::NamespacedNames]
|
232
|
+
attr_accessor :selected_applications
|
233
|
+
|
234
|
+
# A list of Kubernetes Namespaces
|
235
|
+
# Corresponds to the JSON property `selectedNamespaces`
|
236
|
+
# @return [Google::Apis::GkebackupV1::Namespaces]
|
237
|
+
attr_accessor :selected_namespaces
|
238
|
+
|
239
|
+
# Output only. The total size of the Backup in bytes = config backup size + sum(
|
240
|
+
# volume backup sizes)
|
241
|
+
# Corresponds to the JSON property `sizeBytes`
|
242
|
+
# @return [Fixnum]
|
243
|
+
attr_accessor :size_bytes
|
244
|
+
|
245
|
+
# Output only. Current state of the Backup
|
246
|
+
# Corresponds to the JSON property `state`
|
247
|
+
# @return [String]
|
248
|
+
attr_accessor :state
|
249
|
+
|
250
|
+
# Output only. Human-readable description of why the backup is in the current `
|
251
|
+
# state`.
|
252
|
+
# Corresponds to the JSON property `stateReason`
|
253
|
+
# @return [String]
|
254
|
+
attr_accessor :state_reason
|
255
|
+
|
256
|
+
# Output only. [Output Only] Server generated global unique identifier of [UUID4]
|
257
|
+
# (https://en.wikipedia.org/wiki/Universally_unique_identifier)
|
258
|
+
# Corresponds to the JSON property `uid`
|
259
|
+
# @return [String]
|
260
|
+
attr_accessor :uid
|
261
|
+
|
262
|
+
# Output only. [Output Only] The timestamp when this Backup resource was last
|
263
|
+
# updated - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
264
|
+
# rfc3339.txt)
|
265
|
+
# Corresponds to the JSON property `updateTime`
|
266
|
+
# @return [String]
|
267
|
+
attr_accessor :update_time
|
268
|
+
|
269
|
+
# Output only. The total number of volume backups contained in the Backup.
|
270
|
+
# Corresponds to the JSON property `volumeCount`
|
271
|
+
# @return [Fixnum]
|
272
|
+
attr_accessor :volume_count
|
273
|
+
|
274
|
+
def initialize(**args)
|
275
|
+
update!(**args)
|
276
|
+
end
|
277
|
+
|
278
|
+
# Update properties of this object
|
279
|
+
def update!(**args)
|
280
|
+
@all_namespaces = args[:all_namespaces] if args.key?(:all_namespaces)
|
281
|
+
@cluster_metadata = args[:cluster_metadata] if args.key?(:cluster_metadata)
|
282
|
+
@complete_time = args[:complete_time] if args.key?(:complete_time)
|
283
|
+
@config_backup_size_bytes = args[:config_backup_size_bytes] if args.key?(:config_backup_size_bytes)
|
284
|
+
@contains_secrets = args[:contains_secrets] if args.key?(:contains_secrets)
|
285
|
+
@contains_volume_data = args[:contains_volume_data] if args.key?(:contains_volume_data)
|
286
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
287
|
+
@delete_lock_days = args[:delete_lock_days] if args.key?(:delete_lock_days)
|
288
|
+
@delete_lock_expire_time = args[:delete_lock_expire_time] if args.key?(:delete_lock_expire_time)
|
289
|
+
@description = args[:description] if args.key?(:description)
|
290
|
+
@encryption_key = args[:encryption_key] if args.key?(:encryption_key)
|
291
|
+
@etag = args[:etag] if args.key?(:etag)
|
292
|
+
@labels = args[:labels] if args.key?(:labels)
|
293
|
+
@manual = args[:manual] if args.key?(:manual)
|
294
|
+
@name = args[:name] if args.key?(:name)
|
295
|
+
@pod_count = args[:pod_count] if args.key?(:pod_count)
|
296
|
+
@resource_count = args[:resource_count] if args.key?(:resource_count)
|
297
|
+
@retain_days = args[:retain_days] if args.key?(:retain_days)
|
298
|
+
@retain_expire_time = args[:retain_expire_time] if args.key?(:retain_expire_time)
|
299
|
+
@selected_applications = args[:selected_applications] if args.key?(:selected_applications)
|
300
|
+
@selected_namespaces = args[:selected_namespaces] if args.key?(:selected_namespaces)
|
301
|
+
@size_bytes = args[:size_bytes] if args.key?(:size_bytes)
|
302
|
+
@state = args[:state] if args.key?(:state)
|
303
|
+
@state_reason = args[:state_reason] if args.key?(:state_reason)
|
304
|
+
@uid = args[:uid] if args.key?(:uid)
|
305
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
306
|
+
@volume_count = args[:volume_count] if args.key?(:volume_count)
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
# BackupConfig defines the configuration of Backups created via this BackupPlan.
|
311
|
+
class BackupConfig
|
312
|
+
include Google::Apis::Core::Hashable
|
313
|
+
|
314
|
+
# If True, include all namespaced resources
|
315
|
+
# Corresponds to the JSON property `allNamespaces`
|
316
|
+
# @return [Boolean]
|
317
|
+
attr_accessor :all_namespaces
|
318
|
+
alias_method :all_namespaces?, :all_namespaces
|
319
|
+
|
320
|
+
# Defined a customer managed encryption key that will be used to encrypt Backup
|
321
|
+
# artifacts.
|
322
|
+
# Corresponds to the JSON property `encryptionKey`
|
323
|
+
# @return [Google::Apis::GkebackupV1::EncryptionKey]
|
324
|
+
attr_accessor :encryption_key
|
325
|
+
|
326
|
+
# This flag specifies whether Kubernetes Secret resources should be included
|
327
|
+
# when they fall into the scope of Backups. Default: False
|
328
|
+
# Corresponds to the JSON property `includeSecrets`
|
329
|
+
# @return [Boolean]
|
330
|
+
attr_accessor :include_secrets
|
331
|
+
alias_method :include_secrets?, :include_secrets
|
332
|
+
|
333
|
+
# This flag specifies whether volume data should be backed up when PVCs are
|
334
|
+
# included in the scope of a Backup. Default: False
|
335
|
+
# Corresponds to the JSON property `includeVolumeData`
|
336
|
+
# @return [Boolean]
|
337
|
+
attr_accessor :include_volume_data
|
338
|
+
alias_method :include_volume_data?, :include_volume_data
|
339
|
+
|
340
|
+
# A list of namespaced Kubernetes resources.
|
341
|
+
# Corresponds to the JSON property `selectedApplications`
|
342
|
+
# @return [Google::Apis::GkebackupV1::NamespacedNames]
|
343
|
+
attr_accessor :selected_applications
|
344
|
+
|
345
|
+
# A list of Kubernetes Namespaces
|
346
|
+
# Corresponds to the JSON property `selectedNamespaces`
|
347
|
+
# @return [Google::Apis::GkebackupV1::Namespaces]
|
348
|
+
attr_accessor :selected_namespaces
|
349
|
+
|
350
|
+
def initialize(**args)
|
351
|
+
update!(**args)
|
352
|
+
end
|
353
|
+
|
354
|
+
# Update properties of this object
|
355
|
+
def update!(**args)
|
356
|
+
@all_namespaces = args[:all_namespaces] if args.key?(:all_namespaces)
|
357
|
+
@encryption_key = args[:encryption_key] if args.key?(:encryption_key)
|
358
|
+
@include_secrets = args[:include_secrets] if args.key?(:include_secrets)
|
359
|
+
@include_volume_data = args[:include_volume_data] if args.key?(:include_volume_data)
|
360
|
+
@selected_applications = args[:selected_applications] if args.key?(:selected_applications)
|
361
|
+
@selected_namespaces = args[:selected_namespaces] if args.key?(:selected_namespaces)
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
# Defines the configuration and scheduling for a "line" of Backups.
|
366
|
+
class BackupPlan
|
367
|
+
include Google::Apis::Core::Hashable
|
368
|
+
|
369
|
+
# BackupConfig defines the configuration of Backups created via this BackupPlan.
|
370
|
+
# Corresponds to the JSON property `backupConfig`
|
371
|
+
# @return [Google::Apis::GkebackupV1::BackupConfig]
|
372
|
+
attr_accessor :backup_config
|
373
|
+
|
374
|
+
# Schedule defines scheduling parameters for automatically creating Backups via
|
375
|
+
# this BackupPlan.
|
376
|
+
# Corresponds to the JSON property `backupSchedule`
|
377
|
+
# @return [Google::Apis::GkebackupV1::Schedule]
|
378
|
+
attr_accessor :backup_schedule
|
379
|
+
|
380
|
+
# Required. Immutable. The source cluster from which Backups will be created via
|
381
|
+
# this BackupPlan. Possible formats: 1. projects/*/locations/*/clusters/* 2.
|
382
|
+
# projects/*/zones/*/clusters/*
|
383
|
+
# Corresponds to the JSON property `cluster`
|
384
|
+
# @return [String]
|
385
|
+
attr_accessor :cluster
|
386
|
+
|
387
|
+
# Output only. [Output Only] The timestamp when this BackupPlan resource was
|
388
|
+
# created - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
389
|
+
# rfc3339.txt)
|
390
|
+
# Corresponds to the JSON property `createTime`
|
391
|
+
# @return [String]
|
392
|
+
attr_accessor :create_time
|
393
|
+
|
394
|
+
# This flag indicates whether this BackupPlan has been deactivated. Setting this
|
395
|
+
# field to True locks the BackupPlan such that no further updates will be
|
396
|
+
# allowed, including the deactivated field. It also prevents any new Backups
|
397
|
+
# from being created via this BackupPlan (including scheduled Backups). Default:
|
398
|
+
# False
|
399
|
+
# Corresponds to the JSON property `deactivated`
|
400
|
+
# @return [Boolean]
|
401
|
+
attr_accessor :deactivated
|
402
|
+
alias_method :deactivated?, :deactivated
|
403
|
+
|
404
|
+
# User specified descriptive string for this BackupPlan.
|
405
|
+
# Corresponds to the JSON property `description`
|
406
|
+
# @return [String]
|
407
|
+
attr_accessor :description
|
408
|
+
|
409
|
+
# Output only. `etag` is used for optimistic concurrency control as a way to
|
410
|
+
# help prevent simultaneous updates of a backup plan from overwriting each other.
|
411
|
+
# It is strongly suggested that systems make use of the 'etag' in the read-
|
412
|
+
# modify-write cycle to perform BackupPlan updates in order to avoid race
|
413
|
+
# conditions: An `etag` is returned in the response to `GetBackupPlan`, and
|
414
|
+
# systems are expected to put that etag in the request to `UpdateBackupPlan` to
|
415
|
+
# ensure that their change will be applied to the same version.
|
416
|
+
# Corresponds to the JSON property `etag`
|
417
|
+
# @return [String]
|
418
|
+
attr_accessor :etag
|
419
|
+
|
420
|
+
# A set of custom labels supplied by user.
|
421
|
+
# Corresponds to the JSON property `labels`
|
422
|
+
# @return [Hash<String,String>]
|
423
|
+
attr_accessor :labels
|
424
|
+
|
425
|
+
# Output only. [Output Only] The full name of the BackupPlan resource. Format:
|
426
|
+
# projects/*/locations/*/backupPlans/*
|
427
|
+
# Corresponds to the JSON property `name`
|
428
|
+
# @return [String]
|
429
|
+
attr_accessor :name
|
430
|
+
|
431
|
+
# Output only. [Output Only] Represents the number of Kubernetes Pods backed up
|
432
|
+
# in the last successful Backup created underneath this BackupPlan.
|
433
|
+
# Corresponds to the JSON property `protectedPodCount`
|
434
|
+
# @return [Fixnum]
|
435
|
+
attr_accessor :protected_pod_count
|
436
|
+
|
437
|
+
# RentionPolicy is an inner message type to define: 1. Minimum age for Backups
|
438
|
+
# created via this BackupPlan - deletion (either manual or automatic) of Backups
|
439
|
+
# younger than this age will be blocked 2. Default maximum age of Backups
|
440
|
+
# created via this BackupPlan, after which automatic deletion will occur 3. Lock
|
441
|
+
# to disallow any changes to any RetentionPolicy settings
|
442
|
+
# Corresponds to the JSON property `retentionPolicy`
|
443
|
+
# @return [Google::Apis::GkebackupV1::RetentionPolicy]
|
444
|
+
attr_accessor :retention_policy
|
445
|
+
|
446
|
+
# Output only. [Output Only] Server generated global unique identifier of [UUID](
|
447
|
+
# https://en.wikipedia.org/wiki/Universally_unique_identifier) format.
|
448
|
+
# Corresponds to the JSON property `uid`
|
449
|
+
# @return [String]
|
450
|
+
attr_accessor :uid
|
451
|
+
|
452
|
+
# Output only. [Output Only] The timestamp when this BackupPlan resource was
|
453
|
+
# last updated - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
454
|
+
# rfc3339.txt)
|
455
|
+
# Corresponds to the JSON property `updateTime`
|
456
|
+
# @return [String]
|
457
|
+
attr_accessor :update_time
|
458
|
+
|
459
|
+
def initialize(**args)
|
460
|
+
update!(**args)
|
461
|
+
end
|
462
|
+
|
463
|
+
# Update properties of this object
|
464
|
+
def update!(**args)
|
465
|
+
@backup_config = args[:backup_config] if args.key?(:backup_config)
|
466
|
+
@backup_schedule = args[:backup_schedule] if args.key?(:backup_schedule)
|
467
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
468
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
469
|
+
@deactivated = args[:deactivated] if args.key?(:deactivated)
|
470
|
+
@description = args[:description] if args.key?(:description)
|
471
|
+
@etag = args[:etag] if args.key?(:etag)
|
472
|
+
@labels = args[:labels] if args.key?(:labels)
|
473
|
+
@name = args[:name] if args.key?(:name)
|
474
|
+
@protected_pod_count = args[:protected_pod_count] if args.key?(:protected_pod_count)
|
475
|
+
@retention_policy = args[:retention_policy] if args.key?(:retention_policy)
|
476
|
+
@uid = args[:uid] if args.key?(:uid)
|
477
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
478
|
+
end
|
479
|
+
end
|
480
|
+
|
481
|
+
# Associates `members`, or principals, with a `role`.
|
482
|
+
class Binding
|
483
|
+
include Google::Apis::Core::Hashable
|
484
|
+
|
485
|
+
# Represents a textual expression in the Common Expression Language (CEL) syntax.
|
486
|
+
# CEL is a C-like expression language. The syntax and semantics of CEL are
|
487
|
+
# documented at https://github.com/google/cel-spec. Example (Comparison): title:
|
488
|
+
# "Summary size limit" description: "Determines if a summary is less than 100
|
489
|
+
# chars" expression: "document.summary.size() < 100" Example (Equality): title: "
|
490
|
+
# Requestor is owner" description: "Determines if requestor is the document
|
491
|
+
# owner" expression: "document.owner == request.auth.claims.email" Example (
|
492
|
+
# Logic): title: "Public documents" description: "Determine whether the document
|
493
|
+
# should be publicly visible" expression: "document.type != 'private' &&
|
494
|
+
# document.type != 'internal'" Example (Data Manipulation): title: "Notification
|
495
|
+
# string" description: "Create a notification string with a timestamp."
|
496
|
+
# expression: "'New message received at ' + string(document.create_time)" The
|
497
|
+
# exact variables and functions that may be referenced within an expression are
|
498
|
+
# determined by the service that evaluates it. See the service documentation for
|
499
|
+
# additional information.
|
500
|
+
# Corresponds to the JSON property `condition`
|
501
|
+
# @return [Google::Apis::GkebackupV1::Expr]
|
502
|
+
attr_accessor :condition
|
503
|
+
|
504
|
+
# Specifies the principals requesting access for a Cloud Platform resource. `
|
505
|
+
# members` can have the following values: * `allUsers`: A special identifier
|
506
|
+
# that represents anyone who is on the internet; with or without a Google
|
507
|
+
# account. * `allAuthenticatedUsers`: A special identifier that represents
|
508
|
+
# anyone who is authenticated with a Google account or a service account. * `
|
509
|
+
# user:`emailid``: An email address that represents a specific Google account.
|
510
|
+
# For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
|
511
|
+
# address that represents a service account. For example, `my-other-app@appspot.
|
512
|
+
# gserviceaccount.com`. * `group:`emailid``: An email address that represents a
|
513
|
+
# Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
|
514
|
+
# `uniqueid``: An email address (plus unique identifier) representing a user
|
515
|
+
# that has been recently deleted. For example, `alice@example.com?uid=
|
516
|
+
# 123456789012345678901`. If the user is recovered, this value reverts to `user:`
|
517
|
+
# emailid`` and the recovered user retains the role in the binding. * `deleted:
|
518
|
+
# serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
|
519
|
+
# identifier) representing a service account that has been recently deleted. For
|
520
|
+
# example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
|
521
|
+
# If the service account is undeleted, this value reverts to `serviceAccount:`
|
522
|
+
# emailid`` and the undeleted service account retains the role in the binding. *
|
523
|
+
# `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
|
524
|
+
# identifier) representing a Google group that has been recently deleted. For
|
525
|
+
# example, `admins@example.com?uid=123456789012345678901`. If the group is
|
526
|
+
# recovered, this value reverts to `group:`emailid`` and the recovered group
|
527
|
+
# retains the role in the binding. * `domain:`domain``: The G Suite domain (
|
528
|
+
# primary) that represents all the users of that domain. For example, `google.
|
529
|
+
# com` or `example.com`.
|
530
|
+
# Corresponds to the JSON property `members`
|
531
|
+
# @return [Array<String>]
|
532
|
+
attr_accessor :members
|
533
|
+
|
534
|
+
# Role that is assigned to the list of `members`, or principals. For example, `
|
535
|
+
# roles/viewer`, `roles/editor`, or `roles/owner`.
|
536
|
+
# Corresponds to the JSON property `role`
|
537
|
+
# @return [String]
|
538
|
+
attr_accessor :role
|
539
|
+
|
540
|
+
def initialize(**args)
|
541
|
+
update!(**args)
|
542
|
+
end
|
543
|
+
|
544
|
+
# Update properties of this object
|
545
|
+
def update!(**args)
|
546
|
+
@condition = args[:condition] if args.key?(:condition)
|
547
|
+
@members = args[:members] if args.key?(:members)
|
548
|
+
@role = args[:role] if args.key?(:role)
|
549
|
+
end
|
550
|
+
end
|
551
|
+
|
552
|
+
# Information about the GKE cluster from which this Backup was created.
|
553
|
+
class ClusterMetadata
|
554
|
+
include Google::Apis::Core::Hashable
|
555
|
+
|
556
|
+
# Anthos version
|
557
|
+
# Corresponds to the JSON property `anthosVersion`
|
558
|
+
# @return [String]
|
559
|
+
attr_accessor :anthos_version
|
560
|
+
|
561
|
+
# A list of the Backup for GKE CRD versions found in the cluster.
|
562
|
+
# Corresponds to the JSON property `backupCrdVersions`
|
563
|
+
# @return [Hash<String,String>]
|
564
|
+
attr_accessor :backup_crd_versions
|
565
|
+
|
566
|
+
# The source cluster from which this Backup was created. Possible formats: 1.
|
567
|
+
# projects/*/locations/*/clusters/* 2. projects/*/zones/*/clusters/* This will
|
568
|
+
# be the same value as the parent BackupPlan's cluster field.
|
569
|
+
# Corresponds to the JSON property `cluster`
|
570
|
+
# @return [String]
|
571
|
+
attr_accessor :cluster
|
572
|
+
|
573
|
+
# GKE version
|
574
|
+
# Corresponds to the JSON property `gkeVersion`
|
575
|
+
# @return [String]
|
576
|
+
attr_accessor :gke_version
|
577
|
+
|
578
|
+
# The Kubernetes server version of the source cluster.
|
579
|
+
# Corresponds to the JSON property `k8sVersion`
|
580
|
+
# @return [String]
|
581
|
+
attr_accessor :k8s_version
|
582
|
+
|
583
|
+
def initialize(**args)
|
584
|
+
update!(**args)
|
585
|
+
end
|
586
|
+
|
587
|
+
# Update properties of this object
|
588
|
+
def update!(**args)
|
589
|
+
@anthos_version = args[:anthos_version] if args.key?(:anthos_version)
|
590
|
+
@backup_crd_versions = args[:backup_crd_versions] if args.key?(:backup_crd_versions)
|
591
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
592
|
+
@gke_version = args[:gke_version] if args.key?(:gke_version)
|
593
|
+
@k8s_version = args[:k8s_version] if args.key?(:k8s_version)
|
594
|
+
end
|
595
|
+
end
|
596
|
+
|
597
|
+
# Identifies the cluster-scoped resources to restore from the Backup.
|
598
|
+
class ClusterResourceRestoreScope
|
599
|
+
include Google::Apis::Core::Hashable
|
600
|
+
|
601
|
+
# A list of "types" of cluster-scoped resources to be restored from the Backup.
|
602
|
+
# An empty list means that NO cluster-scoped resources will be restored. Note
|
603
|
+
# that Namespaces and PersistentVolume restoration is handled separately and is
|
604
|
+
# not governed by this field.
|
605
|
+
# Corresponds to the JSON property `selectedGroupKinds`
|
606
|
+
# @return [Array<Google::Apis::GkebackupV1::GroupKind>]
|
607
|
+
attr_accessor :selected_group_kinds
|
608
|
+
|
609
|
+
def initialize(**args)
|
610
|
+
update!(**args)
|
611
|
+
end
|
612
|
+
|
613
|
+
# Update properties of this object
|
614
|
+
def update!(**args)
|
615
|
+
@selected_group_kinds = args[:selected_group_kinds] if args.key?(:selected_group_kinds)
|
616
|
+
end
|
617
|
+
end
|
618
|
+
|
619
|
+
# A generic empty message that you can re-use to avoid defining duplicated empty
|
620
|
+
# messages in your APIs. A typical example is to use it as the request or the
|
621
|
+
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
622
|
+
# protobuf.Empty) returns (google.protobuf.Empty); `
|
623
|
+
class Empty
|
624
|
+
include Google::Apis::Core::Hashable
|
625
|
+
|
626
|
+
def initialize(**args)
|
627
|
+
update!(**args)
|
628
|
+
end
|
629
|
+
|
630
|
+
# Update properties of this object
|
631
|
+
def update!(**args)
|
632
|
+
end
|
633
|
+
end
|
634
|
+
|
635
|
+
# Defined a customer managed encryption key that will be used to encrypt Backup
|
636
|
+
# artifacts.
|
637
|
+
class EncryptionKey
|
638
|
+
include Google::Apis::Core::Hashable
|
639
|
+
|
640
|
+
# Google Cloud KMS encryption key. Format: projects//locations//keyRings//
|
641
|
+
# cryptoKeys/
|
642
|
+
# Corresponds to the JSON property `gcpKmsEncryptionKey`
|
643
|
+
# @return [String]
|
644
|
+
attr_accessor :gcp_kms_encryption_key
|
645
|
+
|
646
|
+
def initialize(**args)
|
647
|
+
update!(**args)
|
648
|
+
end
|
649
|
+
|
650
|
+
# Update properties of this object
|
651
|
+
def update!(**args)
|
652
|
+
@gcp_kms_encryption_key = args[:gcp_kms_encryption_key] if args.key?(:gcp_kms_encryption_key)
|
653
|
+
end
|
654
|
+
end
|
655
|
+
|
656
|
+
# Represents a textual expression in the Common Expression Language (CEL) syntax.
|
657
|
+
# CEL is a C-like expression language. The syntax and semantics of CEL are
|
658
|
+
# documented at https://github.com/google/cel-spec. Example (Comparison): title:
|
659
|
+
# "Summary size limit" description: "Determines if a summary is less than 100
|
660
|
+
# chars" expression: "document.summary.size() < 100" Example (Equality): title: "
|
661
|
+
# Requestor is owner" description: "Determines if requestor is the document
|
662
|
+
# owner" expression: "document.owner == request.auth.claims.email" Example (
|
663
|
+
# Logic): title: "Public documents" description: "Determine whether the document
|
664
|
+
# should be publicly visible" expression: "document.type != 'private' &&
|
665
|
+
# document.type != 'internal'" Example (Data Manipulation): title: "Notification
|
666
|
+
# string" description: "Create a notification string with a timestamp."
|
667
|
+
# expression: "'New message received at ' + string(document.create_time)" The
|
668
|
+
# exact variables and functions that may be referenced within an expression are
|
669
|
+
# determined by the service that evaluates it. See the service documentation for
|
670
|
+
# additional information.
|
671
|
+
class Expr
|
672
|
+
include Google::Apis::Core::Hashable
|
673
|
+
|
674
|
+
# Optional. Description of the expression. This is a longer text which describes
|
675
|
+
# the expression, e.g. when hovered over it in a UI.
|
676
|
+
# Corresponds to the JSON property `description`
|
677
|
+
# @return [String]
|
678
|
+
attr_accessor :description
|
679
|
+
|
680
|
+
# Textual representation of an expression in Common Expression Language syntax.
|
681
|
+
# Corresponds to the JSON property `expression`
|
682
|
+
# @return [String]
|
683
|
+
attr_accessor :expression
|
684
|
+
|
685
|
+
# Optional. String indicating the location of the expression for error reporting,
|
686
|
+
# e.g. a file name and a position in the file.
|
687
|
+
# Corresponds to the JSON property `location`
|
688
|
+
# @return [String]
|
689
|
+
attr_accessor :location
|
690
|
+
|
691
|
+
# Optional. Title for the expression, i.e. a short string describing its purpose.
|
692
|
+
# This can be used e.g. in UIs which allow to enter the expression.
|
693
|
+
# Corresponds to the JSON property `title`
|
694
|
+
# @return [String]
|
695
|
+
attr_accessor :title
|
696
|
+
|
697
|
+
def initialize(**args)
|
698
|
+
update!(**args)
|
699
|
+
end
|
700
|
+
|
701
|
+
# Update properties of this object
|
702
|
+
def update!(**args)
|
703
|
+
@description = args[:description] if args.key?(:description)
|
704
|
+
@expression = args[:expression] if args.key?(:expression)
|
705
|
+
@location = args[:location] if args.key?(:location)
|
706
|
+
@title = args[:title] if args.key?(:title)
|
707
|
+
end
|
708
|
+
end
|
709
|
+
|
710
|
+
# The request message for Operations.CancelOperation.
|
711
|
+
class GoogleLongrunningCancelOperationRequest
|
712
|
+
include Google::Apis::Core::Hashable
|
713
|
+
|
714
|
+
def initialize(**args)
|
715
|
+
update!(**args)
|
716
|
+
end
|
717
|
+
|
718
|
+
# Update properties of this object
|
719
|
+
def update!(**args)
|
720
|
+
end
|
721
|
+
end
|
722
|
+
|
723
|
+
# The response message for Operations.ListOperations.
|
724
|
+
class GoogleLongrunningListOperationsResponse
|
725
|
+
include Google::Apis::Core::Hashable
|
726
|
+
|
727
|
+
# The standard List next-page token.
|
728
|
+
# Corresponds to the JSON property `nextPageToken`
|
729
|
+
# @return [String]
|
730
|
+
attr_accessor :next_page_token
|
731
|
+
|
732
|
+
# A list of operations that matches the specified filter in the request.
|
733
|
+
# Corresponds to the JSON property `operations`
|
734
|
+
# @return [Array<Google::Apis::GkebackupV1::GoogleLongrunningOperation>]
|
735
|
+
attr_accessor :operations
|
736
|
+
|
737
|
+
def initialize(**args)
|
738
|
+
update!(**args)
|
739
|
+
end
|
740
|
+
|
741
|
+
# Update properties of this object
|
742
|
+
def update!(**args)
|
743
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
744
|
+
@operations = args[:operations] if args.key?(:operations)
|
745
|
+
end
|
746
|
+
end
|
747
|
+
|
748
|
+
# This resource represents a long-running operation that is the result of a
|
749
|
+
# network API call.
|
750
|
+
class GoogleLongrunningOperation
|
751
|
+
include Google::Apis::Core::Hashable
|
752
|
+
|
753
|
+
# If the value is `false`, it means the operation is still in progress. If `true`
|
754
|
+
# , the operation is completed, and either `error` or `response` is available.
|
755
|
+
# Corresponds to the JSON property `done`
|
756
|
+
# @return [Boolean]
|
757
|
+
attr_accessor :done
|
758
|
+
alias_method :done?, :done
|
759
|
+
|
760
|
+
# The `Status` type defines a logical error model that is suitable for different
|
761
|
+
# programming environments, including REST APIs and RPC APIs. It is used by [
|
762
|
+
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
763
|
+
# data: error code, error message, and error details. You can find out more
|
764
|
+
# about this error model and how to work with it in the [API Design Guide](https:
|
765
|
+
# //cloud.google.com/apis/design/errors).
|
766
|
+
# Corresponds to the JSON property `error`
|
767
|
+
# @return [Google::Apis::GkebackupV1::GoogleRpcStatus]
|
768
|
+
attr_accessor :error
|
769
|
+
|
770
|
+
# Service-specific metadata associated with the operation. It typically contains
|
771
|
+
# progress information and common metadata such as create time. Some services
|
772
|
+
# might not provide such metadata. Any method that returns a long-running
|
773
|
+
# operation should document the metadata type, if any.
|
774
|
+
# Corresponds to the JSON property `metadata`
|
775
|
+
# @return [Hash<String,Object>]
|
776
|
+
attr_accessor :metadata
|
777
|
+
|
778
|
+
# The server-assigned name, which is only unique within the same service that
|
779
|
+
# originally returns it. If you use the default HTTP mapping, the `name` should
|
780
|
+
# be a resource name ending with `operations/`unique_id``.
|
781
|
+
# Corresponds to the JSON property `name`
|
782
|
+
# @return [String]
|
783
|
+
attr_accessor :name
|
784
|
+
|
785
|
+
# The normal response of the operation in case of success. If the original
|
786
|
+
# method returns no data on success, such as `Delete`, the response is `google.
|
787
|
+
# protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
|
788
|
+
# the response should be the resource. For other methods, the response should
|
789
|
+
# have the type `XxxResponse`, where `Xxx` is the original method name. For
|
790
|
+
# example, if the original method name is `TakeSnapshot()`, the inferred
|
791
|
+
# response type is `TakeSnapshotResponse`.
|
792
|
+
# Corresponds to the JSON property `response`
|
793
|
+
# @return [Hash<String,Object>]
|
794
|
+
attr_accessor :response
|
795
|
+
|
796
|
+
def initialize(**args)
|
797
|
+
update!(**args)
|
798
|
+
end
|
799
|
+
|
800
|
+
# Update properties of this object
|
801
|
+
def update!(**args)
|
802
|
+
@done = args[:done] if args.key?(:done)
|
803
|
+
@error = args[:error] if args.key?(:error)
|
804
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
805
|
+
@name = args[:name] if args.key?(:name)
|
806
|
+
@response = args[:response] if args.key?(:response)
|
807
|
+
end
|
808
|
+
end
|
809
|
+
|
810
|
+
# The `Status` type defines a logical error model that is suitable for different
|
811
|
+
# programming environments, including REST APIs and RPC APIs. It is used by [
|
812
|
+
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
813
|
+
# data: error code, error message, and error details. You can find out more
|
814
|
+
# about this error model and how to work with it in the [API Design Guide](https:
|
815
|
+
# //cloud.google.com/apis/design/errors).
|
816
|
+
class GoogleRpcStatus
|
817
|
+
include Google::Apis::Core::Hashable
|
818
|
+
|
819
|
+
# The status code, which should be an enum value of google.rpc.Code.
|
820
|
+
# Corresponds to the JSON property `code`
|
821
|
+
# @return [Fixnum]
|
822
|
+
attr_accessor :code
|
823
|
+
|
824
|
+
# A list of messages that carry the error details. There is a common set of
|
825
|
+
# message types for APIs to use.
|
826
|
+
# Corresponds to the JSON property `details`
|
827
|
+
# @return [Array<Hash<String,Object>>]
|
828
|
+
attr_accessor :details
|
829
|
+
|
830
|
+
# A developer-facing error message, which should be in English. Any user-facing
|
831
|
+
# error message should be localized and sent in the google.rpc.Status.details
|
832
|
+
# field, or localized by the client.
|
833
|
+
# Corresponds to the JSON property `message`
|
834
|
+
# @return [String]
|
835
|
+
attr_accessor :message
|
836
|
+
|
837
|
+
def initialize(**args)
|
838
|
+
update!(**args)
|
839
|
+
end
|
840
|
+
|
841
|
+
# Update properties of this object
|
842
|
+
def update!(**args)
|
843
|
+
@code = args[:code] if args.key?(:code)
|
844
|
+
@details = args[:details] if args.key?(:details)
|
845
|
+
@message = args[:message] if args.key?(:message)
|
846
|
+
end
|
847
|
+
end
|
848
|
+
|
849
|
+
# This is a direct map to the Kubernetes GroupKind type [GroupKind](https://
|
850
|
+
# godoc.org/k8s.io/apimachinery/pkg/runtime/schema#GroupKind) and is used for
|
851
|
+
# identifying specific "types" of resources to restore.
|
852
|
+
class GroupKind
|
853
|
+
include Google::Apis::Core::Hashable
|
854
|
+
|
855
|
+
# API group string of a Kubernetes resource, e.g. "apiextensions.k8s.io", "
|
856
|
+
# storage.k8s.io", etc. Note: use empty string for core API group
|
857
|
+
# Corresponds to the JSON property `resourceGroup`
|
858
|
+
# @return [String]
|
859
|
+
attr_accessor :resource_group
|
860
|
+
|
861
|
+
# Kind of a Kubernetes resource, e.g. "CustomResourceDefinition", "StorageClass",
|
862
|
+
# etc.
|
863
|
+
# Corresponds to the JSON property `resourceKind`
|
864
|
+
# @return [String]
|
865
|
+
attr_accessor :resource_kind
|
866
|
+
|
867
|
+
def initialize(**args)
|
868
|
+
update!(**args)
|
869
|
+
end
|
870
|
+
|
871
|
+
# Update properties of this object
|
872
|
+
def update!(**args)
|
873
|
+
@resource_group = args[:resource_group] if args.key?(:resource_group)
|
874
|
+
@resource_kind = args[:resource_kind] if args.key?(:resource_kind)
|
875
|
+
end
|
876
|
+
end
|
877
|
+
|
878
|
+
# Response message for ListBackupPlans.
|
879
|
+
class ListBackupPlansResponse
|
880
|
+
include Google::Apis::Core::Hashable
|
881
|
+
|
882
|
+
# The list of BackupPlans.
|
883
|
+
# Corresponds to the JSON property `backupPlans`
|
884
|
+
# @return [Array<Google::Apis::GkebackupV1::BackupPlan>]
|
885
|
+
attr_accessor :backup_plans
|
886
|
+
|
887
|
+
# A token which may be sent as `page_token` in a subsequent `ListBackupPlans`
|
888
|
+
# call to retrieve the next page of results. If this field is omitted or empty,
|
889
|
+
# then there are no more results to return.
|
890
|
+
# Corresponds to the JSON property `nextPageToken`
|
891
|
+
# @return [String]
|
892
|
+
attr_accessor :next_page_token
|
893
|
+
|
894
|
+
# Locations that could not be reached.
|
895
|
+
# Corresponds to the JSON property `unreachable`
|
896
|
+
# @return [Array<String>]
|
897
|
+
attr_accessor :unreachable
|
898
|
+
|
899
|
+
def initialize(**args)
|
900
|
+
update!(**args)
|
901
|
+
end
|
902
|
+
|
903
|
+
# Update properties of this object
|
904
|
+
def update!(**args)
|
905
|
+
@backup_plans = args[:backup_plans] if args.key?(:backup_plans)
|
906
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
907
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
908
|
+
end
|
909
|
+
end
|
910
|
+
|
911
|
+
# Response message for ListBackups.
|
912
|
+
class ListBackupsResponse
|
913
|
+
include Google::Apis::Core::Hashable
|
914
|
+
|
915
|
+
# The list of restore resources within the parent.
|
916
|
+
# Corresponds to the JSON property `backups`
|
917
|
+
# @return [Array<Google::Apis::GkebackupV1::Backup>]
|
918
|
+
attr_accessor :backups
|
919
|
+
|
920
|
+
# A token which may be sent as `page_token` in a subsequent `ListBackups` call
|
921
|
+
# to retrieve the next page of results. If this field is omitted or empty, then
|
922
|
+
# there are no more results to return.
|
923
|
+
# Corresponds to the JSON property `nextPageToken`
|
924
|
+
# @return [String]
|
925
|
+
attr_accessor :next_page_token
|
926
|
+
|
927
|
+
def initialize(**args)
|
928
|
+
update!(**args)
|
929
|
+
end
|
930
|
+
|
931
|
+
# Update properties of this object
|
932
|
+
def update!(**args)
|
933
|
+
@backups = args[:backups] if args.key?(:backups)
|
934
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
935
|
+
end
|
936
|
+
end
|
937
|
+
|
938
|
+
# The response message for Locations.ListLocations.
|
939
|
+
class ListLocationsResponse
|
940
|
+
include Google::Apis::Core::Hashable
|
941
|
+
|
942
|
+
# A list of locations that matches the specified filter in the request.
|
943
|
+
# Corresponds to the JSON property `locations`
|
944
|
+
# @return [Array<Google::Apis::GkebackupV1::Location>]
|
945
|
+
attr_accessor :locations
|
946
|
+
|
947
|
+
# The standard List next-page token.
|
948
|
+
# Corresponds to the JSON property `nextPageToken`
|
949
|
+
# @return [String]
|
950
|
+
attr_accessor :next_page_token
|
951
|
+
|
952
|
+
def initialize(**args)
|
953
|
+
update!(**args)
|
954
|
+
end
|
955
|
+
|
956
|
+
# Update properties of this object
|
957
|
+
def update!(**args)
|
958
|
+
@locations = args[:locations] if args.key?(:locations)
|
959
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
960
|
+
end
|
961
|
+
end
|
962
|
+
|
963
|
+
# Response message for ListRestorePlans.
|
964
|
+
class ListRestorePlansResponse
|
965
|
+
include Google::Apis::Core::Hashable
|
966
|
+
|
967
|
+
# A token which may be sent as `page_token` in a subsequent `ListRestorePlans`
|
968
|
+
# call to retrieve the next page of results. If this field is omitted or empty,
|
969
|
+
# then there are no more results to return.
|
970
|
+
# Corresponds to the JSON property `nextPageToken`
|
971
|
+
# @return [String]
|
972
|
+
attr_accessor :next_page_token
|
973
|
+
|
974
|
+
# The list of RestorePlans.
|
975
|
+
# Corresponds to the JSON property `restorePlans`
|
976
|
+
# @return [Array<Google::Apis::GkebackupV1::RestorePlan>]
|
977
|
+
attr_accessor :restore_plans
|
978
|
+
|
979
|
+
# Locations that could not be reached.
|
980
|
+
# Corresponds to the JSON property `unreachable`
|
981
|
+
# @return [Array<String>]
|
982
|
+
attr_accessor :unreachable
|
983
|
+
|
984
|
+
def initialize(**args)
|
985
|
+
update!(**args)
|
986
|
+
end
|
987
|
+
|
988
|
+
# Update properties of this object
|
989
|
+
def update!(**args)
|
990
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
991
|
+
@restore_plans = args[:restore_plans] if args.key?(:restore_plans)
|
992
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
993
|
+
end
|
994
|
+
end
|
995
|
+
|
996
|
+
# Response message for ListRestores.
|
997
|
+
class ListRestoresResponse
|
998
|
+
include Google::Apis::Core::Hashable
|
999
|
+
|
1000
|
+
# A token which may be sent as `page_token` in a subsequent `ListRestores` call
|
1001
|
+
# to retrieve the next page of results. If this field is omitted or empty, then
|
1002
|
+
# there are no more results to return.
|
1003
|
+
# Corresponds to the JSON property `nextPageToken`
|
1004
|
+
# @return [String]
|
1005
|
+
attr_accessor :next_page_token
|
1006
|
+
|
1007
|
+
# The list of restore resources within the parent.
|
1008
|
+
# Corresponds to the JSON property `restores`
|
1009
|
+
# @return [Array<Google::Apis::GkebackupV1::Restore>]
|
1010
|
+
attr_accessor :restores
|
1011
|
+
|
1012
|
+
# Locations that could not be reached.
|
1013
|
+
# Corresponds to the JSON property `unreachable`
|
1014
|
+
# @return [Array<String>]
|
1015
|
+
attr_accessor :unreachable
|
1016
|
+
|
1017
|
+
def initialize(**args)
|
1018
|
+
update!(**args)
|
1019
|
+
end
|
1020
|
+
|
1021
|
+
# Update properties of this object
|
1022
|
+
def update!(**args)
|
1023
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1024
|
+
@restores = args[:restores] if args.key?(:restores)
|
1025
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
1026
|
+
end
|
1027
|
+
end
|
1028
|
+
|
1029
|
+
# Response message for ListVolumeBackups.
|
1030
|
+
class ListVolumeBackupsResponse
|
1031
|
+
include Google::Apis::Core::Hashable
|
1032
|
+
|
1033
|
+
# A token which may be sent as `page_token` in a subsequent `ListVolumeBackups`
|
1034
|
+
# call to retrieve the next page of results. If this field is omitted or empty,
|
1035
|
+
# then there are no more results to return.
|
1036
|
+
# Corresponds to the JSON property `nextPageToken`
|
1037
|
+
# @return [String]
|
1038
|
+
attr_accessor :next_page_token
|
1039
|
+
|
1040
|
+
# The list of VolumeBackups resources within the parent.
|
1041
|
+
# Corresponds to the JSON property `volumeBackups`
|
1042
|
+
# @return [Array<Google::Apis::GkebackupV1::VolumeBackup>]
|
1043
|
+
attr_accessor :volume_backups
|
1044
|
+
|
1045
|
+
def initialize(**args)
|
1046
|
+
update!(**args)
|
1047
|
+
end
|
1048
|
+
|
1049
|
+
# Update properties of this object
|
1050
|
+
def update!(**args)
|
1051
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1052
|
+
@volume_backups = args[:volume_backups] if args.key?(:volume_backups)
|
1053
|
+
end
|
1054
|
+
end
|
1055
|
+
|
1056
|
+
# Response message for ListVolumeRestores.
|
1057
|
+
class ListVolumeRestoresResponse
|
1058
|
+
include Google::Apis::Core::Hashable
|
1059
|
+
|
1060
|
+
# A token which may be sent as `page_token` in a subsequent `ListVolumeRestores`
|
1061
|
+
# call to retrieve the next page of results. If this field is omitted or empty,
|
1062
|
+
# then there are no more results to return.
|
1063
|
+
# Corresponds to the JSON property `nextPageToken`
|
1064
|
+
# @return [String]
|
1065
|
+
attr_accessor :next_page_token
|
1066
|
+
|
1067
|
+
# The list of VolumeRestores resources within the parent.
|
1068
|
+
# Corresponds to the JSON property `volumeRestores`
|
1069
|
+
# @return [Array<Google::Apis::GkebackupV1::VolumeRestore>]
|
1070
|
+
attr_accessor :volume_restores
|
1071
|
+
|
1072
|
+
def initialize(**args)
|
1073
|
+
update!(**args)
|
1074
|
+
end
|
1075
|
+
|
1076
|
+
# Update properties of this object
|
1077
|
+
def update!(**args)
|
1078
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
1079
|
+
@volume_restores = args[:volume_restores] if args.key?(:volume_restores)
|
1080
|
+
end
|
1081
|
+
end
|
1082
|
+
|
1083
|
+
# A resource that represents Google Cloud Platform location.
|
1084
|
+
class Location
|
1085
|
+
include Google::Apis::Core::Hashable
|
1086
|
+
|
1087
|
+
# The friendly name for this location, typically a nearby city name. For example,
|
1088
|
+
# "Tokyo".
|
1089
|
+
# Corresponds to the JSON property `displayName`
|
1090
|
+
# @return [String]
|
1091
|
+
attr_accessor :display_name
|
1092
|
+
|
1093
|
+
# Cross-service attributes for the location. For example `"cloud.googleapis.com/
|
1094
|
+
# region": "us-east1"`
|
1095
|
+
# Corresponds to the JSON property `labels`
|
1096
|
+
# @return [Hash<String,String>]
|
1097
|
+
attr_accessor :labels
|
1098
|
+
|
1099
|
+
# The canonical id for this location. For example: `"us-east1"`.
|
1100
|
+
# Corresponds to the JSON property `locationId`
|
1101
|
+
# @return [String]
|
1102
|
+
attr_accessor :location_id
|
1103
|
+
|
1104
|
+
# Service-specific metadata. For example the available capacity at the given
|
1105
|
+
# location.
|
1106
|
+
# Corresponds to the JSON property `metadata`
|
1107
|
+
# @return [Hash<String,Object>]
|
1108
|
+
attr_accessor :metadata
|
1109
|
+
|
1110
|
+
# Resource name for the location, which may vary between implementations. For
|
1111
|
+
# example: `"projects/example-project/locations/us-east1"`
|
1112
|
+
# Corresponds to the JSON property `name`
|
1113
|
+
# @return [String]
|
1114
|
+
attr_accessor :name
|
1115
|
+
|
1116
|
+
def initialize(**args)
|
1117
|
+
update!(**args)
|
1118
|
+
end
|
1119
|
+
|
1120
|
+
# Update properties of this object
|
1121
|
+
def update!(**args)
|
1122
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
1123
|
+
@labels = args[:labels] if args.key?(:labels)
|
1124
|
+
@location_id = args[:location_id] if args.key?(:location_id)
|
1125
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
1126
|
+
@name = args[:name] if args.key?(:name)
|
1127
|
+
end
|
1128
|
+
end
|
1129
|
+
|
1130
|
+
# A reference to a namespaced resource in Kubernetes.
|
1131
|
+
class NamespacedName
|
1132
|
+
include Google::Apis::Core::Hashable
|
1133
|
+
|
1134
|
+
# The name of the Kubernetes resource.
|
1135
|
+
# Corresponds to the JSON property `name`
|
1136
|
+
# @return [String]
|
1137
|
+
attr_accessor :name
|
1138
|
+
|
1139
|
+
# The Namespace of the Kubernetes resource.
|
1140
|
+
# Corresponds to the JSON property `namespace`
|
1141
|
+
# @return [String]
|
1142
|
+
attr_accessor :namespace
|
1143
|
+
|
1144
|
+
def initialize(**args)
|
1145
|
+
update!(**args)
|
1146
|
+
end
|
1147
|
+
|
1148
|
+
# Update properties of this object
|
1149
|
+
def update!(**args)
|
1150
|
+
@name = args[:name] if args.key?(:name)
|
1151
|
+
@namespace = args[:namespace] if args.key?(:namespace)
|
1152
|
+
end
|
1153
|
+
end
|
1154
|
+
|
1155
|
+
# A list of namespaced Kubernetes resources.
|
1156
|
+
class NamespacedNames
|
1157
|
+
include Google::Apis::Core::Hashable
|
1158
|
+
|
1159
|
+
# A list of namespaced Kubernetes resources.
|
1160
|
+
# Corresponds to the JSON property `namespacedNames`
|
1161
|
+
# @return [Array<Google::Apis::GkebackupV1::NamespacedName>]
|
1162
|
+
attr_accessor :namespaced_names
|
1163
|
+
|
1164
|
+
def initialize(**args)
|
1165
|
+
update!(**args)
|
1166
|
+
end
|
1167
|
+
|
1168
|
+
# Update properties of this object
|
1169
|
+
def update!(**args)
|
1170
|
+
@namespaced_names = args[:namespaced_names] if args.key?(:namespaced_names)
|
1171
|
+
end
|
1172
|
+
end
|
1173
|
+
|
1174
|
+
# A list of Kubernetes Namespaces
|
1175
|
+
class Namespaces
|
1176
|
+
include Google::Apis::Core::Hashable
|
1177
|
+
|
1178
|
+
# A list of Kubernetes Namespaces
|
1179
|
+
# Corresponds to the JSON property `namespaces`
|
1180
|
+
# @return [Array<String>]
|
1181
|
+
attr_accessor :namespaces
|
1182
|
+
|
1183
|
+
def initialize(**args)
|
1184
|
+
update!(**args)
|
1185
|
+
end
|
1186
|
+
|
1187
|
+
# Update properties of this object
|
1188
|
+
def update!(**args)
|
1189
|
+
@namespaces = args[:namespaces] if args.key?(:namespaces)
|
1190
|
+
end
|
1191
|
+
end
|
1192
|
+
|
1193
|
+
# Represents the metadata of the long-running operation.
|
1194
|
+
class OperationMetadata
|
1195
|
+
include Google::Apis::Core::Hashable
|
1196
|
+
|
1197
|
+
# Output only. API version used to start the operation.
|
1198
|
+
# Corresponds to the JSON property `apiVersion`
|
1199
|
+
# @return [String]
|
1200
|
+
attr_accessor :api_version
|
1201
|
+
|
1202
|
+
# Output only. The time the operation was created.
|
1203
|
+
# Corresponds to the JSON property `createTime`
|
1204
|
+
# @return [String]
|
1205
|
+
attr_accessor :create_time
|
1206
|
+
|
1207
|
+
# Output only. The time the operation finished running.
|
1208
|
+
# Corresponds to the JSON property `endTime`
|
1209
|
+
# @return [String]
|
1210
|
+
attr_accessor :end_time
|
1211
|
+
|
1212
|
+
# Output only. Identifies whether the user has requested cancellation of the
|
1213
|
+
# operation. Operations that have successfully been cancelled have Operation.
|
1214
|
+
# error value with a google.rpc.Status.code of 1, corresponding to `Code.
|
1215
|
+
# CANCELLED`.
|
1216
|
+
# Corresponds to the JSON property `requestedCancellation`
|
1217
|
+
# @return [Boolean]
|
1218
|
+
attr_accessor :requested_cancellation
|
1219
|
+
alias_method :requested_cancellation?, :requested_cancellation
|
1220
|
+
|
1221
|
+
# Output only. Human-readable status of the operation, if any.
|
1222
|
+
# Corresponds to the JSON property `statusMessage`
|
1223
|
+
# @return [String]
|
1224
|
+
attr_accessor :status_message
|
1225
|
+
|
1226
|
+
# Output only. Server-defined resource path for the target of the operation.
|
1227
|
+
# Corresponds to the JSON property `target`
|
1228
|
+
# @return [String]
|
1229
|
+
attr_accessor :target
|
1230
|
+
|
1231
|
+
# Output only. Name of the verb executed by the operation.
|
1232
|
+
# Corresponds to the JSON property `verb`
|
1233
|
+
# @return [String]
|
1234
|
+
attr_accessor :verb
|
1235
|
+
|
1236
|
+
def initialize(**args)
|
1237
|
+
update!(**args)
|
1238
|
+
end
|
1239
|
+
|
1240
|
+
# Update properties of this object
|
1241
|
+
def update!(**args)
|
1242
|
+
@api_version = args[:api_version] if args.key?(:api_version)
|
1243
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
1244
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
1245
|
+
@requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
|
1246
|
+
@status_message = args[:status_message] if args.key?(:status_message)
|
1247
|
+
@target = args[:target] if args.key?(:target)
|
1248
|
+
@verb = args[:verb] if args.key?(:verb)
|
1249
|
+
end
|
1250
|
+
end
|
1251
|
+
|
1252
|
+
# An Identity and Access Management (IAM) policy, which specifies access
|
1253
|
+
# controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
|
1254
|
+
# A `binding` binds one or more `members`, or principals, to a single `role`.
|
1255
|
+
# Principals can be user accounts, service accounts, Google groups, and domains (
|
1256
|
+
# such as G Suite). A `role` is a named list of permissions; each `role` can be
|
1257
|
+
# an IAM predefined role or a user-created custom role. For some types of Google
|
1258
|
+
# Cloud resources, a `binding` can also specify a `condition`, which is a
|
1259
|
+
# logical expression that allows access to a resource only if the expression
|
1260
|
+
# evaluates to `true`. A condition can add constraints based on attributes of
|
1261
|
+
# the request, the resource, or both. To learn which resources support
|
1262
|
+
# conditions in their IAM policies, see the [IAM documentation](https://cloud.
|
1263
|
+
# google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
|
1264
|
+
# bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
|
1265
|
+
# "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
|
1266
|
+
# serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
|
1267
|
+
# roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
|
1268
|
+
# ], "condition": ` "title": "expirable access", "description": "Does not grant
|
1269
|
+
# access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
|
1270
|
+
# 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
|
1271
|
+
# bindings: - members: - user:mike@example.com - group:admins@example.com -
|
1272
|
+
# domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
|
1273
|
+
# role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
|
1274
|
+
# com role: roles/resourcemanager.organizationViewer condition: title: expirable
|
1275
|
+
# access description: Does not grant access after Sep 2020 expression: request.
|
1276
|
+
# time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
|
1277
|
+
# a description of IAM and its features, see the [IAM documentation](https://
|
1278
|
+
# cloud.google.com/iam/docs/).
|
1279
|
+
class Policy
|
1280
|
+
include Google::Apis::Core::Hashable
|
1281
|
+
|
1282
|
+
# Specifies cloud audit logging configuration for this policy.
|
1283
|
+
# Corresponds to the JSON property `auditConfigs`
|
1284
|
+
# @return [Array<Google::Apis::GkebackupV1::AuditConfig>]
|
1285
|
+
attr_accessor :audit_configs
|
1286
|
+
|
1287
|
+
# Associates a list of `members`, or principals, with a `role`. Optionally, may
|
1288
|
+
# specify a `condition` that determines how and when the `bindings` are applied.
|
1289
|
+
# Each of the `bindings` must contain at least one principal. The `bindings` in
|
1290
|
+
# a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
|
1291
|
+
# can be Google groups. Each occurrence of a principal counts towards these
|
1292
|
+
# limits. For example, if the `bindings` grant 50 different roles to `user:alice@
|
1293
|
+
# example.com`, and not to any other principal, then you can add another 1,450
|
1294
|
+
# principals to the `bindings` in the `Policy`.
|
1295
|
+
# Corresponds to the JSON property `bindings`
|
1296
|
+
# @return [Array<Google::Apis::GkebackupV1::Binding>]
|
1297
|
+
attr_accessor :bindings
|
1298
|
+
|
1299
|
+
# `etag` is used for optimistic concurrency control as a way to help prevent
|
1300
|
+
# simultaneous updates of a policy from overwriting each other. It is strongly
|
1301
|
+
# suggested that systems make use of the `etag` in the read-modify-write cycle
|
1302
|
+
# to perform policy updates in order to avoid race conditions: An `etag` is
|
1303
|
+
# returned in the response to `getIamPolicy`, and systems are expected to put
|
1304
|
+
# that etag in the request to `setIamPolicy` to ensure that their change will be
|
1305
|
+
# applied to the same version of the policy. **Important:** If you use IAM
|
1306
|
+
# Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
|
1307
|
+
# If you omit this field, then IAM allows you to overwrite a version `3` policy
|
1308
|
+
# with a version `1` policy, and all of the conditions in the version `3` policy
|
1309
|
+
# are lost.
|
1310
|
+
# Corresponds to the JSON property `etag`
|
1311
|
+
# NOTE: Values are automatically base64 encoded/decoded in the client library.
|
1312
|
+
# @return [String]
|
1313
|
+
attr_accessor :etag
|
1314
|
+
|
1315
|
+
# Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
|
1316
|
+
# Requests that specify an invalid value are rejected. Any operation that
|
1317
|
+
# affects conditional role bindings must specify version `3`. This requirement
|
1318
|
+
# applies to the following operations: * Getting a policy that includes a
|
1319
|
+
# conditional role binding * Adding a conditional role binding to a policy *
|
1320
|
+
# Changing a conditional role binding in a policy * Removing any role binding,
|
1321
|
+
# with or without a condition, from a policy that includes conditions **
|
1322
|
+
# Important:** If you use IAM Conditions, you must include the `etag` field
|
1323
|
+
# whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
|
1324
|
+
# to overwrite a version `3` policy with a version `1` policy, and all of the
|
1325
|
+
# conditions in the version `3` policy are lost. If a policy does not include
|
1326
|
+
# any conditions, operations on that policy may specify any valid version or
|
1327
|
+
# leave the field unset. To learn which resources support conditions in their
|
1328
|
+
# IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
|
1329
|
+
# conditions/resource-policies).
|
1330
|
+
# Corresponds to the JSON property `version`
|
1331
|
+
# @return [Fixnum]
|
1332
|
+
attr_accessor :version
|
1333
|
+
|
1334
|
+
def initialize(**args)
|
1335
|
+
update!(**args)
|
1336
|
+
end
|
1337
|
+
|
1338
|
+
# Update properties of this object
|
1339
|
+
def update!(**args)
|
1340
|
+
@audit_configs = args[:audit_configs] if args.key?(:audit_configs)
|
1341
|
+
@bindings = args[:bindings] if args.key?(:bindings)
|
1342
|
+
@etag = args[:etag] if args.key?(:etag)
|
1343
|
+
@version = args[:version] if args.key?(:version)
|
1344
|
+
end
|
1345
|
+
end
|
1346
|
+
|
1347
|
+
# Represents both a request to Restore some portion of a Backup into a target
|
1348
|
+
# GKE cluster and a record of the restore operation itself. Next id: 18
|
1349
|
+
class Restore
|
1350
|
+
include Google::Apis::Core::Hashable
|
1351
|
+
|
1352
|
+
# Required. Immutable. The Backup used as the source from which this Restore
|
1353
|
+
# will restore. Note that this Backup must be a sub-resource of the RestorePlan'
|
1354
|
+
# s backup_plan. Format: projects/*/locations/*/backupPlans/*/backups/*.
|
1355
|
+
# Corresponds to the JSON property `backup`
|
1356
|
+
# @return [String]
|
1357
|
+
attr_accessor :backup
|
1358
|
+
|
1359
|
+
# Output only. The target cluster into which this Restore will restore data.
|
1360
|
+
# Possible formats: 1. projects/*/locations/*/clusters/* 2. projects/*/zones/*/
|
1361
|
+
# clusters/* Inherited from parent RestorePlan's cluster field.
|
1362
|
+
# Corresponds to the JSON property `cluster`
|
1363
|
+
# @return [String]
|
1364
|
+
attr_accessor :cluster
|
1365
|
+
|
1366
|
+
# Output only. When the restore operation either successfully completed or
|
1367
|
+
# failed.
|
1368
|
+
# Corresponds to the JSON property `completeTime`
|
1369
|
+
# @return [String]
|
1370
|
+
attr_accessor :complete_time
|
1371
|
+
|
1372
|
+
# Output only. [Output Only] The timestamp when this Restore resource was
|
1373
|
+
# created - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
1374
|
+
# rfc3339.txt)
|
1375
|
+
# Corresponds to the JSON property `createTime`
|
1376
|
+
# @return [String]
|
1377
|
+
attr_accessor :create_time
|
1378
|
+
|
1379
|
+
# User specified descriptive string for this Restore.
|
1380
|
+
# Corresponds to the JSON property `description`
|
1381
|
+
# @return [String]
|
1382
|
+
attr_accessor :description
|
1383
|
+
|
1384
|
+
# Output only. `etag` is used for optimistic concurrency control as a way to
|
1385
|
+
# help prevent simultaneous updates of a restore from overwriting each other. It
|
1386
|
+
# is strongly suggested that systems make use of the `etag` in the read-modify-
|
1387
|
+
# write cycle to perform restore updates in order to avoid race conditions: An `
|
1388
|
+
# etag` is returned in the response to `GetRestore`, and systems are expected to
|
1389
|
+
# put that etag in the request to `UpdateRestore` to ensure that their change
|
1390
|
+
# will be applied to the same version.
|
1391
|
+
# Corresponds to the JSON property `etag`
|
1392
|
+
# @return [String]
|
1393
|
+
attr_accessor :etag
|
1394
|
+
|
1395
|
+
# GCP Labels.
|
1396
|
+
# Corresponds to the JSON property `labels`
|
1397
|
+
# @return [Hash<String,String>]
|
1398
|
+
attr_accessor :labels
|
1399
|
+
|
1400
|
+
# Output only. The full name of the Restore resource. Format: projects/*/
|
1401
|
+
# locations/*/restorePlans/*/restores/*
|
1402
|
+
# Corresponds to the JSON property `name`
|
1403
|
+
# @return [String]
|
1404
|
+
attr_accessor :name
|
1405
|
+
|
1406
|
+
# Output only. Number of resources excluded in this restore action.
|
1407
|
+
# Corresponds to the JSON property `resourcesExcludedCount`
|
1408
|
+
# @return [Fixnum]
|
1409
|
+
attr_accessor :resources_excluded_count
|
1410
|
+
|
1411
|
+
# Output only. Number of resources failed to be restored in this restore action.
|
1412
|
+
# Corresponds to the JSON property `resourcesFailedCount`
|
1413
|
+
# @return [Fixnum]
|
1414
|
+
attr_accessor :resources_failed_count
|
1415
|
+
|
1416
|
+
# Output only. Number of resources restored in this restore action.
|
1417
|
+
# Corresponds to the JSON property `resourcesRestoredCount`
|
1418
|
+
# @return [Fixnum]
|
1419
|
+
attr_accessor :resources_restored_count
|
1420
|
+
|
1421
|
+
# Configuration of a restore. Next id: 9
|
1422
|
+
# Corresponds to the JSON property `restoreConfig`
|
1423
|
+
# @return [Google::Apis::GkebackupV1::RestoreConfig]
|
1424
|
+
attr_accessor :restore_config
|
1425
|
+
|
1426
|
+
# Output only. The current state of the Restore.
|
1427
|
+
# Corresponds to the JSON property `state`
|
1428
|
+
# @return [String]
|
1429
|
+
attr_accessor :state
|
1430
|
+
|
1431
|
+
# Output only. Human-readable description of why the Restore is in its current
|
1432
|
+
# state.
|
1433
|
+
# Corresponds to the JSON property `stateReason`
|
1434
|
+
# @return [String]
|
1435
|
+
attr_accessor :state_reason
|
1436
|
+
|
1437
|
+
# Output only. [Output Only] Server generated global unique identifier of [UUID](
|
1438
|
+
# https://en.wikipedia.org/wiki/Universally_unique_identifier) format.
|
1439
|
+
# Corresponds to the JSON property `uid`
|
1440
|
+
# @return [String]
|
1441
|
+
attr_accessor :uid
|
1442
|
+
|
1443
|
+
# Output only. [Output Only] The timestamp when this Restore resource was last
|
1444
|
+
# updated - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
1445
|
+
# rfc3339.txt)
|
1446
|
+
# Corresponds to the JSON property `updateTime`
|
1447
|
+
# @return [String]
|
1448
|
+
attr_accessor :update_time
|
1449
|
+
|
1450
|
+
# Output only. Number of volumes restored in this restore action.
|
1451
|
+
# Corresponds to the JSON property `volumesRestoredCount`
|
1452
|
+
# @return [Fixnum]
|
1453
|
+
attr_accessor :volumes_restored_count
|
1454
|
+
|
1455
|
+
def initialize(**args)
|
1456
|
+
update!(**args)
|
1457
|
+
end
|
1458
|
+
|
1459
|
+
# Update properties of this object
|
1460
|
+
def update!(**args)
|
1461
|
+
@backup = args[:backup] if args.key?(:backup)
|
1462
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
1463
|
+
@complete_time = args[:complete_time] if args.key?(:complete_time)
|
1464
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
1465
|
+
@description = args[:description] if args.key?(:description)
|
1466
|
+
@etag = args[:etag] if args.key?(:etag)
|
1467
|
+
@labels = args[:labels] if args.key?(:labels)
|
1468
|
+
@name = args[:name] if args.key?(:name)
|
1469
|
+
@resources_excluded_count = args[:resources_excluded_count] if args.key?(:resources_excluded_count)
|
1470
|
+
@resources_failed_count = args[:resources_failed_count] if args.key?(:resources_failed_count)
|
1471
|
+
@resources_restored_count = args[:resources_restored_count] if args.key?(:resources_restored_count)
|
1472
|
+
@restore_config = args[:restore_config] if args.key?(:restore_config)
|
1473
|
+
@state = args[:state] if args.key?(:state)
|
1474
|
+
@state_reason = args[:state_reason] if args.key?(:state_reason)
|
1475
|
+
@uid = args[:uid] if args.key?(:uid)
|
1476
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
1477
|
+
@volumes_restored_count = args[:volumes_restored_count] if args.key?(:volumes_restored_count)
|
1478
|
+
end
|
1479
|
+
end
|
1480
|
+
|
1481
|
+
# Configuration of a restore. Next id: 9
|
1482
|
+
class RestoreConfig
|
1483
|
+
include Google::Apis::Core::Hashable
|
1484
|
+
|
1485
|
+
# Restore all namespaced resources in the Backup if set to "True". Specifying
|
1486
|
+
# this field to "False" is an error.
|
1487
|
+
# Corresponds to the JSON property `allNamespaces`
|
1488
|
+
# @return [Boolean]
|
1489
|
+
attr_accessor :all_namespaces
|
1490
|
+
alias_method :all_namespaces?, :all_namespaces
|
1491
|
+
|
1492
|
+
# Defines the behavior for handling the situation where cluster-scoped resources
|
1493
|
+
# being restored already exist in the target cluster. This MUST be set to a
|
1494
|
+
# value other than CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED if
|
1495
|
+
# cluster_resource_restore_scope is not empty.
|
1496
|
+
# Corresponds to the JSON property `clusterResourceConflictPolicy`
|
1497
|
+
# @return [String]
|
1498
|
+
attr_accessor :cluster_resource_conflict_policy
|
1499
|
+
|
1500
|
+
# Identifies the cluster-scoped resources to restore from the Backup.
|
1501
|
+
# Corresponds to the JSON property `clusterResourceRestoreScope`
|
1502
|
+
# @return [Google::Apis::GkebackupV1::ClusterResourceRestoreScope]
|
1503
|
+
attr_accessor :cluster_resource_restore_scope
|
1504
|
+
|
1505
|
+
# Defines the behavior for handling the situation where sets of namespaced
|
1506
|
+
# resources being restored already exist in the target cluster. This MUST be set
|
1507
|
+
# to a value other than NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED if any
|
1508
|
+
# namespaced restoration is configured via namespaced_resource_restore_scope .
|
1509
|
+
# Corresponds to the JSON property `namespacedResourceRestoreMode`
|
1510
|
+
# @return [String]
|
1511
|
+
attr_accessor :namespaced_resource_restore_mode
|
1512
|
+
|
1513
|
+
# A list of namespaced Kubernetes resources.
|
1514
|
+
# Corresponds to the JSON property `selectedApplications`
|
1515
|
+
# @return [Google::Apis::GkebackupV1::NamespacedNames]
|
1516
|
+
attr_accessor :selected_applications
|
1517
|
+
|
1518
|
+
# A list of Kubernetes Namespaces
|
1519
|
+
# Corresponds to the JSON property `selectedNamespaces`
|
1520
|
+
# @return [Google::Apis::GkebackupV1::Namespaces]
|
1521
|
+
attr_accessor :selected_namespaces
|
1522
|
+
|
1523
|
+
# A list of transformation rules to be applied against Kubernetes resources as
|
1524
|
+
# they are selected for restoration from a Backup. Rules are executed in order
|
1525
|
+
# defined - this order matters, as changes made by a rule may impact the
|
1526
|
+
# filtering logic of subsequent rules. An empty list means no substitution will
|
1527
|
+
# occur.
|
1528
|
+
# Corresponds to the JSON property `substitutionRules`
|
1529
|
+
# @return [Array<Google::Apis::GkebackupV1::SubstitutionRule>]
|
1530
|
+
attr_accessor :substitution_rules
|
1531
|
+
|
1532
|
+
# Specifies the mechanism to be used to restore volume data. Default:
|
1533
|
+
# VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (will be treated as
|
1534
|
+
# NO_VOLUME_DATA_RESTORATION).
|
1535
|
+
# Corresponds to the JSON property `volumeDataRestorePolicy`
|
1536
|
+
# @return [String]
|
1537
|
+
attr_accessor :volume_data_restore_policy
|
1538
|
+
|
1539
|
+
def initialize(**args)
|
1540
|
+
update!(**args)
|
1541
|
+
end
|
1542
|
+
|
1543
|
+
# Update properties of this object
|
1544
|
+
def update!(**args)
|
1545
|
+
@all_namespaces = args[:all_namespaces] if args.key?(:all_namespaces)
|
1546
|
+
@cluster_resource_conflict_policy = args[:cluster_resource_conflict_policy] if args.key?(:cluster_resource_conflict_policy)
|
1547
|
+
@cluster_resource_restore_scope = args[:cluster_resource_restore_scope] if args.key?(:cluster_resource_restore_scope)
|
1548
|
+
@namespaced_resource_restore_mode = args[:namespaced_resource_restore_mode] if args.key?(:namespaced_resource_restore_mode)
|
1549
|
+
@selected_applications = args[:selected_applications] if args.key?(:selected_applications)
|
1550
|
+
@selected_namespaces = args[:selected_namespaces] if args.key?(:selected_namespaces)
|
1551
|
+
@substitution_rules = args[:substitution_rules] if args.key?(:substitution_rules)
|
1552
|
+
@volume_data_restore_policy = args[:volume_data_restore_policy] if args.key?(:volume_data_restore_policy)
|
1553
|
+
end
|
1554
|
+
end
|
1555
|
+
|
1556
|
+
# The configuration of a potential series of Restore operations to be performed
|
1557
|
+
# against Backups belong to a particular BackupPlan. Next id: 11
|
1558
|
+
class RestorePlan
|
1559
|
+
include Google::Apis::Core::Hashable
|
1560
|
+
|
1561
|
+
# Required. Immutable. The BackupPlan from which Backups may be used as the
|
1562
|
+
# source for Restores created via this RestorePlan. Format: projects/*/locations/
|
1563
|
+
# */backupPlans/*.
|
1564
|
+
# Corresponds to the JSON property `backupPlan`
|
1565
|
+
# @return [String]
|
1566
|
+
attr_accessor :backup_plan
|
1567
|
+
|
1568
|
+
# Required. Immutable. The target cluster into which Restores created via this
|
1569
|
+
# RestorePlan will restore data. NOTE: the cluster's region must be the same as
|
1570
|
+
# the RestorePlan. Possible formats: 1. projects/*/locations/*/clusters/* 2.
|
1571
|
+
# projects/*/zones/*/clusters/*
|
1572
|
+
# Corresponds to the JSON property `cluster`
|
1573
|
+
# @return [String]
|
1574
|
+
attr_accessor :cluster
|
1575
|
+
|
1576
|
+
# Output only. [Output Only] The timestamp when this RestorePlan resource was
|
1577
|
+
# created - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
1578
|
+
# rfc3339.txt)
|
1579
|
+
# Corresponds to the JSON property `createTime`
|
1580
|
+
# @return [String]
|
1581
|
+
attr_accessor :create_time
|
1582
|
+
|
1583
|
+
# User specified descriptive string for this RestorePlan.
|
1584
|
+
# Corresponds to the JSON property `description`
|
1585
|
+
# @return [String]
|
1586
|
+
attr_accessor :description
|
1587
|
+
|
1588
|
+
# Output only. `etag` is used for optimistic concurrency control as a way to
|
1589
|
+
# help prevent simultaneous updates of a restore from overwriting each other. It
|
1590
|
+
# is strongly suggested that systems make use of the `etag` in the read-modify-
|
1591
|
+
# write cycle to perform restore updates in order to avoid race conditions: An `
|
1592
|
+
# etag` is returned in the response to `GetRestorePlan`, and systems are
|
1593
|
+
# expected to put that etag in the request to `UpdateRestorePlan` to ensure that
|
1594
|
+
# their change will be applied to the same version.
|
1595
|
+
# Corresponds to the JSON property `etag`
|
1596
|
+
# @return [String]
|
1597
|
+
attr_accessor :etag
|
1598
|
+
|
1599
|
+
# A set of custom labels supplied by user.
|
1600
|
+
# Corresponds to the JSON property `labels`
|
1601
|
+
# @return [Hash<String,String>]
|
1602
|
+
attr_accessor :labels
|
1603
|
+
|
1604
|
+
# Output only. [Output Only] The full name of the RestorePlan resource. Format:
|
1605
|
+
# projects/*/locations/*/restorePlans/*
|
1606
|
+
# Corresponds to the JSON property `name`
|
1607
|
+
# @return [String]
|
1608
|
+
attr_accessor :name
|
1609
|
+
|
1610
|
+
# Configuration of a restore. Next id: 9
|
1611
|
+
# Corresponds to the JSON property `restoreConfig`
|
1612
|
+
# @return [Google::Apis::GkebackupV1::RestoreConfig]
|
1613
|
+
attr_accessor :restore_config
|
1614
|
+
|
1615
|
+
# Output only. [Output Only] Server generated global unique identifier of [UUID](
|
1616
|
+
# https://en.wikipedia.org/wiki/Universally_unique_identifier) format.
|
1617
|
+
# Corresponds to the JSON property `uid`
|
1618
|
+
# @return [String]
|
1619
|
+
attr_accessor :uid
|
1620
|
+
|
1621
|
+
# Output only. [Output Only] The timestamp when this RestorePlan resource was
|
1622
|
+
# last updated - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
1623
|
+
# rfc3339.txt)
|
1624
|
+
# Corresponds to the JSON property `updateTime`
|
1625
|
+
# @return [String]
|
1626
|
+
attr_accessor :update_time
|
1627
|
+
|
1628
|
+
def initialize(**args)
|
1629
|
+
update!(**args)
|
1630
|
+
end
|
1631
|
+
|
1632
|
+
# Update properties of this object
|
1633
|
+
def update!(**args)
|
1634
|
+
@backup_plan = args[:backup_plan] if args.key?(:backup_plan)
|
1635
|
+
@cluster = args[:cluster] if args.key?(:cluster)
|
1636
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
1637
|
+
@description = args[:description] if args.key?(:description)
|
1638
|
+
@etag = args[:etag] if args.key?(:etag)
|
1639
|
+
@labels = args[:labels] if args.key?(:labels)
|
1640
|
+
@name = args[:name] if args.key?(:name)
|
1641
|
+
@restore_config = args[:restore_config] if args.key?(:restore_config)
|
1642
|
+
@uid = args[:uid] if args.key?(:uid)
|
1643
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
1644
|
+
end
|
1645
|
+
end
|
1646
|
+
|
1647
|
+
# RentionPolicy is an inner message type to define: 1. Minimum age for Backups
|
1648
|
+
# created via this BackupPlan - deletion (either manual or automatic) of Backups
|
1649
|
+
# younger than this age will be blocked 2. Default maximum age of Backups
|
1650
|
+
# created via this BackupPlan, after which automatic deletion will occur 3. Lock
|
1651
|
+
# to disallow any changes to any RetentionPolicy settings
|
1652
|
+
class RetentionPolicy
|
1653
|
+
include Google::Apis::Core::Hashable
|
1654
|
+
|
1655
|
+
# Minimum age for Backups created via this BackupPlan (in days). This field MUST
|
1656
|
+
# be an integer value between 0-90(inclusive). A Backup created under this
|
1657
|
+
# BackupPlan will NOT be deletable until it reaches Backup's create_time +
|
1658
|
+
# backup_delete_lock_days. Updating this field of a BackupPlan does NOT affect
|
1659
|
+
# existing Backups under it. Backups created AFTER a successful update will
|
1660
|
+
# inherit the new value. Default: 0 (no delete blocking)
|
1661
|
+
# Corresponds to the JSON property `backupDeleteLockDays`
|
1662
|
+
# @return [Fixnum]
|
1663
|
+
attr_accessor :backup_delete_lock_days
|
1664
|
+
|
1665
|
+
# The default maximum age of a Backup created via this BackupPlan. This field
|
1666
|
+
# MUST be an integer value >= 0. If specified, a Backup created under this
|
1667
|
+
# BackupPlan will be automatically deleted after its age reaches create_time +
|
1668
|
+
# backup_retain_days. If not specified, Backups created under this BackupPlan
|
1669
|
+
# will NOT be subject to automatic deletion. Updating this field does NOT affect
|
1670
|
+
# existing Backups under it. Backups created AFTER a successful update will
|
1671
|
+
# automatically pick up the new value. NOTE: Specifying a backup_retain_days
|
1672
|
+
# smaller than backup_delete_lock_days at creation/updating time will be
|
1673
|
+
# considered as invalid, and the request will be rejected immediately. Default:
|
1674
|
+
# 0 (no automatic deletion)
|
1675
|
+
# Corresponds to the JSON property `backupRetainDays`
|
1676
|
+
# @return [Fixnum]
|
1677
|
+
attr_accessor :backup_retain_days
|
1678
|
+
|
1679
|
+
# This flag denotes whether the retention policy of this BackupPlan is locked.
|
1680
|
+
# If set to True, no further update is allowed on this policy, including the `
|
1681
|
+
# locked` field itself. Default: False
|
1682
|
+
# Corresponds to the JSON property `locked`
|
1683
|
+
# @return [Boolean]
|
1684
|
+
attr_accessor :locked
|
1685
|
+
alias_method :locked?, :locked
|
1686
|
+
|
1687
|
+
def initialize(**args)
|
1688
|
+
update!(**args)
|
1689
|
+
end
|
1690
|
+
|
1691
|
+
# Update properties of this object
|
1692
|
+
def update!(**args)
|
1693
|
+
@backup_delete_lock_days = args[:backup_delete_lock_days] if args.key?(:backup_delete_lock_days)
|
1694
|
+
@backup_retain_days = args[:backup_retain_days] if args.key?(:backup_retain_days)
|
1695
|
+
@locked = args[:locked] if args.key?(:locked)
|
1696
|
+
end
|
1697
|
+
end
|
1698
|
+
|
1699
|
+
# Schedule defines scheduling parameters for automatically creating Backups via
|
1700
|
+
# this BackupPlan.
|
1701
|
+
class Schedule
|
1702
|
+
include Google::Apis::Core::Hashable
|
1703
|
+
|
1704
|
+
# A standard cron-style string that defines a repeating schedule for creating
|
1705
|
+
# Backups via this BackupPlan.
|
1706
|
+
# Corresponds to the JSON property `cronSchedule`
|
1707
|
+
# @return [String]
|
1708
|
+
attr_accessor :cron_schedule
|
1709
|
+
|
1710
|
+
# This flag denotes whether automatic Backup creation is paused for this
|
1711
|
+
# BackupPlan. Default: False
|
1712
|
+
# Corresponds to the JSON property `paused`
|
1713
|
+
# @return [Boolean]
|
1714
|
+
attr_accessor :paused
|
1715
|
+
alias_method :paused?, :paused
|
1716
|
+
|
1717
|
+
def initialize(**args)
|
1718
|
+
update!(**args)
|
1719
|
+
end
|
1720
|
+
|
1721
|
+
# Update properties of this object
|
1722
|
+
def update!(**args)
|
1723
|
+
@cron_schedule = args[:cron_schedule] if args.key?(:cron_schedule)
|
1724
|
+
@paused = args[:paused] if args.key?(:paused)
|
1725
|
+
end
|
1726
|
+
end
|
1727
|
+
|
1728
|
+
# Request message for `SetIamPolicy` method.
|
1729
|
+
class SetIamPolicyRequest
|
1730
|
+
include Google::Apis::Core::Hashable
|
1731
|
+
|
1732
|
+
# An Identity and Access Management (IAM) policy, which specifies access
|
1733
|
+
# controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
|
1734
|
+
# A `binding` binds one or more `members`, or principals, to a single `role`.
|
1735
|
+
# Principals can be user accounts, service accounts, Google groups, and domains (
|
1736
|
+
# such as G Suite). A `role` is a named list of permissions; each `role` can be
|
1737
|
+
# an IAM predefined role or a user-created custom role. For some types of Google
|
1738
|
+
# Cloud resources, a `binding` can also specify a `condition`, which is a
|
1739
|
+
# logical expression that allows access to a resource only if the expression
|
1740
|
+
# evaluates to `true`. A condition can add constraints based on attributes of
|
1741
|
+
# the request, the resource, or both. To learn which resources support
|
1742
|
+
# conditions in their IAM policies, see the [IAM documentation](https://cloud.
|
1743
|
+
# google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
|
1744
|
+
# bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
|
1745
|
+
# "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
|
1746
|
+
# serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
|
1747
|
+
# roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
|
1748
|
+
# ], "condition": ` "title": "expirable access", "description": "Does not grant
|
1749
|
+
# access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
|
1750
|
+
# 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
|
1751
|
+
# bindings: - members: - user:mike@example.com - group:admins@example.com -
|
1752
|
+
# domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
|
1753
|
+
# role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
|
1754
|
+
# com role: roles/resourcemanager.organizationViewer condition: title: expirable
|
1755
|
+
# access description: Does not grant access after Sep 2020 expression: request.
|
1756
|
+
# time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
|
1757
|
+
# a description of IAM and its features, see the [IAM documentation](https://
|
1758
|
+
# cloud.google.com/iam/docs/).
|
1759
|
+
# Corresponds to the JSON property `policy`
|
1760
|
+
# @return [Google::Apis::GkebackupV1::Policy]
|
1761
|
+
attr_accessor :policy
|
1762
|
+
|
1763
|
+
# OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
|
1764
|
+
# the fields in the mask will be modified. If no mask is provided, the following
|
1765
|
+
# default mask is used: `paths: "bindings, etag"`
|
1766
|
+
# Corresponds to the JSON property `updateMask`
|
1767
|
+
# @return [String]
|
1768
|
+
attr_accessor :update_mask
|
1769
|
+
|
1770
|
+
def initialize(**args)
|
1771
|
+
update!(**args)
|
1772
|
+
end
|
1773
|
+
|
1774
|
+
# Update properties of this object
|
1775
|
+
def update!(**args)
|
1776
|
+
@policy = args[:policy] if args.key?(:policy)
|
1777
|
+
@update_mask = args[:update_mask] if args.key?(:update_mask)
|
1778
|
+
end
|
1779
|
+
end
|
1780
|
+
|
1781
|
+
# A transformation rule to be applied against Kubernetes resources as they are
|
1782
|
+
# selected for restoration from a Backup. A rule contains both filtering logic (
|
1783
|
+
# which resources are subject to substitution) and substitution logic.
|
1784
|
+
class SubstitutionRule
|
1785
|
+
include Google::Apis::Core::Hashable
|
1786
|
+
|
1787
|
+
# This is the new value to set for any fields that pass the filtering and
|
1788
|
+
# selection criteria. To remove a value from a Kubernetes resource, either leave
|
1789
|
+
# this field unspecified, or set it to the empty string ("").
|
1790
|
+
# Corresponds to the JSON property `newValue`
|
1791
|
+
# @return [String]
|
1792
|
+
attr_accessor :new_value
|
1793
|
+
|
1794
|
+
# (Filtering parameter) This is a [regular expression] (https://en.wikipedia.org/
|
1795
|
+
# wiki/Regular_expression) that is compared against the fields matched by the
|
1796
|
+
# target_json_path expression (and must also have passed the previous filters).
|
1797
|
+
# Substitution will not be performed against fields whose value does not match
|
1798
|
+
# this expression. If this field is NOT specified, then ALL fields matched by
|
1799
|
+
# the target_json_path expression will undergo substitution. Note that an empty (
|
1800
|
+
# e.g., "", rather than unspecified) value for for this field will only match
|
1801
|
+
# empty fields.
|
1802
|
+
# Corresponds to the JSON property `originalValuePattern`
|
1803
|
+
# @return [String]
|
1804
|
+
attr_accessor :original_value_pattern
|
1805
|
+
|
1806
|
+
# (Filtering parameter) Any resource subject to substitution must belong to one
|
1807
|
+
# of the listed "types". If this field is not provided, no type filtering will
|
1808
|
+
# be performed (all resources of all types matching previous filtering
|
1809
|
+
# parameters will be candidates for substitution).
|
1810
|
+
# Corresponds to the JSON property `targetGroupKinds`
|
1811
|
+
# @return [Array<Google::Apis::GkebackupV1::GroupKind>]
|
1812
|
+
attr_accessor :target_group_kinds
|
1813
|
+
|
1814
|
+
# Required. This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/
|
1815
|
+
# jsonpath/) expression that matches specific fields of candidate resources and
|
1816
|
+
# it operates as both a filtering parameter (resources that are not matched with
|
1817
|
+
# this expression will not be candidates for substitution) as well as a field
|
1818
|
+
# identifier (identifies exactly which fields out of the candidate resources
|
1819
|
+
# will be modified).
|
1820
|
+
# Corresponds to the JSON property `targetJsonPath`
|
1821
|
+
# @return [String]
|
1822
|
+
attr_accessor :target_json_path
|
1823
|
+
|
1824
|
+
# (Filtering parameter) Any resource subject to substitution must be contained
|
1825
|
+
# within one of the listed Kubernetes Namespace in the Backup. If this field is
|
1826
|
+
# not provided, no namespace filtering will be performed (all resources in all
|
1827
|
+
# Namespaces, including all cluster-scoped resources, will be candidates for
|
1828
|
+
# substitution). To mix cluster-scoped and namespaced resources in the same rule,
|
1829
|
+
# use an empty string ("") as one of the target namespaces.
|
1830
|
+
# Corresponds to the JSON property `targetNamespaces`
|
1831
|
+
# @return [Array<String>]
|
1832
|
+
attr_accessor :target_namespaces
|
1833
|
+
|
1834
|
+
def initialize(**args)
|
1835
|
+
update!(**args)
|
1836
|
+
end
|
1837
|
+
|
1838
|
+
# Update properties of this object
|
1839
|
+
def update!(**args)
|
1840
|
+
@new_value = args[:new_value] if args.key?(:new_value)
|
1841
|
+
@original_value_pattern = args[:original_value_pattern] if args.key?(:original_value_pattern)
|
1842
|
+
@target_group_kinds = args[:target_group_kinds] if args.key?(:target_group_kinds)
|
1843
|
+
@target_json_path = args[:target_json_path] if args.key?(:target_json_path)
|
1844
|
+
@target_namespaces = args[:target_namespaces] if args.key?(:target_namespaces)
|
1845
|
+
end
|
1846
|
+
end
|
1847
|
+
|
1848
|
+
# Request message for `TestIamPermissions` method.
|
1849
|
+
class TestIamPermissionsRequest
|
1850
|
+
include Google::Apis::Core::Hashable
|
1851
|
+
|
1852
|
+
# The set of permissions to check for the `resource`. Permissions with wildcards
|
1853
|
+
# (such as '*' or 'storage.*') are not allowed. For more information see [IAM
|
1854
|
+
# Overview](https://cloud.google.com/iam/docs/overview#permissions).
|
1855
|
+
# Corresponds to the JSON property `permissions`
|
1856
|
+
# @return [Array<String>]
|
1857
|
+
attr_accessor :permissions
|
1858
|
+
|
1859
|
+
def initialize(**args)
|
1860
|
+
update!(**args)
|
1861
|
+
end
|
1862
|
+
|
1863
|
+
# Update properties of this object
|
1864
|
+
def update!(**args)
|
1865
|
+
@permissions = args[:permissions] if args.key?(:permissions)
|
1866
|
+
end
|
1867
|
+
end
|
1868
|
+
|
1869
|
+
# Response message for `TestIamPermissions` method.
|
1870
|
+
class TestIamPermissionsResponse
|
1871
|
+
include Google::Apis::Core::Hashable
|
1872
|
+
|
1873
|
+
# A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
|
1874
|
+
# Corresponds to the JSON property `permissions`
|
1875
|
+
# @return [Array<String>]
|
1876
|
+
attr_accessor :permissions
|
1877
|
+
|
1878
|
+
def initialize(**args)
|
1879
|
+
update!(**args)
|
1880
|
+
end
|
1881
|
+
|
1882
|
+
# Update properties of this object
|
1883
|
+
def update!(**args)
|
1884
|
+
@permissions = args[:permissions] if args.key?(:permissions)
|
1885
|
+
end
|
1886
|
+
end
|
1887
|
+
|
1888
|
+
# Represents the backup of a specific persistent volume as a component of a
|
1889
|
+
# Backup - both the record of the operation and a pointer to the underlying
|
1890
|
+
# storage-specific artifacts. Next id: 14
|
1891
|
+
class VolumeBackup
|
1892
|
+
include Google::Apis::Core::Hashable
|
1893
|
+
|
1894
|
+
# Output only. [Output Only] The timestamp when the associated underlying volume
|
1895
|
+
# backup operation completes - can be converted to and from [RFC3339](https://
|
1896
|
+
# www.ietf.org/rfc/rfc3339.txt)
|
1897
|
+
# Corresponds to the JSON property `completeTime`
|
1898
|
+
# @return [String]
|
1899
|
+
attr_accessor :complete_time
|
1900
|
+
|
1901
|
+
# Output only. [Output Only] The timestamp when this VolumeBackup resource was
|
1902
|
+
# created - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
1903
|
+
# rfc3339.txt)
|
1904
|
+
# Corresponds to the JSON property `createTime`
|
1905
|
+
# @return [String]
|
1906
|
+
attr_accessor :create_time
|
1907
|
+
|
1908
|
+
# Output only. The minimum size of the disk to which this VolumeBackup can be
|
1909
|
+
# restored.
|
1910
|
+
# Corresponds to the JSON property `diskSizeBytes`
|
1911
|
+
# @return [Fixnum]
|
1912
|
+
attr_accessor :disk_size_bytes
|
1913
|
+
|
1914
|
+
# Output only. `etag` is used for optimistic concurrency control as a way to
|
1915
|
+
# help prevent simultaneous updates of a volume backup from overwriting each
|
1916
|
+
# other. It is strongly suggested that systems make use of the `etag` in the
|
1917
|
+
# read-modify-write cycle to perform volume backup updates in order to avoid
|
1918
|
+
# race conditions: An `etag` is returned in the response to `GetVolumeBackup',
|
1919
|
+
# and systems are expected to put that etag in the request to `
|
1920
|
+
# UpdateVolumeBackup` to ensure that their change will be applied to the same
|
1921
|
+
# version.
|
1922
|
+
# Corresponds to the JSON property `etag`
|
1923
|
+
# @return [String]
|
1924
|
+
attr_accessor :etag
|
1925
|
+
|
1926
|
+
# Output only. The format used for the volume backup.
|
1927
|
+
# Corresponds to the JSON property `format`
|
1928
|
+
# @return [String]
|
1929
|
+
attr_accessor :format
|
1930
|
+
|
1931
|
+
# Output only. [Output Only] The full name of the VolumeBackup resource. Format:
|
1932
|
+
# projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/* Note that the
|
1933
|
+
# last segment of the name will have the format: 'pvc-'.
|
1934
|
+
# Corresponds to the JSON property `name`
|
1935
|
+
# @return [String]
|
1936
|
+
attr_accessor :name
|
1937
|
+
|
1938
|
+
# A reference to a namespaced resource in Kubernetes.
|
1939
|
+
# Corresponds to the JSON property `sourcePvc`
|
1940
|
+
# @return [Google::Apis::GkebackupV1::NamespacedName]
|
1941
|
+
attr_accessor :source_pvc
|
1942
|
+
|
1943
|
+
# Output only. The current state of this VolumeBackup.
|
1944
|
+
# Corresponds to the JSON property `state`
|
1945
|
+
# @return [String]
|
1946
|
+
attr_accessor :state
|
1947
|
+
|
1948
|
+
# Output only. A human readable message explaining why the VolumeBackup is in
|
1949
|
+
# its current state.
|
1950
|
+
# Corresponds to the JSON property `stateMessage`
|
1951
|
+
# @return [String]
|
1952
|
+
attr_accessor :state_message
|
1953
|
+
|
1954
|
+
# Output only. The aggregate size of the underlying artifacts associated with
|
1955
|
+
# this VolumeBackup in the backup storage. This may change over time when
|
1956
|
+
# multiple backups of the same volume share the same backup storage location. In
|
1957
|
+
# particular, this is likely to increase in size when the immediately preceding
|
1958
|
+
# backup of the same volume is deleted.
|
1959
|
+
# Corresponds to the JSON property `storageBytes`
|
1960
|
+
# @return [Fixnum]
|
1961
|
+
attr_accessor :storage_bytes
|
1962
|
+
|
1963
|
+
# Output only. [Output Only] Server generated global unique identifier of [UUID](
|
1964
|
+
# https://en.wikipedia.org/wiki/Universally_unique_identifier) format.
|
1965
|
+
# Corresponds to the JSON property `uid`
|
1966
|
+
# @return [String]
|
1967
|
+
attr_accessor :uid
|
1968
|
+
|
1969
|
+
# Output only. [Output Only] The timestamp when this VolumeBackup resource was
|
1970
|
+
# last updated - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
1971
|
+
# rfc3339.txt)
|
1972
|
+
# Corresponds to the JSON property `updateTime`
|
1973
|
+
# @return [String]
|
1974
|
+
attr_accessor :update_time
|
1975
|
+
|
1976
|
+
# Output only. A storage system-specific opaque handle to the underlying volume
|
1977
|
+
# backup. This field is interpreted by the volume backup and restore drivers
|
1978
|
+
# running in the GKE cluster and not by the service.
|
1979
|
+
# Corresponds to the JSON property `volumeBackupHandle`
|
1980
|
+
# @return [String]
|
1981
|
+
attr_accessor :volume_backup_handle
|
1982
|
+
|
1983
|
+
def initialize(**args)
|
1984
|
+
update!(**args)
|
1985
|
+
end
|
1986
|
+
|
1987
|
+
# Update properties of this object
|
1988
|
+
def update!(**args)
|
1989
|
+
@complete_time = args[:complete_time] if args.key?(:complete_time)
|
1990
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
1991
|
+
@disk_size_bytes = args[:disk_size_bytes] if args.key?(:disk_size_bytes)
|
1992
|
+
@etag = args[:etag] if args.key?(:etag)
|
1993
|
+
@format = args[:format] if args.key?(:format)
|
1994
|
+
@name = args[:name] if args.key?(:name)
|
1995
|
+
@source_pvc = args[:source_pvc] if args.key?(:source_pvc)
|
1996
|
+
@state = args[:state] if args.key?(:state)
|
1997
|
+
@state_message = args[:state_message] if args.key?(:state_message)
|
1998
|
+
@storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
|
1999
|
+
@uid = args[:uid] if args.key?(:uid)
|
2000
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
2001
|
+
@volume_backup_handle = args[:volume_backup_handle] if args.key?(:volume_backup_handle)
|
2002
|
+
end
|
2003
|
+
end
|
2004
|
+
|
2005
|
+
# Represents the operation of restoring a volume from a VolumeBackup. Next id:
|
2006
|
+
# 13
|
2007
|
+
class VolumeRestore
|
2008
|
+
include Google::Apis::Core::Hashable
|
2009
|
+
|
2010
|
+
# Output only. [Output Only] The timestamp when the associated underlying volume
|
2011
|
+
# restoration completed - can be converted to and from [RFC3339](https://www.
|
2012
|
+
# ietf.org/rfc/rfc3339.txt)
|
2013
|
+
# Corresponds to the JSON property `completeTime`
|
2014
|
+
# @return [String]
|
2015
|
+
attr_accessor :complete_time
|
2016
|
+
|
2017
|
+
# Output only. [Output Only] The timestamp when this VolumeRestore resource was
|
2018
|
+
# created - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
2019
|
+
# rfc3339.txt)
|
2020
|
+
# Corresponds to the JSON property `createTime`
|
2021
|
+
# @return [String]
|
2022
|
+
attr_accessor :create_time
|
2023
|
+
|
2024
|
+
# Output only. `etag` is used for optimistic concurrency control as a way to
|
2025
|
+
# help prevent simultaneous updates of a volume restore from overwriting each
|
2026
|
+
# other. It is strongly suggested that systems make use of the `etag` in the
|
2027
|
+
# read-modify-write cycle to perform volume restore updates in order to avoid
|
2028
|
+
# race conditions: An `etag` is returned in the response to `GetVolumeRestore',
|
2029
|
+
# and systems are expected to put that etag in the request to `
|
2030
|
+
# UpdateVolumeRestore` to ensure that their change will be applied to the same
|
2031
|
+
# version.
|
2032
|
+
# Corresponds to the JSON property `etag`
|
2033
|
+
# @return [String]
|
2034
|
+
attr_accessor :etag
|
2035
|
+
|
2036
|
+
# Output only. Full name of the VolumeRestore resource. Format: projects/*/
|
2037
|
+
# locations/*/restorePlans/*/restores/*/volumeRestores/* Note that the last
|
2038
|
+
# segment of the name will have the format: 'pvc-'.
|
2039
|
+
# Corresponds to the JSON property `name`
|
2040
|
+
# @return [String]
|
2041
|
+
attr_accessor :name
|
2042
|
+
|
2043
|
+
# Output only. The current state of this VolumeRestore
|
2044
|
+
# Corresponds to the JSON property `state`
|
2045
|
+
# @return [String]
|
2046
|
+
attr_accessor :state
|
2047
|
+
|
2048
|
+
# Output only. A human readable message explaining why the VolumeRestore is in
|
2049
|
+
# its current state.
|
2050
|
+
# Corresponds to the JSON property `stateMessage`
|
2051
|
+
# @return [String]
|
2052
|
+
attr_accessor :state_message
|
2053
|
+
|
2054
|
+
# A reference to a namespaced resource in Kubernetes.
|
2055
|
+
# Corresponds to the JSON property `targetPvc`
|
2056
|
+
# @return [Google::Apis::GkebackupV1::NamespacedName]
|
2057
|
+
attr_accessor :target_pvc
|
2058
|
+
|
2059
|
+
# Output only. [Output Only] Server generated global unique identifier of [UUID](
|
2060
|
+
# https://en.wikipedia.org/wiki/Universally_unique_identifier) format.
|
2061
|
+
# Corresponds to the JSON property `uid`
|
2062
|
+
# @return [String]
|
2063
|
+
attr_accessor :uid
|
2064
|
+
|
2065
|
+
# Output only. [Output Only] The timestamp when this VolumeRestore resource was
|
2066
|
+
# last updated - can be converted to and from [RFC3339](https://www.ietf.org/rfc/
|
2067
|
+
# rfc3339.txt)
|
2068
|
+
# Corresponds to the JSON property `updateTime`
|
2069
|
+
# @return [String]
|
2070
|
+
attr_accessor :update_time
|
2071
|
+
|
2072
|
+
# Output only. The full name of the VolumeBackup from which the volume will be
|
2073
|
+
# restored. Format: projects/*/locations/*/backupPlans/*/backups/*/volumeBackups/
|
2074
|
+
# *
|
2075
|
+
# Corresponds to the JSON property `volumeBackup`
|
2076
|
+
# @return [String]
|
2077
|
+
attr_accessor :volume_backup
|
2078
|
+
|
2079
|
+
# Output only. A storage system-specific opaque handler to the underlying volume
|
2080
|
+
# created for the target PVC from the volume backup. This field is interpreted
|
2081
|
+
# by the volume backup and restore drivers running in the GKE cluster and not by
|
2082
|
+
# the service.
|
2083
|
+
# Corresponds to the JSON property `volumeHandle`
|
2084
|
+
# @return [String]
|
2085
|
+
attr_accessor :volume_handle
|
2086
|
+
|
2087
|
+
# Output only. The type of volume provisioned
|
2088
|
+
# Corresponds to the JSON property `volumeType`
|
2089
|
+
# @return [String]
|
2090
|
+
attr_accessor :volume_type
|
2091
|
+
|
2092
|
+
def initialize(**args)
|
2093
|
+
update!(**args)
|
2094
|
+
end
|
2095
|
+
|
2096
|
+
# Update properties of this object
|
2097
|
+
def update!(**args)
|
2098
|
+
@complete_time = args[:complete_time] if args.key?(:complete_time)
|
2099
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
2100
|
+
@etag = args[:etag] if args.key?(:etag)
|
2101
|
+
@name = args[:name] if args.key?(:name)
|
2102
|
+
@state = args[:state] if args.key?(:state)
|
2103
|
+
@state_message = args[:state_message] if args.key?(:state_message)
|
2104
|
+
@target_pvc = args[:target_pvc] if args.key?(:target_pvc)
|
2105
|
+
@uid = args[:uid] if args.key?(:uid)
|
2106
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
2107
|
+
@volume_backup = args[:volume_backup] if args.key?(:volume_backup)
|
2108
|
+
@volume_handle = args[:volume_handle] if args.key?(:volume_handle)
|
2109
|
+
@volume_type = args[:volume_type] if args.key?(:volume_type)
|
2110
|
+
end
|
2111
|
+
end
|
2112
|
+
end
|
2113
|
+
end
|
2114
|
+
end
|