google-apis-config_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2045 @@
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 ConfigV1
24
+
25
+ # Outputs and artifacts from applying a deployment.
26
+ class ApplyResults
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Location of artifacts (e.g. logs) in Google Cloud Storage. Format: `gs://`
30
+ # bucket`/`object``
31
+ # Corresponds to the JSON property `artifacts`
32
+ # @return [String]
33
+ attr_accessor :artifacts
34
+
35
+ # Location of a blueprint copy and other manifests in Google Cloud Storage.
36
+ # Format: `gs://`bucket`/`object``
37
+ # Corresponds to the JSON property `content`
38
+ # @return [String]
39
+ attr_accessor :content
40
+
41
+ # Map of output name to output info.
42
+ # Corresponds to the JSON property `outputs`
43
+ # @return [Hash<String,Google::Apis::ConfigV1::TerraformOutput>]
44
+ attr_accessor :outputs
45
+
46
+ def initialize(**args)
47
+ update!(**args)
48
+ end
49
+
50
+ # Update properties of this object
51
+ def update!(**args)
52
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
53
+ @content = args[:content] if args.key?(:content)
54
+ @outputs = args[:outputs] if args.key?(:outputs)
55
+ end
56
+ end
57
+
58
+ # Specifies the audit configuration for a service. The configuration determines
59
+ # which permission types are logged, and what identities, if any, are exempted
60
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
61
+ # are AuditConfigs for both `allServices` and a specific service, the union of
62
+ # the two AuditConfigs is used for that service: the log_types specified in each
63
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
64
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
65
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
66
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
67
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
68
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
69
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
70
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
71
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
72
+ # from DATA_WRITE logging.
73
+ class AuditConfig
74
+ include Google::Apis::Core::Hashable
75
+
76
+ # The configuration for logging of each type of permission.
77
+ # Corresponds to the JSON property `auditLogConfigs`
78
+ # @return [Array<Google::Apis::ConfigV1::AuditLogConfig>]
79
+ attr_accessor :audit_log_configs
80
+
81
+ # Specifies a service that will be enabled for audit logging. For example, `
82
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
83
+ # value that covers all services.
84
+ # Corresponds to the JSON property `service`
85
+ # @return [String]
86
+ attr_accessor :service
87
+
88
+ def initialize(**args)
89
+ update!(**args)
90
+ end
91
+
92
+ # Update properties of this object
93
+ def update!(**args)
94
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
95
+ @service = args[:service] if args.key?(:service)
96
+ end
97
+ end
98
+
99
+ # Provides the configuration for logging a type of permissions. Example: ` "
100
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
101
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
102
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
103
+ # DATA_READ logging.
104
+ class AuditLogConfig
105
+ include Google::Apis::Core::Hashable
106
+
107
+ # Specifies the identities that do not cause logging for this type of permission.
108
+ # Follows the same format of Binding.members.
109
+ # Corresponds to the JSON property `exemptedMembers`
110
+ # @return [Array<String>]
111
+ attr_accessor :exempted_members
112
+
113
+ # The log type that this config enables.
114
+ # Corresponds to the JSON property `logType`
115
+ # @return [String]
116
+ attr_accessor :log_type
117
+
118
+ def initialize(**args)
119
+ update!(**args)
120
+ end
121
+
122
+ # Update properties of this object
123
+ def update!(**args)
124
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
125
+ @log_type = args[:log_type] if args.key?(:log_type)
126
+ end
127
+ end
128
+
129
+ # Associates `members`, or principals, with a `role`.
130
+ class Binding
131
+ include Google::Apis::Core::Hashable
132
+
133
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
134
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
135
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
136
+ # "Summary size limit" description: "Determines if a summary is less than 100
137
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
138
+ # Requestor is owner" description: "Determines if requestor is the document
139
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
140
+ # Logic): title: "Public documents" description: "Determine whether the document
141
+ # should be publicly visible" expression: "document.type != 'private' &&
142
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
143
+ # string" description: "Create a notification string with a timestamp."
144
+ # expression: "'New message received at ' + string(document.create_time)" The
145
+ # exact variables and functions that may be referenced within an expression are
146
+ # determined by the service that evaluates it. See the service documentation for
147
+ # additional information.
148
+ # Corresponds to the JSON property `condition`
149
+ # @return [Google::Apis::ConfigV1::Expr]
150
+ attr_accessor :condition
151
+
152
+ # Specifies the principals requesting access for a Google Cloud resource. `
153
+ # members` can have the following values: * `allUsers`: A special identifier
154
+ # that represents anyone who is on the internet; with or without a Google
155
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
156
+ # anyone who is authenticated with a Google account or a service account. Does
157
+ # not include identities that come from external identity providers (IdPs)
158
+ # through identity federation. * `user:`emailid``: An email address that
159
+ # represents a specific Google account. For example, `alice@example.com` . * `
160
+ # serviceAccount:`emailid``: An email address that represents a Google service
161
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
162
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
163
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
164
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
165
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
166
+ # email address that represents a Google group. For example, `admins@example.com`
167
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
168
+ # users of that domain. For example, `google.com` or `example.com`. * `principal:
169
+ # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
170
+ # subject_attribute_value``: A single identity in a workforce identity pool. * `
171
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
172
+ # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
173
+ # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
174
+ # attribute_name`/`attribute_value``: All workforce identities with a specific
175
+ # attribute value. * `principalSet://iam.googleapis.com/locations/global/
176
+ # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
177
+ # principal://iam.googleapis.com/projects/`project_number`/locations/global/
178
+ # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
179
+ # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
180
+ # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
181
+ # group/`group_id``: A workload identity pool group. * `principalSet://iam.
182
+ # googleapis.com/projects/`project_number`/locations/global/
183
+ # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
184
+ # All identities in a workload identity pool with a certain attribute. * `
185
+ # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
186
+ # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
187
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
188
+ # identifier) representing a user that has been recently deleted. For example, `
189
+ # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
190
+ # value reverts to `user:`emailid`` and the recovered user retains the role in
191
+ # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
192
+ # address (plus unique identifier) representing a service account that has been
193
+ # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
194
+ # 123456789012345678901`. If the service account is undeleted, this value
195
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
196
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
197
+ # An email address (plus unique identifier) representing a Google group that has
198
+ # been recently deleted. For example, `admins@example.com?uid=
199
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
200
+ # group:`emailid`` and the recovered group retains the role in the binding. * `
201
+ # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
202
+ # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
203
+ # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
204
+ # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
205
+ # Corresponds to the JSON property `members`
206
+ # @return [Array<String>]
207
+ attr_accessor :members
208
+
209
+ # Role that is assigned to the list of `members`, or principals. For example, `
210
+ # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
211
+ # roles and permissions, see the [IAM documentation](https://cloud.google.com/
212
+ # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
213
+ # here](https://cloud.google.com/iam/docs/understanding-roles).
214
+ # Corresponds to the JSON property `role`
215
+ # @return [String]
216
+ attr_accessor :role
217
+
218
+ def initialize(**args)
219
+ update!(**args)
220
+ end
221
+
222
+ # Update properties of this object
223
+ def update!(**args)
224
+ @condition = args[:condition] if args.key?(:condition)
225
+ @members = args[:members] if args.key?(:members)
226
+ @role = args[:role] if args.key?(:role)
227
+ end
228
+ end
229
+
230
+ # The request message for Operations.CancelOperation.
231
+ class CancelOperationRequest
232
+ include Google::Apis::Core::Hashable
233
+
234
+ def initialize(**args)
235
+ update!(**args)
236
+ end
237
+
238
+ # Update properties of this object
239
+ def update!(**args)
240
+ end
241
+ end
242
+
243
+ # A request to delete a state file passed to a 'DeleteStatefile' call.
244
+ class DeleteStatefileRequest
245
+ include Google::Apis::Core::Hashable
246
+
247
+ # Required. Lock ID of the lock file to verify that the user who is deleting the
248
+ # state file previously locked the Deployment.
249
+ # Corresponds to the JSON property `lockId`
250
+ # @return [Fixnum]
251
+ attr_accessor :lock_id
252
+
253
+ def initialize(**args)
254
+ update!(**args)
255
+ end
256
+
257
+ # Update properties of this object
258
+ def update!(**args)
259
+ @lock_id = args[:lock_id] if args.key?(:lock_id)
260
+ end
261
+ end
262
+
263
+ # A Deployment is a group of resources and configs managed and provisioned by
264
+ # Infra Manager.
265
+ class Deployment
266
+ include Google::Apis::Core::Hashable
267
+
268
+ # Optional. Arbitrary key-value metadata storage e.g. to help client tools
269
+ # identifiy deployments during automation. See https://google.aip.dev/148#
270
+ # annotations for details on format and size limitations.
271
+ # Corresponds to the JSON property `annotations`
272
+ # @return [Hash<String,String>]
273
+ attr_accessor :annotations
274
+
275
+ # Optional. User-defined location of Cloud Build logs and artifacts in Google
276
+ # Cloud Storage. Format: `gs://`bucket`/`folder`` A default bucket will be
277
+ # bootstrapped if the field is not set or empty. Default bucket format: `gs://--
278
+ # blueprint-config` Constraints: - The bucket needs to be in the same project as
279
+ # the deployment - The path cannot be within the path of `gcs_source` - The
280
+ # field cannot be updated, including changing its presence
281
+ # Corresponds to the JSON property `artifactsGcsBucket`
282
+ # @return [String]
283
+ attr_accessor :artifacts_gcs_bucket
284
+
285
+ # Output only. Time when the deployment was created.
286
+ # Corresponds to the JSON property `createTime`
287
+ # @return [String]
288
+ attr_accessor :create_time
289
+
290
+ # Output only. Cloud Build instance UUID associated with deleting this
291
+ # deployment.
292
+ # Corresponds to the JSON property `deleteBuild`
293
+ # @return [String]
294
+ attr_accessor :delete_build
295
+
296
+ # Output only. Location of Cloud Build logs in Google Cloud Storage, populated
297
+ # when deleting this deployment. Format: `gs://`bucket`/`object``.
298
+ # Corresponds to the JSON property `deleteLogs`
299
+ # @return [String]
300
+ attr_accessor :delete_logs
301
+
302
+ # Outputs and artifacts from applying a deployment.
303
+ # Corresponds to the JSON property `deleteResults`
304
+ # @return [Google::Apis::ConfigV1::ApplyResults]
305
+ attr_accessor :delete_results
306
+
307
+ # Output only. Error code describing errors that may have occurred.
308
+ # Corresponds to the JSON property `errorCode`
309
+ # @return [String]
310
+ attr_accessor :error_code
311
+
312
+ # Output only. Location of Terraform error logs in Google Cloud Storage. Format:
313
+ # `gs://`bucket`/`object``.
314
+ # Corresponds to the JSON property `errorLogs`
315
+ # @return [String]
316
+ attr_accessor :error_logs
317
+
318
+ # By default, Infra Manager will return a failure when Terraform encounters a
319
+ # 409 code (resource conflict error) during actuation. If this flag is set to
320
+ # true, Infra Manager will instead attempt to automatically import the resource
321
+ # into the Terraform state (for supported resource types) and continue actuation.
322
+ # Not all resource types are supported, refer to documentation.
323
+ # Corresponds to the JSON property `importExistingResources`
324
+ # @return [Boolean]
325
+ attr_accessor :import_existing_resources
326
+ alias_method :import_existing_resources?, :import_existing_resources
327
+
328
+ # User-defined metadata for the deployment.
329
+ # Corresponds to the JSON property `labels`
330
+ # @return [Hash<String,String>]
331
+ attr_accessor :labels
332
+
333
+ # Output only. Revision name that was most recently applied. Format: `projects/`
334
+ # project`/locations/`location`/deployments/`deployment`/ revisions/`revision``
335
+ # Corresponds to the JSON property `latestRevision`
336
+ # @return [String]
337
+ attr_accessor :latest_revision
338
+
339
+ # Output only. Current lock state of the deployment.
340
+ # Corresponds to the JSON property `lockState`
341
+ # @return [String]
342
+ attr_accessor :lock_state
343
+
344
+ # Resource name of the deployment. Format: `projects/`project`/locations/`
345
+ # location`/deployments/`deployment``
346
+ # Corresponds to the JSON property `name`
347
+ # @return [String]
348
+ attr_accessor :name
349
+
350
+ # Optional. Input to control quota checks for resources in terraform
351
+ # configuration files. There are limited resources on which quota validation
352
+ # applies.
353
+ # Corresponds to the JSON property `quotaValidation`
354
+ # @return [String]
355
+ attr_accessor :quota_validation
356
+
357
+ # Optional. User-specified Service Account (SA) credentials to be used when
358
+ # actuating resources. Format: `projects/`projectID`/serviceAccounts/`
359
+ # serviceAccount``
360
+ # Corresponds to the JSON property `serviceAccount`
361
+ # @return [String]
362
+ attr_accessor :service_account
363
+
364
+ # Output only. Current state of the deployment.
365
+ # Corresponds to the JSON property `state`
366
+ # @return [String]
367
+ attr_accessor :state
368
+
369
+ # Output only. Additional information regarding the current state.
370
+ # Corresponds to the JSON property `stateDetail`
371
+ # @return [String]
372
+ attr_accessor :state_detail
373
+
374
+ # TerraformBlueprint describes the source of a Terraform root module which
375
+ # describes the resources and configs to be deployed.
376
+ # Corresponds to the JSON property `terraformBlueprint`
377
+ # @return [Google::Apis::ConfigV1::TerraformBlueprint]
378
+ attr_accessor :terraform_blueprint
379
+
380
+ # Output only. Errors encountered when deleting this deployment. Errors are
381
+ # truncated to 10 entries, see `delete_results` and `error_logs` for full
382
+ # details.
383
+ # Corresponds to the JSON property `tfErrors`
384
+ # @return [Array<Google::Apis::ConfigV1::TerraformError>]
385
+ attr_accessor :tf_errors
386
+
387
+ # Output only. The current Terraform version set on the deployment. It is in the
388
+ # format of "Major.Minor.Patch", for example, "1.3.10".
389
+ # Corresponds to the JSON property `tfVersion`
390
+ # @return [String]
391
+ attr_accessor :tf_version
392
+
393
+ # Optional. The user-specified Terraform version constraint. Example: "=1.3.10".
394
+ # Corresponds to the JSON property `tfVersionConstraint`
395
+ # @return [String]
396
+ attr_accessor :tf_version_constraint
397
+
398
+ # Output only. Time when the deployment was last modified.
399
+ # Corresponds to the JSON property `updateTime`
400
+ # @return [String]
401
+ attr_accessor :update_time
402
+
403
+ # Optional. The user-specified Cloud Build worker pool resource in which the
404
+ # Cloud Build job will execute. Format: `projects/`project`/locations/`location`/
405
+ # workerPools/`workerPoolId``. If this field is unspecified, the default Cloud
406
+ # Build worker pool will be used.
407
+ # Corresponds to the JSON property `workerPool`
408
+ # @return [String]
409
+ attr_accessor :worker_pool
410
+
411
+ def initialize(**args)
412
+ update!(**args)
413
+ end
414
+
415
+ # Update properties of this object
416
+ def update!(**args)
417
+ @annotations = args[:annotations] if args.key?(:annotations)
418
+ @artifacts_gcs_bucket = args[:artifacts_gcs_bucket] if args.key?(:artifacts_gcs_bucket)
419
+ @create_time = args[:create_time] if args.key?(:create_time)
420
+ @delete_build = args[:delete_build] if args.key?(:delete_build)
421
+ @delete_logs = args[:delete_logs] if args.key?(:delete_logs)
422
+ @delete_results = args[:delete_results] if args.key?(:delete_results)
423
+ @error_code = args[:error_code] if args.key?(:error_code)
424
+ @error_logs = args[:error_logs] if args.key?(:error_logs)
425
+ @import_existing_resources = args[:import_existing_resources] if args.key?(:import_existing_resources)
426
+ @labels = args[:labels] if args.key?(:labels)
427
+ @latest_revision = args[:latest_revision] if args.key?(:latest_revision)
428
+ @lock_state = args[:lock_state] if args.key?(:lock_state)
429
+ @name = args[:name] if args.key?(:name)
430
+ @quota_validation = args[:quota_validation] if args.key?(:quota_validation)
431
+ @service_account = args[:service_account] if args.key?(:service_account)
432
+ @state = args[:state] if args.key?(:state)
433
+ @state_detail = args[:state_detail] if args.key?(:state_detail)
434
+ @terraform_blueprint = args[:terraform_blueprint] if args.key?(:terraform_blueprint)
435
+ @tf_errors = args[:tf_errors] if args.key?(:tf_errors)
436
+ @tf_version = args[:tf_version] if args.key?(:tf_version)
437
+ @tf_version_constraint = args[:tf_version_constraint] if args.key?(:tf_version_constraint)
438
+ @update_time = args[:update_time] if args.key?(:update_time)
439
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
440
+ end
441
+ end
442
+
443
+ # Ephemeral metadata content describing the state of a deployment operation.
444
+ class DeploymentOperationMetadata
445
+ include Google::Apis::Core::Hashable
446
+
447
+ # Outputs and artifacts from applying a deployment.
448
+ # Corresponds to the JSON property `applyResults`
449
+ # @return [Google::Apis::ConfigV1::ApplyResults]
450
+ attr_accessor :apply_results
451
+
452
+ # Output only. Cloud Build instance UUID associated with this operation.
453
+ # Corresponds to the JSON property `build`
454
+ # @return [String]
455
+ attr_accessor :build
456
+
457
+ # Output only. Location of Deployment operations logs in `gs://`bucket`/`object``
458
+ # format.
459
+ # Corresponds to the JSON property `logs`
460
+ # @return [String]
461
+ attr_accessor :logs
462
+
463
+ # The current step the deployment operation is running.
464
+ # Corresponds to the JSON property `step`
465
+ # @return [String]
466
+ attr_accessor :step
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @apply_results = args[:apply_results] if args.key?(:apply_results)
475
+ @build = args[:build] if args.key?(:build)
476
+ @logs = args[:logs] if args.key?(:logs)
477
+ @step = args[:step] if args.key?(:step)
478
+ end
479
+ end
480
+
481
+ # A generic empty message that you can re-use to avoid defining duplicated empty
482
+ # messages in your APIs. A typical example is to use it as the request or the
483
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
484
+ # protobuf.Empty) returns (google.protobuf.Empty); `
485
+ class Empty
486
+ include Google::Apis::Core::Hashable
487
+
488
+ def initialize(**args)
489
+ update!(**args)
490
+ end
491
+
492
+ # Update properties of this object
493
+ def update!(**args)
494
+ end
495
+ end
496
+
497
+ # A request to export a state file passed to a 'ExportDeploymentStatefile' call.
498
+ class ExportDeploymentStatefileRequest
499
+ include Google::Apis::Core::Hashable
500
+
501
+ # Optional. If this flag is set to true, the exported deployment state file will
502
+ # be the draft state. This will enable the draft file to be validated before
503
+ # copying it over to the working state on unlock.
504
+ # Corresponds to the JSON property `draft`
505
+ # @return [Boolean]
506
+ attr_accessor :draft
507
+ alias_method :draft?, :draft
508
+
509
+ def initialize(**args)
510
+ update!(**args)
511
+ end
512
+
513
+ # Update properties of this object
514
+ def update!(**args)
515
+ @draft = args[:draft] if args.key?(:draft)
516
+ end
517
+ end
518
+
519
+ # A request to export preview results.
520
+ class ExportPreviewResultRequest
521
+ include Google::Apis::Core::Hashable
522
+
523
+ def initialize(**args)
524
+ update!(**args)
525
+ end
526
+
527
+ # Update properties of this object
528
+ def update!(**args)
529
+ end
530
+ end
531
+
532
+ # A response to `ExportPreviewResult` call. Contains preview results.
533
+ class ExportPreviewResultResponse
534
+ include Google::Apis::Core::Hashable
535
+
536
+ # Contains a signed Cloud Storage URLs.
537
+ # Corresponds to the JSON property `result`
538
+ # @return [Google::Apis::ConfigV1::PreviewResult]
539
+ attr_accessor :result
540
+
541
+ def initialize(**args)
542
+ update!(**args)
543
+ end
544
+
545
+ # Update properties of this object
546
+ def update!(**args)
547
+ @result = args[:result] if args.key?(:result)
548
+ end
549
+ end
550
+
551
+ # A request to export a state file passed to a 'ExportRevisionStatefile' call.
552
+ class ExportRevisionStatefileRequest
553
+ include Google::Apis::Core::Hashable
554
+
555
+ def initialize(**args)
556
+ update!(**args)
557
+ end
558
+
559
+ # Update properties of this object
560
+ def update!(**args)
561
+ end
562
+ end
563
+
564
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
565
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
566
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
567
+ # "Summary size limit" description: "Determines if a summary is less than 100
568
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
569
+ # Requestor is owner" description: "Determines if requestor is the document
570
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
571
+ # Logic): title: "Public documents" description: "Determine whether the document
572
+ # should be publicly visible" expression: "document.type != 'private' &&
573
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
574
+ # string" description: "Create a notification string with a timestamp."
575
+ # expression: "'New message received at ' + string(document.create_time)" The
576
+ # exact variables and functions that may be referenced within an expression are
577
+ # determined by the service that evaluates it. See the service documentation for
578
+ # additional information.
579
+ class Expr
580
+ include Google::Apis::Core::Hashable
581
+
582
+ # Optional. Description of the expression. This is a longer text which describes
583
+ # the expression, e.g. when hovered over it in a UI.
584
+ # Corresponds to the JSON property `description`
585
+ # @return [String]
586
+ attr_accessor :description
587
+
588
+ # Textual representation of an expression in Common Expression Language syntax.
589
+ # Corresponds to the JSON property `expression`
590
+ # @return [String]
591
+ attr_accessor :expression
592
+
593
+ # Optional. String indicating the location of the expression for error reporting,
594
+ # e.g. a file name and a position in the file.
595
+ # Corresponds to the JSON property `location`
596
+ # @return [String]
597
+ attr_accessor :location
598
+
599
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
600
+ # This can be used e.g. in UIs which allow to enter the expression.
601
+ # Corresponds to the JSON property `title`
602
+ # @return [String]
603
+ attr_accessor :title
604
+
605
+ def initialize(**args)
606
+ update!(**args)
607
+ end
608
+
609
+ # Update properties of this object
610
+ def update!(**args)
611
+ @description = args[:description] if args.key?(:description)
612
+ @expression = args[:expression] if args.key?(:expression)
613
+ @location = args[:location] if args.key?(:location)
614
+ @title = args[:title] if args.key?(:title)
615
+ end
616
+ end
617
+
618
+ # A set of files in a Git repository.
619
+ class GitSource
620
+ include Google::Apis::Core::Hashable
621
+
622
+ # Optional. Subdirectory inside the repository. Example: 'staging/my-package'
623
+ # Corresponds to the JSON property `directory`
624
+ # @return [String]
625
+ attr_accessor :directory
626
+
627
+ # Optional. Git reference (e.g. branch or tag).
628
+ # Corresponds to the JSON property `ref`
629
+ # @return [String]
630
+ attr_accessor :ref
631
+
632
+ # Optional. Repository URL. Example: 'https://github.com/kubernetes/examples.git'
633
+ # Corresponds to the JSON property `repo`
634
+ # @return [String]
635
+ attr_accessor :repo
636
+
637
+ def initialize(**args)
638
+ update!(**args)
639
+ end
640
+
641
+ # Update properties of this object
642
+ def update!(**args)
643
+ @directory = args[:directory] if args.key?(:directory)
644
+ @ref = args[:ref] if args.key?(:ref)
645
+ @repo = args[:repo] if args.key?(:repo)
646
+ end
647
+ end
648
+
649
+ # A request to import a state file passed to a 'ImportStatefile' call.
650
+ class ImportStatefileRequest
651
+ include Google::Apis::Core::Hashable
652
+
653
+ # Required. Lock ID of the lock file to verify that the user who is importing
654
+ # the state file previously locked the Deployment.
655
+ # Corresponds to the JSON property `lockId`
656
+ # @return [Fixnum]
657
+ attr_accessor :lock_id
658
+
659
+ def initialize(**args)
660
+ update!(**args)
661
+ end
662
+
663
+ # Update properties of this object
664
+ def update!(**args)
665
+ @lock_id = args[:lock_id] if args.key?(:lock_id)
666
+ end
667
+ end
668
+
669
+ #
670
+ class ListDeploymentsResponse
671
+ include Google::Apis::Core::Hashable
672
+
673
+ # List of Deployments.
674
+ # Corresponds to the JSON property `deployments`
675
+ # @return [Array<Google::Apis::ConfigV1::Deployment>]
676
+ attr_accessor :deployments
677
+
678
+ # Token to be supplied to the next ListDeployments request via `page_token` to
679
+ # obtain the next set of results.
680
+ # Corresponds to the JSON property `nextPageToken`
681
+ # @return [String]
682
+ attr_accessor :next_page_token
683
+
684
+ # Locations that could not be reached.
685
+ # Corresponds to the JSON property `unreachable`
686
+ # @return [Array<String>]
687
+ attr_accessor :unreachable
688
+
689
+ def initialize(**args)
690
+ update!(**args)
691
+ end
692
+
693
+ # Update properties of this object
694
+ def update!(**args)
695
+ @deployments = args[:deployments] if args.key?(:deployments)
696
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
697
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
698
+ end
699
+ end
700
+
701
+ # The response message for Locations.ListLocations.
702
+ class ListLocationsResponse
703
+ include Google::Apis::Core::Hashable
704
+
705
+ # A list of locations that matches the specified filter in the request.
706
+ # Corresponds to the JSON property `locations`
707
+ # @return [Array<Google::Apis::ConfigV1::Location>]
708
+ attr_accessor :locations
709
+
710
+ # The standard List next-page token.
711
+ # Corresponds to the JSON property `nextPageToken`
712
+ # @return [String]
713
+ attr_accessor :next_page_token
714
+
715
+ def initialize(**args)
716
+ update!(**args)
717
+ end
718
+
719
+ # Update properties of this object
720
+ def update!(**args)
721
+ @locations = args[:locations] if args.key?(:locations)
722
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
723
+ end
724
+ end
725
+
726
+ # The response message for Operations.ListOperations.
727
+ class ListOperationsResponse
728
+ include Google::Apis::Core::Hashable
729
+
730
+ # The standard List next-page token.
731
+ # Corresponds to the JSON property `nextPageToken`
732
+ # @return [String]
733
+ attr_accessor :next_page_token
734
+
735
+ # A list of operations that matches the specified filter in the request.
736
+ # Corresponds to the JSON property `operations`
737
+ # @return [Array<Google::Apis::ConfigV1::Operation>]
738
+ attr_accessor :operations
739
+
740
+ def initialize(**args)
741
+ update!(**args)
742
+ end
743
+
744
+ # Update properties of this object
745
+ def update!(**args)
746
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
747
+ @operations = args[:operations] if args.key?(:operations)
748
+ end
749
+ end
750
+
751
+ # A response to a `ListPreviews` call. Contains a list of Previews.
752
+ class ListPreviewsResponse
753
+ include Google::Apis::Core::Hashable
754
+
755
+ # Token to be supplied to the next ListPreviews request via `page_token` to
756
+ # obtain the next set of results.
757
+ # Corresponds to the JSON property `nextPageToken`
758
+ # @return [String]
759
+ attr_accessor :next_page_token
760
+
761
+ # List of Previewss.
762
+ # Corresponds to the JSON property `previews`
763
+ # @return [Array<Google::Apis::ConfigV1::Preview>]
764
+ attr_accessor :previews
765
+
766
+ # Locations that could not be reached.
767
+ # Corresponds to the JSON property `unreachable`
768
+ # @return [Array<String>]
769
+ attr_accessor :unreachable
770
+
771
+ def initialize(**args)
772
+ update!(**args)
773
+ end
774
+
775
+ # Update properties of this object
776
+ def update!(**args)
777
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
778
+ @previews = args[:previews] if args.key?(:previews)
779
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
780
+ end
781
+ end
782
+
783
+ # A response to a 'ListResources' call. Contains a list of Resources.
784
+ class ListResourcesResponse
785
+ include Google::Apis::Core::Hashable
786
+
787
+ # A token to request the next page of resources from the 'ListResources' method.
788
+ # The value of an empty string means that there are no more resources to return.
789
+ # Corresponds to the JSON property `nextPageToken`
790
+ # @return [String]
791
+ attr_accessor :next_page_token
792
+
793
+ # List of Resourcess.
794
+ # Corresponds to the JSON property `resources`
795
+ # @return [Array<Google::Apis::ConfigV1::Resource>]
796
+ attr_accessor :resources
797
+
798
+ # Locations that could not be reached.
799
+ # Corresponds to the JSON property `unreachable`
800
+ # @return [Array<String>]
801
+ attr_accessor :unreachable
802
+
803
+ def initialize(**args)
804
+ update!(**args)
805
+ end
806
+
807
+ # Update properties of this object
808
+ def update!(**args)
809
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
810
+ @resources = args[:resources] if args.key?(:resources)
811
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
812
+ end
813
+ end
814
+
815
+ # A response to a 'ListRevisions' call. Contains a list of Revisions.
816
+ class ListRevisionsResponse
817
+ include Google::Apis::Core::Hashable
818
+
819
+ # A token to request the next page of resources from the 'ListRevisions' method.
820
+ # The value of an empty string means that there are no more resources to return.
821
+ # Corresponds to the JSON property `nextPageToken`
822
+ # @return [String]
823
+ attr_accessor :next_page_token
824
+
825
+ # List of Revisions.
826
+ # Corresponds to the JSON property `revisions`
827
+ # @return [Array<Google::Apis::ConfigV1::Revision>]
828
+ attr_accessor :revisions
829
+
830
+ # Locations that could not be reached.
831
+ # Corresponds to the JSON property `unreachable`
832
+ # @return [Array<String>]
833
+ attr_accessor :unreachable
834
+
835
+ def initialize(**args)
836
+ update!(**args)
837
+ end
838
+
839
+ # Update properties of this object
840
+ def update!(**args)
841
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
842
+ @revisions = args[:revisions] if args.key?(:revisions)
843
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
844
+ end
845
+ end
846
+
847
+ # The response message for the `ListTerraformVersions` method.
848
+ class ListTerraformVersionsResponse
849
+ include Google::Apis::Core::Hashable
850
+
851
+ # Token to be supplied to the next ListTerraformVersions request via `page_token`
852
+ # to obtain the next set of results.
853
+ # Corresponds to the JSON property `nextPageToken`
854
+ # @return [String]
855
+ attr_accessor :next_page_token
856
+
857
+ # List of TerraformVersions.
858
+ # Corresponds to the JSON property `terraformVersions`
859
+ # @return [Array<Google::Apis::ConfigV1::TerraformVersion>]
860
+ attr_accessor :terraform_versions
861
+
862
+ # Unreachable resources, if any.
863
+ # Corresponds to the JSON property `unreachable`
864
+ # @return [Array<String>]
865
+ attr_accessor :unreachable
866
+
867
+ def initialize(**args)
868
+ update!(**args)
869
+ end
870
+
871
+ # Update properties of this object
872
+ def update!(**args)
873
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
874
+ @terraform_versions = args[:terraform_versions] if args.key?(:terraform_versions)
875
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
876
+ end
877
+ end
878
+
879
+ # A resource that represents a Google Cloud location.
880
+ class Location
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # The friendly name for this location, typically a nearby city name. For example,
884
+ # "Tokyo".
885
+ # Corresponds to the JSON property `displayName`
886
+ # @return [String]
887
+ attr_accessor :display_name
888
+
889
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
890
+ # region": "us-east1"`
891
+ # Corresponds to the JSON property `labels`
892
+ # @return [Hash<String,String>]
893
+ attr_accessor :labels
894
+
895
+ # The canonical id for this location. For example: `"us-east1"`.
896
+ # Corresponds to the JSON property `locationId`
897
+ # @return [String]
898
+ attr_accessor :location_id
899
+
900
+ # Service-specific metadata. For example the available capacity at the given
901
+ # location.
902
+ # Corresponds to the JSON property `metadata`
903
+ # @return [Hash<String,Object>]
904
+ attr_accessor :metadata
905
+
906
+ # Resource name for the location, which may vary between implementations. For
907
+ # example: `"projects/example-project/locations/us-east1"`
908
+ # Corresponds to the JSON property `name`
909
+ # @return [String]
910
+ attr_accessor :name
911
+
912
+ def initialize(**args)
913
+ update!(**args)
914
+ end
915
+
916
+ # Update properties of this object
917
+ def update!(**args)
918
+ @display_name = args[:display_name] if args.key?(:display_name)
919
+ @labels = args[:labels] if args.key?(:labels)
920
+ @location_id = args[:location_id] if args.key?(:location_id)
921
+ @metadata = args[:metadata] if args.key?(:metadata)
922
+ @name = args[:name] if args.key?(:name)
923
+ end
924
+ end
925
+
926
+ # A request to lock a deployment passed to a 'LockDeployment' call.
927
+ class LockDeploymentRequest
928
+ include Google::Apis::Core::Hashable
929
+
930
+ def initialize(**args)
931
+ update!(**args)
932
+ end
933
+
934
+ # Update properties of this object
935
+ def update!(**args)
936
+ end
937
+ end
938
+
939
+ # Details about the lock which locked the deployment.
940
+ class LockInfo
941
+ include Google::Apis::Core::Hashable
942
+
943
+ # Time that the lock was taken.
944
+ # Corresponds to the JSON property `createTime`
945
+ # @return [String]
946
+ attr_accessor :create_time
947
+
948
+ # Extra information to store with the lock, provided by the caller.
949
+ # Corresponds to the JSON property `info`
950
+ # @return [String]
951
+ attr_accessor :info
952
+
953
+ # Unique ID for the lock to be overridden with generation ID in the backend.
954
+ # Corresponds to the JSON property `lockId`
955
+ # @return [Fixnum]
956
+ attr_accessor :lock_id
957
+
958
+ # Terraform operation, provided by the caller.
959
+ # Corresponds to the JSON property `operation`
960
+ # @return [String]
961
+ attr_accessor :operation
962
+
963
+ # Terraform version
964
+ # Corresponds to the JSON property `version`
965
+ # @return [String]
966
+ attr_accessor :version
967
+
968
+ # user@hostname when available
969
+ # Corresponds to the JSON property `who`
970
+ # @return [String]
971
+ attr_accessor :who
972
+
973
+ def initialize(**args)
974
+ update!(**args)
975
+ end
976
+
977
+ # Update properties of this object
978
+ def update!(**args)
979
+ @create_time = args[:create_time] if args.key?(:create_time)
980
+ @info = args[:info] if args.key?(:info)
981
+ @lock_id = args[:lock_id] if args.key?(:lock_id)
982
+ @operation = args[:operation] if args.key?(:operation)
983
+ @version = args[:version] if args.key?(:version)
984
+ @who = args[:who] if args.key?(:who)
985
+ end
986
+ end
987
+
988
+ # This resource represents a long-running operation that is the result of a
989
+ # network API call.
990
+ class Operation
991
+ include Google::Apis::Core::Hashable
992
+
993
+ # If the value is `false`, it means the operation is still in progress. If `true`
994
+ # , the operation is completed, and either `error` or `response` is available.
995
+ # Corresponds to the JSON property `done`
996
+ # @return [Boolean]
997
+ attr_accessor :done
998
+ alias_method :done?, :done
999
+
1000
+ # The `Status` type defines a logical error model that is suitable for different
1001
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1002
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1003
+ # data: error code, error message, and error details. You can find out more
1004
+ # about this error model and how to work with it in the [API Design Guide](https:
1005
+ # //cloud.google.com/apis/design/errors).
1006
+ # Corresponds to the JSON property `error`
1007
+ # @return [Google::Apis::ConfigV1::Status]
1008
+ attr_accessor :error
1009
+
1010
+ # Service-specific metadata associated with the operation. It typically contains
1011
+ # progress information and common metadata such as create time. Some services
1012
+ # might not provide such metadata. Any method that returns a long-running
1013
+ # operation should document the metadata type, if any.
1014
+ # Corresponds to the JSON property `metadata`
1015
+ # @return [Hash<String,Object>]
1016
+ attr_accessor :metadata
1017
+
1018
+ # The server-assigned name, which is only unique within the same service that
1019
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1020
+ # be a resource name ending with `operations/`unique_id``.
1021
+ # Corresponds to the JSON property `name`
1022
+ # @return [String]
1023
+ attr_accessor :name
1024
+
1025
+ # The normal, successful response of the operation. If the original method
1026
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
1027
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
1028
+ # response should be the resource. For other methods, the response should have
1029
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
1030
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
1031
+ # `TakeSnapshotResponse`.
1032
+ # Corresponds to the JSON property `response`
1033
+ # @return [Hash<String,Object>]
1034
+ attr_accessor :response
1035
+
1036
+ def initialize(**args)
1037
+ update!(**args)
1038
+ end
1039
+
1040
+ # Update properties of this object
1041
+ def update!(**args)
1042
+ @done = args[:done] if args.key?(:done)
1043
+ @error = args[:error] if args.key?(:error)
1044
+ @metadata = args[:metadata] if args.key?(:metadata)
1045
+ @name = args[:name] if args.key?(:name)
1046
+ @response = args[:response] if args.key?(:response)
1047
+ end
1048
+ end
1049
+
1050
+ # Represents the metadata of the long-running operation.
1051
+ class OperationMetadata
1052
+ include Google::Apis::Core::Hashable
1053
+
1054
+ # Output only. API version used to start the operation.
1055
+ # Corresponds to the JSON property `apiVersion`
1056
+ # @return [String]
1057
+ attr_accessor :api_version
1058
+
1059
+ # Output only. Time when the operation was created.
1060
+ # Corresponds to the JSON property `createTime`
1061
+ # @return [String]
1062
+ attr_accessor :create_time
1063
+
1064
+ # Ephemeral metadata content describing the state of a deployment operation.
1065
+ # Corresponds to the JSON property `deploymentMetadata`
1066
+ # @return [Google::Apis::ConfigV1::DeploymentOperationMetadata]
1067
+ attr_accessor :deployment_metadata
1068
+
1069
+ # Output only. Time when the operation finished running.
1070
+ # Corresponds to the JSON property `endTime`
1071
+ # @return [String]
1072
+ attr_accessor :end_time
1073
+
1074
+ # Ephemeral metadata content describing the state of a preview operation.
1075
+ # Corresponds to the JSON property `previewMetadata`
1076
+ # @return [Google::Apis::ConfigV1::PreviewOperationMetadata]
1077
+ attr_accessor :preview_metadata
1078
+
1079
+ # Output only. Identifies whether the user has requested cancellation of the
1080
+ # operation. Operations that have successfully been cancelled have Operation.
1081
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1082
+ # CANCELLED`.
1083
+ # Corresponds to the JSON property `requestedCancellation`
1084
+ # @return [Boolean]
1085
+ attr_accessor :requested_cancellation
1086
+ alias_method :requested_cancellation?, :requested_cancellation
1087
+
1088
+ # Output only. Human-readable status of the operation, if any.
1089
+ # Corresponds to the JSON property `statusMessage`
1090
+ # @return [String]
1091
+ attr_accessor :status_message
1092
+
1093
+ # Output only. Server-defined resource path for the target of the operation.
1094
+ # Corresponds to the JSON property `target`
1095
+ # @return [String]
1096
+ attr_accessor :target
1097
+
1098
+ # Output only. Name of the verb executed by the operation.
1099
+ # Corresponds to the JSON property `verb`
1100
+ # @return [String]
1101
+ attr_accessor :verb
1102
+
1103
+ def initialize(**args)
1104
+ update!(**args)
1105
+ end
1106
+
1107
+ # Update properties of this object
1108
+ def update!(**args)
1109
+ @api_version = args[:api_version] if args.key?(:api_version)
1110
+ @create_time = args[:create_time] if args.key?(:create_time)
1111
+ @deployment_metadata = args[:deployment_metadata] if args.key?(:deployment_metadata)
1112
+ @end_time = args[:end_time] if args.key?(:end_time)
1113
+ @preview_metadata = args[:preview_metadata] if args.key?(:preview_metadata)
1114
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1115
+ @status_message = args[:status_message] if args.key?(:status_message)
1116
+ @target = args[:target] if args.key?(:target)
1117
+ @verb = args[:verb] if args.key?(:verb)
1118
+ end
1119
+ end
1120
+
1121
+ # An Identity and Access Management (IAM) policy, which specifies access
1122
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1123
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1124
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1125
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1126
+ # an IAM predefined role or a user-created custom role. For some types of Google
1127
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1128
+ # logical expression that allows access to a resource only if the expression
1129
+ # evaluates to `true`. A condition can add constraints based on attributes of
1130
+ # the request, the resource, or both. To learn which resources support
1131
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1132
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1133
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1134
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1135
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1136
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1137
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1138
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1139
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1140
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1141
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1142
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1143
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1144
+ # title: expirable access description: Does not grant access after Sep 2020
1145
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1146
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1147
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1148
+ class Policy
1149
+ include Google::Apis::Core::Hashable
1150
+
1151
+ # Specifies cloud audit logging configuration for this policy.
1152
+ # Corresponds to the JSON property `auditConfigs`
1153
+ # @return [Array<Google::Apis::ConfigV1::AuditConfig>]
1154
+ attr_accessor :audit_configs
1155
+
1156
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1157
+ # specify a `condition` that determines how and when the `bindings` are applied.
1158
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1159
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1160
+ # can be Google groups. Each occurrence of a principal counts towards these
1161
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1162
+ # example.com`, and not to any other principal, then you can add another 1,450
1163
+ # principals to the `bindings` in the `Policy`.
1164
+ # Corresponds to the JSON property `bindings`
1165
+ # @return [Array<Google::Apis::ConfigV1::Binding>]
1166
+ attr_accessor :bindings
1167
+
1168
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1169
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1170
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1171
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1172
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1173
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1174
+ # applied to the same version of the policy. **Important:** If you use IAM
1175
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1176
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1177
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1178
+ # are lost.
1179
+ # Corresponds to the JSON property `etag`
1180
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1181
+ # @return [String]
1182
+ attr_accessor :etag
1183
+
1184
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1185
+ # Requests that specify an invalid value are rejected. Any operation that
1186
+ # affects conditional role bindings must specify version `3`. This requirement
1187
+ # applies to the following operations: * Getting a policy that includes a
1188
+ # conditional role binding * Adding a conditional role binding to a policy *
1189
+ # Changing a conditional role binding in a policy * Removing any role binding,
1190
+ # with or without a condition, from a policy that includes conditions **
1191
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1192
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1193
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1194
+ # conditions in the version `3` policy are lost. If a policy does not include
1195
+ # any conditions, operations on that policy may specify any valid version or
1196
+ # leave the field unset. To learn which resources support conditions in their
1197
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1198
+ # conditions/resource-policies).
1199
+ # Corresponds to the JSON property `version`
1200
+ # @return [Fixnum]
1201
+ attr_accessor :version
1202
+
1203
+ def initialize(**args)
1204
+ update!(**args)
1205
+ end
1206
+
1207
+ # Update properties of this object
1208
+ def update!(**args)
1209
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1210
+ @bindings = args[:bindings] if args.key?(:bindings)
1211
+ @etag = args[:etag] if args.key?(:etag)
1212
+ @version = args[:version] if args.key?(:version)
1213
+ end
1214
+ end
1215
+
1216
+ # A preview represents a set of actions Infra Manager would perform to move the
1217
+ # resources towards the desired state as specified in the configuration.
1218
+ class Preview
1219
+ include Google::Apis::Core::Hashable
1220
+
1221
+ # Optional. User-defined location of Cloud Build logs, artifacts, and in Google
1222
+ # Cloud Storage. Format: `gs://`bucket`/`folder`` A default bucket will be
1223
+ # bootstrapped if the field is not set or empty Default Bucket Format: `gs://--
1224
+ # blueprint-config` Constraints: - The bucket needs to be in the same project as
1225
+ # the deployment - The path cannot be within the path of `gcs_source` If omitted
1226
+ # and deployment resource ref provided has artifacts_gcs_bucket defined, that
1227
+ # artifact bucket is used.
1228
+ # Corresponds to the JSON property `artifactsGcsBucket`
1229
+ # @return [String]
1230
+ attr_accessor :artifacts_gcs_bucket
1231
+
1232
+ # Output only. Cloud Build instance UUID associated with this preview.
1233
+ # Corresponds to the JSON property `build`
1234
+ # @return [String]
1235
+ attr_accessor :build
1236
+
1237
+ # Output only. Time the preview was created.
1238
+ # Corresponds to the JSON property `createTime`
1239
+ # @return [String]
1240
+ attr_accessor :create_time
1241
+
1242
+ # Optional. Optional deployment reference. If specified, the preview will be
1243
+ # performed using the provided deployment's current state and use any relevant
1244
+ # fields from the deployment unless explicitly specified in the preview create
1245
+ # request.
1246
+ # Corresponds to the JSON property `deployment`
1247
+ # @return [String]
1248
+ attr_accessor :deployment
1249
+
1250
+ # Output only. Code describing any errors that may have occurred.
1251
+ # Corresponds to the JSON property `errorCode`
1252
+ # @return [String]
1253
+ attr_accessor :error_code
1254
+
1255
+ # Output only. Link to tf-error.ndjson file, which contains the full list of the
1256
+ # errors encountered during a Terraform preview. Format: `gs://`bucket`/`object``
1257
+ # .
1258
+ # Corresponds to the JSON property `errorLogs`
1259
+ # @return [String]
1260
+ attr_accessor :error_logs
1261
+
1262
+ # The `Status` type defines a logical error model that is suitable for different
1263
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1264
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1265
+ # data: error code, error message, and error details. You can find out more
1266
+ # about this error model and how to work with it in the [API Design Guide](https:
1267
+ # //cloud.google.com/apis/design/errors).
1268
+ # Corresponds to the JSON property `errorStatus`
1269
+ # @return [Google::Apis::ConfigV1::Status]
1270
+ attr_accessor :error_status
1271
+
1272
+ # Optional. User-defined labels for the preview.
1273
+ # Corresponds to the JSON property `labels`
1274
+ # @return [Hash<String,String>]
1275
+ attr_accessor :labels
1276
+
1277
+ # Output only. Location of preview logs in `gs://`bucket`/`object`` format.
1278
+ # Corresponds to the JSON property `logs`
1279
+ # @return [String]
1280
+ attr_accessor :logs
1281
+
1282
+ # Identifier. Resource name of the preview. Resource name can be user provided
1283
+ # or server generated ID if unspecified. Format: `projects/`project`/locations/`
1284
+ # location`/previews/`preview``
1285
+ # Corresponds to the JSON property `name`
1286
+ # @return [String]
1287
+ attr_accessor :name
1288
+
1289
+ # Artifacts created by preview.
1290
+ # Corresponds to the JSON property `previewArtifacts`
1291
+ # @return [Google::Apis::ConfigV1::PreviewArtifacts]
1292
+ attr_accessor :preview_artifacts
1293
+
1294
+ # Optional. Current mode of preview.
1295
+ # Corresponds to the JSON property `previewMode`
1296
+ # @return [String]
1297
+ attr_accessor :preview_mode
1298
+
1299
+ # Optional. User-specified Service Account (SA) credentials to be used when
1300
+ # previewing resources. Format: `projects/`projectID`/serviceAccounts/`
1301
+ # serviceAccount``
1302
+ # Corresponds to the JSON property `serviceAccount`
1303
+ # @return [String]
1304
+ attr_accessor :service_account
1305
+
1306
+ # Output only. Current state of the preview.
1307
+ # Corresponds to the JSON property `state`
1308
+ # @return [String]
1309
+ attr_accessor :state
1310
+
1311
+ # TerraformBlueprint describes the source of a Terraform root module which
1312
+ # describes the resources and configs to be deployed.
1313
+ # Corresponds to the JSON property `terraformBlueprint`
1314
+ # @return [Google::Apis::ConfigV1::TerraformBlueprint]
1315
+ attr_accessor :terraform_blueprint
1316
+
1317
+ # Output only. Summary of errors encountered during Terraform preview. It has a
1318
+ # size limit of 10, i.e. only top 10 errors will be summarized here.
1319
+ # Corresponds to the JSON property `tfErrors`
1320
+ # @return [Array<Google::Apis::ConfigV1::TerraformError>]
1321
+ attr_accessor :tf_errors
1322
+
1323
+ # Optional. The user-specified Worker Pool resource in which the Cloud Build job
1324
+ # will execute. Format projects/`project`/locations/`location`/workerPools/`
1325
+ # workerPoolId` If this field is unspecified, the default Cloud Build worker
1326
+ # pool will be used. If omitted and deployment resource ref provided has
1327
+ # worker_pool defined, that worker pool is used.
1328
+ # Corresponds to the JSON property `workerPool`
1329
+ # @return [String]
1330
+ attr_accessor :worker_pool
1331
+
1332
+ def initialize(**args)
1333
+ update!(**args)
1334
+ end
1335
+
1336
+ # Update properties of this object
1337
+ def update!(**args)
1338
+ @artifacts_gcs_bucket = args[:artifacts_gcs_bucket] if args.key?(:artifacts_gcs_bucket)
1339
+ @build = args[:build] if args.key?(:build)
1340
+ @create_time = args[:create_time] if args.key?(:create_time)
1341
+ @deployment = args[:deployment] if args.key?(:deployment)
1342
+ @error_code = args[:error_code] if args.key?(:error_code)
1343
+ @error_logs = args[:error_logs] if args.key?(:error_logs)
1344
+ @error_status = args[:error_status] if args.key?(:error_status)
1345
+ @labels = args[:labels] if args.key?(:labels)
1346
+ @logs = args[:logs] if args.key?(:logs)
1347
+ @name = args[:name] if args.key?(:name)
1348
+ @preview_artifacts = args[:preview_artifacts] if args.key?(:preview_artifacts)
1349
+ @preview_mode = args[:preview_mode] if args.key?(:preview_mode)
1350
+ @service_account = args[:service_account] if args.key?(:service_account)
1351
+ @state = args[:state] if args.key?(:state)
1352
+ @terraform_blueprint = args[:terraform_blueprint] if args.key?(:terraform_blueprint)
1353
+ @tf_errors = args[:tf_errors] if args.key?(:tf_errors)
1354
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1355
+ end
1356
+ end
1357
+
1358
+ # Artifacts created by preview.
1359
+ class PreviewArtifacts
1360
+ include Google::Apis::Core::Hashable
1361
+
1362
+ # Output only. Location of artifacts in Google Cloud Storage. Format: `gs://`
1363
+ # bucket`/`object``
1364
+ # Corresponds to the JSON property `artifacts`
1365
+ # @return [String]
1366
+ attr_accessor :artifacts
1367
+
1368
+ # Output only. Location of a blueprint copy and other content in Google Cloud
1369
+ # Storage. Format: `gs://`bucket`/`object``
1370
+ # Corresponds to the JSON property `content`
1371
+ # @return [String]
1372
+ attr_accessor :content
1373
+
1374
+ def initialize(**args)
1375
+ update!(**args)
1376
+ end
1377
+
1378
+ # Update properties of this object
1379
+ def update!(**args)
1380
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
1381
+ @content = args[:content] if args.key?(:content)
1382
+ end
1383
+ end
1384
+
1385
+ # Ephemeral metadata content describing the state of a preview operation.
1386
+ class PreviewOperationMetadata
1387
+ include Google::Apis::Core::Hashable
1388
+
1389
+ # Output only. Cloud Build instance UUID associated with this preview.
1390
+ # Corresponds to the JSON property `build`
1391
+ # @return [String]
1392
+ attr_accessor :build
1393
+
1394
+ # Output only. Location of preview logs in `gs://`bucket`/`object`` format.
1395
+ # Corresponds to the JSON property `logs`
1396
+ # @return [String]
1397
+ attr_accessor :logs
1398
+
1399
+ # Artifacts created by preview.
1400
+ # Corresponds to the JSON property `previewArtifacts`
1401
+ # @return [Google::Apis::ConfigV1::PreviewArtifacts]
1402
+ attr_accessor :preview_artifacts
1403
+
1404
+ # The current step the preview operation is running.
1405
+ # Corresponds to the JSON property `step`
1406
+ # @return [String]
1407
+ attr_accessor :step
1408
+
1409
+ def initialize(**args)
1410
+ update!(**args)
1411
+ end
1412
+
1413
+ # Update properties of this object
1414
+ def update!(**args)
1415
+ @build = args[:build] if args.key?(:build)
1416
+ @logs = args[:logs] if args.key?(:logs)
1417
+ @preview_artifacts = args[:preview_artifacts] if args.key?(:preview_artifacts)
1418
+ @step = args[:step] if args.key?(:step)
1419
+ end
1420
+ end
1421
+
1422
+ # Contains a signed Cloud Storage URLs.
1423
+ class PreviewResult
1424
+ include Google::Apis::Core::Hashable
1425
+
1426
+ # Output only. Plan binary signed URL
1427
+ # Corresponds to the JSON property `binarySignedUri`
1428
+ # @return [String]
1429
+ attr_accessor :binary_signed_uri
1430
+
1431
+ # Output only. Plan JSON signed URL
1432
+ # Corresponds to the JSON property `jsonSignedUri`
1433
+ # @return [String]
1434
+ attr_accessor :json_signed_uri
1435
+
1436
+ def initialize(**args)
1437
+ update!(**args)
1438
+ end
1439
+
1440
+ # Update properties of this object
1441
+ def update!(**args)
1442
+ @binary_signed_uri = args[:binary_signed_uri] if args.key?(:binary_signed_uri)
1443
+ @json_signed_uri = args[:json_signed_uri] if args.key?(:json_signed_uri)
1444
+ end
1445
+ end
1446
+
1447
+ # Resource represents a Google Cloud Platform resource actuated by IM. Resources
1448
+ # are child resources of Revisions.
1449
+ class Resource
1450
+ include Google::Apis::Core::Hashable
1451
+
1452
+ # Output only. Map of Cloud Asset Inventory (CAI) type to CAI info (e.g. CAI ID).
1453
+ # CAI type format follows https://cloud.google.com/asset-inventory/docs/
1454
+ # supported-asset-types
1455
+ # Corresponds to the JSON property `caiAssets`
1456
+ # @return [Hash<String,Google::Apis::ConfigV1::ResourceCaiInfo>]
1457
+ attr_accessor :cai_assets
1458
+
1459
+ # Output only. Intent of the resource.
1460
+ # Corresponds to the JSON property `intent`
1461
+ # @return [String]
1462
+ attr_accessor :intent
1463
+
1464
+ # Output only. Resource name. Format: `projects/`project`/locations/`location`/
1465
+ # deployments/`deployment`/revisions/`revision`/resources/`resource``
1466
+ # Corresponds to the JSON property `name`
1467
+ # @return [String]
1468
+ attr_accessor :name
1469
+
1470
+ # Output only. Current state of the resource.
1471
+ # Corresponds to the JSON property `state`
1472
+ # @return [String]
1473
+ attr_accessor :state
1474
+
1475
+ # Terraform info of a Resource.
1476
+ # Corresponds to the JSON property `terraformInfo`
1477
+ # @return [Google::Apis::ConfigV1::ResourceTerraformInfo]
1478
+ attr_accessor :terraform_info
1479
+
1480
+ def initialize(**args)
1481
+ update!(**args)
1482
+ end
1483
+
1484
+ # Update properties of this object
1485
+ def update!(**args)
1486
+ @cai_assets = args[:cai_assets] if args.key?(:cai_assets)
1487
+ @intent = args[:intent] if args.key?(:intent)
1488
+ @name = args[:name] if args.key?(:name)
1489
+ @state = args[:state] if args.key?(:state)
1490
+ @terraform_info = args[:terraform_info] if args.key?(:terraform_info)
1491
+ end
1492
+ end
1493
+
1494
+ # CAI info of a Resource.
1495
+ class ResourceCaiInfo
1496
+ include Google::Apis::Core::Hashable
1497
+
1498
+ # CAI resource name in the format following https://cloud.google.com/apis/design/
1499
+ # resource_names#full_resource_name
1500
+ # Corresponds to the JSON property `fullResourceName`
1501
+ # @return [String]
1502
+ attr_accessor :full_resource_name
1503
+
1504
+ def initialize(**args)
1505
+ update!(**args)
1506
+ end
1507
+
1508
+ # Update properties of this object
1509
+ def update!(**args)
1510
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
1511
+ end
1512
+ end
1513
+
1514
+ # Terraform info of a Resource.
1515
+ class ResourceTerraformInfo
1516
+ include Google::Apis::Core::Hashable
1517
+
1518
+ # TF resource address that uniquely identifies this resource within this
1519
+ # deployment.
1520
+ # Corresponds to the JSON property `address`
1521
+ # @return [String]
1522
+ attr_accessor :address
1523
+
1524
+ # ID attribute of the TF resource
1525
+ # Corresponds to the JSON property `id`
1526
+ # @return [String]
1527
+ attr_accessor :id
1528
+
1529
+ # TF resource type
1530
+ # Corresponds to the JSON property `type`
1531
+ # @return [String]
1532
+ attr_accessor :type
1533
+
1534
+ def initialize(**args)
1535
+ update!(**args)
1536
+ end
1537
+
1538
+ # Update properties of this object
1539
+ def update!(**args)
1540
+ @address = args[:address] if args.key?(:address)
1541
+ @id = args[:id] if args.key?(:id)
1542
+ @type = args[:type] if args.key?(:type)
1543
+ end
1544
+ end
1545
+
1546
+ # A child resource of a Deployment generated by a 'CreateDeployment' or '
1547
+ # UpdateDeployment' call. Each Revision contains metadata pertaining to a
1548
+ # snapshot of a particular Deployment.
1549
+ class Revision
1550
+ include Google::Apis::Core::Hashable
1551
+
1552
+ # Output only. The action which created this revision
1553
+ # Corresponds to the JSON property `action`
1554
+ # @return [String]
1555
+ attr_accessor :action
1556
+
1557
+ # Outputs and artifacts from applying a deployment.
1558
+ # Corresponds to the JSON property `applyResults`
1559
+ # @return [Google::Apis::ConfigV1::ApplyResults]
1560
+ attr_accessor :apply_results
1561
+
1562
+ # Output only. Cloud Build instance UUID associated with this revision.
1563
+ # Corresponds to the JSON property `build`
1564
+ # @return [String]
1565
+ attr_accessor :build
1566
+
1567
+ # Output only. Time when the revision was created.
1568
+ # Corresponds to the JSON property `createTime`
1569
+ # @return [String]
1570
+ attr_accessor :create_time
1571
+
1572
+ # Output only. Code describing any errors that may have occurred.
1573
+ # Corresponds to the JSON property `errorCode`
1574
+ # @return [String]
1575
+ attr_accessor :error_code
1576
+
1577
+ # Output only. Location of Terraform error logs in Google Cloud Storage. Format:
1578
+ # `gs://`bucket`/`object``.
1579
+ # Corresponds to the JSON property `errorLogs`
1580
+ # @return [String]
1581
+ attr_accessor :error_logs
1582
+
1583
+ # Output only. By default, Infra Manager will return a failure when Terraform
1584
+ # encounters a 409 code (resource conflict error) during actuation. If this flag
1585
+ # is set to true, Infra Manager will instead attempt to automatically import the
1586
+ # resource into the Terraform state (for supported resource types) and continue
1587
+ # actuation. Not all resource types are supported, refer to documentation.
1588
+ # Corresponds to the JSON property `importExistingResources`
1589
+ # @return [Boolean]
1590
+ attr_accessor :import_existing_resources
1591
+ alias_method :import_existing_resources?, :import_existing_resources
1592
+
1593
+ # Output only. Location of Revision operation logs in `gs://`bucket`/`object``
1594
+ # format.
1595
+ # Corresponds to the JSON property `logs`
1596
+ # @return [String]
1597
+ attr_accessor :logs
1598
+
1599
+ # Revision name. Format: `projects/`project`/locations/`location`/deployments/`
1600
+ # deployment`/ revisions/`revision``
1601
+ # Corresponds to the JSON property `name`
1602
+ # @return [String]
1603
+ attr_accessor :name
1604
+
1605
+ # Optional. Input to control quota checks for resources in terraform
1606
+ # configuration files. There are limited resources on which quota validation
1607
+ # applies.
1608
+ # Corresponds to the JSON property `quotaValidation`
1609
+ # @return [String]
1610
+ attr_accessor :quota_validation
1611
+
1612
+ # Output only. Cloud Storage path containing quota validation results. This
1613
+ # field is set when a user sets Deployment.quota_validation field to ENABLED or
1614
+ # ENFORCED. Format: `gs://`bucket`/`object``.
1615
+ # Corresponds to the JSON property `quotaValidationResults`
1616
+ # @return [String]
1617
+ attr_accessor :quota_validation_results
1618
+
1619
+ # Output only. User-specified Service Account (SA) to be used as credential to
1620
+ # manage resources. Format: `projects/`projectID`/serviceAccounts/`
1621
+ # serviceAccount``
1622
+ # Corresponds to the JSON property `serviceAccount`
1623
+ # @return [String]
1624
+ attr_accessor :service_account
1625
+
1626
+ # Output only. Current state of the revision.
1627
+ # Corresponds to the JSON property `state`
1628
+ # @return [String]
1629
+ attr_accessor :state
1630
+
1631
+ # Output only. Additional info regarding the current state.
1632
+ # Corresponds to the JSON property `stateDetail`
1633
+ # @return [String]
1634
+ attr_accessor :state_detail
1635
+
1636
+ # TerraformBlueprint describes the source of a Terraform root module which
1637
+ # describes the resources and configs to be deployed.
1638
+ # Corresponds to the JSON property `terraformBlueprint`
1639
+ # @return [Google::Apis::ConfigV1::TerraformBlueprint]
1640
+ attr_accessor :terraform_blueprint
1641
+
1642
+ # Output only. Errors encountered when creating or updating this deployment.
1643
+ # Errors are truncated to 10 entries, see `delete_results` and `error_logs` for
1644
+ # full details.
1645
+ # Corresponds to the JSON property `tfErrors`
1646
+ # @return [Array<Google::Apis::ConfigV1::TerraformError>]
1647
+ attr_accessor :tf_errors
1648
+
1649
+ # Output only. The version of Terraform used to create the Revision. It is in
1650
+ # the format of "Major.Minor.Patch", for example, "1.3.10".
1651
+ # Corresponds to the JSON property `tfVersion`
1652
+ # @return [String]
1653
+ attr_accessor :tf_version
1654
+
1655
+ # Output only. The user-specified Terraform version constraint. Example: "=1.3.
1656
+ # 10".
1657
+ # Corresponds to the JSON property `tfVersionConstraint`
1658
+ # @return [String]
1659
+ attr_accessor :tf_version_constraint
1660
+
1661
+ # Output only. Time when the revision was last modified.
1662
+ # Corresponds to the JSON property `updateTime`
1663
+ # @return [String]
1664
+ attr_accessor :update_time
1665
+
1666
+ # Output only. The user-specified Cloud Build worker pool resource in which the
1667
+ # Cloud Build job will execute. Format: `projects/`project`/locations/`location`/
1668
+ # workerPools/`workerPoolId``. If this field is unspecified, the default Cloud
1669
+ # Build worker pool will be used.
1670
+ # Corresponds to the JSON property `workerPool`
1671
+ # @return [String]
1672
+ attr_accessor :worker_pool
1673
+
1674
+ def initialize(**args)
1675
+ update!(**args)
1676
+ end
1677
+
1678
+ # Update properties of this object
1679
+ def update!(**args)
1680
+ @action = args[:action] if args.key?(:action)
1681
+ @apply_results = args[:apply_results] if args.key?(:apply_results)
1682
+ @build = args[:build] if args.key?(:build)
1683
+ @create_time = args[:create_time] if args.key?(:create_time)
1684
+ @error_code = args[:error_code] if args.key?(:error_code)
1685
+ @error_logs = args[:error_logs] if args.key?(:error_logs)
1686
+ @import_existing_resources = args[:import_existing_resources] if args.key?(:import_existing_resources)
1687
+ @logs = args[:logs] if args.key?(:logs)
1688
+ @name = args[:name] if args.key?(:name)
1689
+ @quota_validation = args[:quota_validation] if args.key?(:quota_validation)
1690
+ @quota_validation_results = args[:quota_validation_results] if args.key?(:quota_validation_results)
1691
+ @service_account = args[:service_account] if args.key?(:service_account)
1692
+ @state = args[:state] if args.key?(:state)
1693
+ @state_detail = args[:state_detail] if args.key?(:state_detail)
1694
+ @terraform_blueprint = args[:terraform_blueprint] if args.key?(:terraform_blueprint)
1695
+ @tf_errors = args[:tf_errors] if args.key?(:tf_errors)
1696
+ @tf_version = args[:tf_version] if args.key?(:tf_version)
1697
+ @tf_version_constraint = args[:tf_version_constraint] if args.key?(:tf_version_constraint)
1698
+ @update_time = args[:update_time] if args.key?(:update_time)
1699
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1700
+ end
1701
+ end
1702
+
1703
+ # Request message for `SetIamPolicy` method.
1704
+ class SetIamPolicyRequest
1705
+ include Google::Apis::Core::Hashable
1706
+
1707
+ # An Identity and Access Management (IAM) policy, which specifies access
1708
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1709
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1710
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1711
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1712
+ # an IAM predefined role or a user-created custom role. For some types of Google
1713
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1714
+ # logical expression that allows access to a resource only if the expression
1715
+ # evaluates to `true`. A condition can add constraints based on attributes of
1716
+ # the request, the resource, or both. To learn which resources support
1717
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1718
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1719
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1720
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1721
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1722
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1723
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1724
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1725
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1726
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1727
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1728
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1729
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1730
+ # title: expirable access description: Does not grant access after Sep 2020
1731
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1732
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1733
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1734
+ # Corresponds to the JSON property `policy`
1735
+ # @return [Google::Apis::ConfigV1::Policy]
1736
+ attr_accessor :policy
1737
+
1738
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1739
+ # the fields in the mask will be modified. If no mask is provided, the following
1740
+ # default mask is used: `paths: "bindings, etag"`
1741
+ # Corresponds to the JSON property `updateMask`
1742
+ # @return [String]
1743
+ attr_accessor :update_mask
1744
+
1745
+ def initialize(**args)
1746
+ update!(**args)
1747
+ end
1748
+
1749
+ # Update properties of this object
1750
+ def update!(**args)
1751
+ @policy = args[:policy] if args.key?(:policy)
1752
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1753
+ end
1754
+ end
1755
+
1756
+ # Contains info about a Terraform state file
1757
+ class Statefile
1758
+ include Google::Apis::Core::Hashable
1759
+
1760
+ # Output only. Cloud Storage signed URI used for downloading or uploading the
1761
+ # state file.
1762
+ # Corresponds to the JSON property `signedUri`
1763
+ # @return [String]
1764
+ attr_accessor :signed_uri
1765
+
1766
+ def initialize(**args)
1767
+ update!(**args)
1768
+ end
1769
+
1770
+ # Update properties of this object
1771
+ def update!(**args)
1772
+ @signed_uri = args[:signed_uri] if args.key?(:signed_uri)
1773
+ end
1774
+ end
1775
+
1776
+ # The `Status` type defines a logical error model that is suitable for different
1777
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1778
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1779
+ # data: error code, error message, and error details. You can find out more
1780
+ # about this error model and how to work with it in the [API Design Guide](https:
1781
+ # //cloud.google.com/apis/design/errors).
1782
+ class Status
1783
+ include Google::Apis::Core::Hashable
1784
+
1785
+ # The status code, which should be an enum value of google.rpc.Code.
1786
+ # Corresponds to the JSON property `code`
1787
+ # @return [Fixnum]
1788
+ attr_accessor :code
1789
+
1790
+ # A list of messages that carry the error details. There is a common set of
1791
+ # message types for APIs to use.
1792
+ # Corresponds to the JSON property `details`
1793
+ # @return [Array<Hash<String,Object>>]
1794
+ attr_accessor :details
1795
+
1796
+ # A developer-facing error message, which should be in English. Any user-facing
1797
+ # error message should be localized and sent in the google.rpc.Status.details
1798
+ # field, or localized by the client.
1799
+ # Corresponds to the JSON property `message`
1800
+ # @return [String]
1801
+ attr_accessor :message
1802
+
1803
+ def initialize(**args)
1804
+ update!(**args)
1805
+ end
1806
+
1807
+ # Update properties of this object
1808
+ def update!(**args)
1809
+ @code = args[:code] if args.key?(:code)
1810
+ @details = args[:details] if args.key?(:details)
1811
+ @message = args[:message] if args.key?(:message)
1812
+ end
1813
+ end
1814
+
1815
+ # TerraformBlueprint describes the source of a Terraform root module which
1816
+ # describes the resources and configs to be deployed.
1817
+ class TerraformBlueprint
1818
+ include Google::Apis::Core::Hashable
1819
+
1820
+ # Required. URI of an object in Google Cloud Storage. Format: `gs://`bucket`/`
1821
+ # object`` URI may also specify an object version for zipped objects. Format: `
1822
+ # gs://`bucket`/`object`#`version``
1823
+ # Corresponds to the JSON property `gcsSource`
1824
+ # @return [String]
1825
+ attr_accessor :gcs_source
1826
+
1827
+ # A set of files in a Git repository.
1828
+ # Corresponds to the JSON property `gitSource`
1829
+ # @return [Google::Apis::ConfigV1::GitSource]
1830
+ attr_accessor :git_source
1831
+
1832
+ # Input variable values for the Terraform blueprint.
1833
+ # Corresponds to the JSON property `inputValues`
1834
+ # @return [Hash<String,Google::Apis::ConfigV1::TerraformVariable>]
1835
+ attr_accessor :input_values
1836
+
1837
+ def initialize(**args)
1838
+ update!(**args)
1839
+ end
1840
+
1841
+ # Update properties of this object
1842
+ def update!(**args)
1843
+ @gcs_source = args[:gcs_source] if args.key?(:gcs_source)
1844
+ @git_source = args[:git_source] if args.key?(:git_source)
1845
+ @input_values = args[:input_values] if args.key?(:input_values)
1846
+ end
1847
+ end
1848
+
1849
+ # Errors encountered during actuation using Terraform
1850
+ class TerraformError
1851
+ include Google::Apis::Core::Hashable
1852
+
1853
+ # The `Status` type defines a logical error model that is suitable for different
1854
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1855
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1856
+ # data: error code, error message, and error details. You can find out more
1857
+ # about this error model and how to work with it in the [API Design Guide](https:
1858
+ # //cloud.google.com/apis/design/errors).
1859
+ # Corresponds to the JSON property `error`
1860
+ # @return [Google::Apis::ConfigV1::Status]
1861
+ attr_accessor :error
1862
+
1863
+ # A human-readable error description.
1864
+ # Corresponds to the JSON property `errorDescription`
1865
+ # @return [String]
1866
+ attr_accessor :error_description
1867
+
1868
+ # HTTP response code returned from Google Cloud Platform APIs when Terraform
1869
+ # fails to provision the resource. If unset or 0, no HTTP response code was
1870
+ # returned by Terraform.
1871
+ # Corresponds to the JSON property `httpResponseCode`
1872
+ # @return [Fixnum]
1873
+ attr_accessor :http_response_code
1874
+
1875
+ # Address of the resource associated with the error, e.g. `
1876
+ # google_compute_network.vpc_network`.
1877
+ # Corresponds to the JSON property `resourceAddress`
1878
+ # @return [String]
1879
+ attr_accessor :resource_address
1880
+
1881
+ def initialize(**args)
1882
+ update!(**args)
1883
+ end
1884
+
1885
+ # Update properties of this object
1886
+ def update!(**args)
1887
+ @error = args[:error] if args.key?(:error)
1888
+ @error_description = args[:error_description] if args.key?(:error_description)
1889
+ @http_response_code = args[:http_response_code] if args.key?(:http_response_code)
1890
+ @resource_address = args[:resource_address] if args.key?(:resource_address)
1891
+ end
1892
+ end
1893
+
1894
+ # Describes a Terraform output.
1895
+ class TerraformOutput
1896
+ include Google::Apis::Core::Hashable
1897
+
1898
+ # Identifies whether Terraform has set this output as a potential sensitive
1899
+ # value.
1900
+ # Corresponds to the JSON property `sensitive`
1901
+ # @return [Boolean]
1902
+ attr_accessor :sensitive
1903
+ alias_method :sensitive?, :sensitive
1904
+
1905
+ # Value of output.
1906
+ # Corresponds to the JSON property `value`
1907
+ # @return [Object]
1908
+ attr_accessor :value
1909
+
1910
+ def initialize(**args)
1911
+ update!(**args)
1912
+ end
1913
+
1914
+ # Update properties of this object
1915
+ def update!(**args)
1916
+ @sensitive = args[:sensitive] if args.key?(:sensitive)
1917
+ @value = args[:value] if args.key?(:value)
1918
+ end
1919
+ end
1920
+
1921
+ # A Terraform input variable.
1922
+ class TerraformVariable
1923
+ include Google::Apis::Core::Hashable
1924
+
1925
+ # Input variable value.
1926
+ # Corresponds to the JSON property `inputValue`
1927
+ # @return [Object]
1928
+ attr_accessor :input_value
1929
+
1930
+ def initialize(**args)
1931
+ update!(**args)
1932
+ end
1933
+
1934
+ # Update properties of this object
1935
+ def update!(**args)
1936
+ @input_value = args[:input_value] if args.key?(:input_value)
1937
+ end
1938
+ end
1939
+
1940
+ # A TerraformVersion represents the support state the corresponding Terraform
1941
+ # version.
1942
+ class TerraformVersion
1943
+ include Google::Apis::Core::Hashable
1944
+
1945
+ # Output only. When the version is deprecated.
1946
+ # Corresponds to the JSON property `deprecateTime`
1947
+ # @return [String]
1948
+ attr_accessor :deprecate_time
1949
+
1950
+ # Identifier. The version name is in the format: 'projects/`project_id`/
1951
+ # locations/`location`/terraformVersions/`terraform_version`'.
1952
+ # Corresponds to the JSON property `name`
1953
+ # @return [String]
1954
+ attr_accessor :name
1955
+
1956
+ # Output only. When the version is obsolete.
1957
+ # Corresponds to the JSON property `obsoleteTime`
1958
+ # @return [String]
1959
+ attr_accessor :obsolete_time
1960
+
1961
+ # Output only. The state of the version, ACTIVE, DEPRECATED or OBSOLETE.
1962
+ # Corresponds to the JSON property `state`
1963
+ # @return [String]
1964
+ attr_accessor :state
1965
+
1966
+ # Output only. When the version is supported.
1967
+ # Corresponds to the JSON property `supportTime`
1968
+ # @return [String]
1969
+ attr_accessor :support_time
1970
+
1971
+ def initialize(**args)
1972
+ update!(**args)
1973
+ end
1974
+
1975
+ # Update properties of this object
1976
+ def update!(**args)
1977
+ @deprecate_time = args[:deprecate_time] if args.key?(:deprecate_time)
1978
+ @name = args[:name] if args.key?(:name)
1979
+ @obsolete_time = args[:obsolete_time] if args.key?(:obsolete_time)
1980
+ @state = args[:state] if args.key?(:state)
1981
+ @support_time = args[:support_time] if args.key?(:support_time)
1982
+ end
1983
+ end
1984
+
1985
+ # Request message for `TestIamPermissions` method.
1986
+ class TestIamPermissionsRequest
1987
+ include Google::Apis::Core::Hashable
1988
+
1989
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1990
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
1991
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1992
+ # Corresponds to the JSON property `permissions`
1993
+ # @return [Array<String>]
1994
+ attr_accessor :permissions
1995
+
1996
+ def initialize(**args)
1997
+ update!(**args)
1998
+ end
1999
+
2000
+ # Update properties of this object
2001
+ def update!(**args)
2002
+ @permissions = args[:permissions] if args.key?(:permissions)
2003
+ end
2004
+ end
2005
+
2006
+ # Response message for `TestIamPermissions` method.
2007
+ class TestIamPermissionsResponse
2008
+ include Google::Apis::Core::Hashable
2009
+
2010
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2011
+ # Corresponds to the JSON property `permissions`
2012
+ # @return [Array<String>]
2013
+ attr_accessor :permissions
2014
+
2015
+ def initialize(**args)
2016
+ update!(**args)
2017
+ end
2018
+
2019
+ # Update properties of this object
2020
+ def update!(**args)
2021
+ @permissions = args[:permissions] if args.key?(:permissions)
2022
+ end
2023
+ end
2024
+
2025
+ # A request to unlock a state file passed to a 'UnlockDeployment' call.
2026
+ class UnlockDeploymentRequest
2027
+ include Google::Apis::Core::Hashable
2028
+
2029
+ # Required. Lock ID of the lock file to be unlocked.
2030
+ # Corresponds to the JSON property `lockId`
2031
+ # @return [Fixnum]
2032
+ attr_accessor :lock_id
2033
+
2034
+ def initialize(**args)
2035
+ update!(**args)
2036
+ end
2037
+
2038
+ # Update properties of this object
2039
+ def update!(**args)
2040
+ @lock_id = args[:lock_id] if args.key?(:lock_id)
2041
+ end
2042
+ end
2043
+ end
2044
+ end
2045
+ end