google-apis-clouddeploy_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1759 @@
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 ClouddeployV1
24
+
25
+ # The request object used by `ApproveRollout`.
26
+ class ApproveRolloutRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Required. True = approve; false = reject
30
+ # Corresponds to the JSON property `approved`
31
+ # @return [Boolean]
32
+ attr_accessor :approved
33
+ alias_method :approved?, :approved
34
+
35
+ def initialize(**args)
36
+ update!(**args)
37
+ end
38
+
39
+ # Update properties of this object
40
+ def update!(**args)
41
+ @approved = args[:approved] if args.key?(:approved)
42
+ end
43
+ end
44
+
45
+ # The response object from `ApproveRollout`.
46
+ class ApproveRolloutResponse
47
+ include Google::Apis::Core::Hashable
48
+
49
+ def initialize(**args)
50
+ update!(**args)
51
+ end
52
+
53
+ # Update properties of this object
54
+ def update!(**args)
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 from
72
+ # 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::ClouddeployV1::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::ClouddeployV1::Expr]
150
+ attr_accessor :condition
151
+
152
+ # Specifies the principals requesting access for a Cloud Platform 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. * `
157
+ # user:`emailid``: An email address that represents a specific Google account.
158
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
159
+ # address that represents a service account. For example, `my-other-app@appspot.
160
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
161
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
162
+ # `uniqueid``: An email address (plus unique identifier) representing a user
163
+ # that has been recently deleted. For example, `alice@example.com?uid=
164
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
165
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
166
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
167
+ # identifier) representing a service account that has been recently deleted. For
168
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
169
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
170
+ # emailid`` and the undeleted service account retains the role in the binding. *
171
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
172
+ # identifier) representing a Google group that has been recently deleted. For
173
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
174
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
175
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
176
+ # primary) that represents all the users of that domain. For example, `google.
177
+ # com` or `example.com`.
178
+ # Corresponds to the JSON property `members`
179
+ # @return [Array<String>]
180
+ attr_accessor :members
181
+
182
+ # Role that is assigned to the list of `members`, or principals. For example, `
183
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
184
+ # Corresponds to the JSON property `role`
185
+ # @return [String]
186
+ attr_accessor :role
187
+
188
+ def initialize(**args)
189
+ update!(**args)
190
+ end
191
+
192
+ # Update properties of this object
193
+ def update!(**args)
194
+ @condition = args[:condition] if args.key?(:condition)
195
+ @members = args[:members] if args.key?(:members)
196
+ @role = args[:role] if args.key?(:role)
197
+ end
198
+ end
199
+
200
+ # Description of an a image to use during Skaffold rendering.
201
+ class BuildArtifact
202
+ include Google::Apis::Core::Hashable
203
+
204
+ # Image name in Skaffold configuration.
205
+ # Corresponds to the JSON property `image`
206
+ # @return [String]
207
+ attr_accessor :image
208
+
209
+ # Image tag to use. This will generally be the full path to an image, such as "
210
+ # gcr.io/my-project/busybox:1.2.3" or "gcr.io/my-project/busybox@sha256:abc123".
211
+ # Corresponds to the JSON property `tag`
212
+ # @return [String]
213
+ attr_accessor :tag
214
+
215
+ def initialize(**args)
216
+ update!(**args)
217
+ end
218
+
219
+ # Update properties of this object
220
+ def update!(**args)
221
+ @image = args[:image] if args.key?(:image)
222
+ @tag = args[:tag] if args.key?(:tag)
223
+ end
224
+ end
225
+
226
+ # The request message for Operations.CancelOperation.
227
+ class CancelOperationRequest
228
+ include Google::Apis::Core::Hashable
229
+
230
+ def initialize(**args)
231
+ update!(**args)
232
+ end
233
+
234
+ # Update properties of this object
235
+ def update!(**args)
236
+ end
237
+ end
238
+
239
+ # Service-wide configuration.
240
+ class Config
241
+ include Google::Apis::Core::Hashable
242
+
243
+ # Output only. Default Skaffold version that is assigned when a Release is
244
+ # created without specifying a Skaffold version.
245
+ # Corresponds to the JSON property `defaultSkaffoldVersion`
246
+ # @return [String]
247
+ attr_accessor :default_skaffold_version
248
+
249
+ # Name of the configuration.
250
+ # Corresponds to the JSON property `name`
251
+ # @return [String]
252
+ attr_accessor :name
253
+
254
+ # Output only. All supported versions of Skaffold.
255
+ # Corresponds to the JSON property `supportedVersions`
256
+ # @return [Array<Google::Apis::ClouddeployV1::SkaffoldVersion>]
257
+ attr_accessor :supported_versions
258
+
259
+ def initialize(**args)
260
+ update!(**args)
261
+ end
262
+
263
+ # Update properties of this object
264
+ def update!(**args)
265
+ @default_skaffold_version = args[:default_skaffold_version] if args.key?(:default_skaffold_version)
266
+ @name = args[:name] if args.key?(:name)
267
+ @supported_versions = args[:supported_versions] if args.key?(:supported_versions)
268
+ end
269
+ end
270
+
271
+ # Represents a whole or partial calendar date, such as a birthday. The time of
272
+ # day and time zone are either specified elsewhere or are insignificant. The
273
+ # date is relative to the Gregorian Calendar. This can represent one of the
274
+ # following: * A full date, with non-zero year, month, and day values * A month
275
+ # and day value, with a zero year, such as an anniversary * A year on its own,
276
+ # with zero month and day values * A year and month value, with a zero day, such
277
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
278
+ # google.protobuf.Timestamp`.
279
+ class Date
280
+ include Google::Apis::Core::Hashable
281
+
282
+ # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
283
+ # specify a year by itself or a year and month where the day isn't significant.
284
+ # Corresponds to the JSON property `day`
285
+ # @return [Fixnum]
286
+ attr_accessor :day
287
+
288
+ # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month
289
+ # and day.
290
+ # Corresponds to the JSON property `month`
291
+ # @return [Fixnum]
292
+ attr_accessor :month
293
+
294
+ # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
295
+ # year.
296
+ # Corresponds to the JSON property `year`
297
+ # @return [Fixnum]
298
+ attr_accessor :year
299
+
300
+ def initialize(**args)
301
+ update!(**args)
302
+ end
303
+
304
+ # Update properties of this object
305
+ def update!(**args)
306
+ @day = args[:day] if args.key?(:day)
307
+ @month = args[:month] if args.key?(:month)
308
+ @year = args[:year] if args.key?(:year)
309
+ end
310
+ end
311
+
312
+ # Execution using the default Cloud Build pool.
313
+ class DefaultPool
314
+ include Google::Apis::Core::Hashable
315
+
316
+ # Optional. Cloud Storage location where execution outputs should be stored.
317
+ # This can either be a bucket ("gs://my-bucket") or a path within a bucket ("gs:/
318
+ # /my-bucket/my-dir"). If unspecified, a default bucket located in the same
319
+ # region will be used.
320
+ # Corresponds to the JSON property `artifactStorage`
321
+ # @return [String]
322
+ attr_accessor :artifact_storage
323
+
324
+ # Optional. Google service account to use for execution. If unspecified, the
325
+ # project execution service account (-compute@developer.gserviceaccount.com)
326
+ # will be used.
327
+ # Corresponds to the JSON property `serviceAccount`
328
+ # @return [String]
329
+ attr_accessor :service_account
330
+
331
+ def initialize(**args)
332
+ update!(**args)
333
+ end
334
+
335
+ # Update properties of this object
336
+ def update!(**args)
337
+ @artifact_storage = args[:artifact_storage] if args.key?(:artifact_storage)
338
+ @service_account = args[:service_account] if args.key?(:service_account)
339
+ end
340
+ end
341
+
342
+ # A `DeliveryPipeline` resource in the Google Cloud Deploy API. A `
343
+ # DeliveryPipeline` defines a pipeline through which a Skaffold configuration
344
+ # can progress.
345
+ class DeliveryPipeline
346
+ include Google::Apis::Core::Hashable
347
+
348
+ # User annotations. These attributes can only be set and used by the user, and
349
+ # not by Google Cloud Deploy. See https://google.aip.dev/128#annotations for
350
+ # more details such as format and size limitations.
351
+ # Corresponds to the JSON property `annotations`
352
+ # @return [Hash<String,String>]
353
+ attr_accessor :annotations
354
+
355
+ # PipelineCondition contains all conditions relevant to a Delivery Pipeline.
356
+ # Corresponds to the JSON property `condition`
357
+ # @return [Google::Apis::ClouddeployV1::PipelineCondition]
358
+ attr_accessor :condition
359
+
360
+ # Output only. Time at which the pipeline was created.
361
+ # Corresponds to the JSON property `createTime`
362
+ # @return [String]
363
+ attr_accessor :create_time
364
+
365
+ # Description of the `DeliveryPipeline`. Max length is 255 characters.
366
+ # Corresponds to the JSON property `description`
367
+ # @return [String]
368
+ attr_accessor :description
369
+
370
+ # This checksum is computed by the server based on the value of other fields,
371
+ # and may be sent on update and delete requests to ensure the client has an up-
372
+ # to-date value before proceeding.
373
+ # Corresponds to the JSON property `etag`
374
+ # @return [String]
375
+ attr_accessor :etag
376
+
377
+ # Labels are attributes that can be set and used by both the user and by Google
378
+ # Cloud Deploy. Labels must meet the following constraints: * Keys and values
379
+ # can contain only lowercase letters, numeric characters, underscores, and
380
+ # dashes. * All characters must use UTF-8 encoding, and international characters
381
+ # are allowed. * Keys must start with a lowercase letter or international
382
+ # character. * Each resource is limited to a maximum of 64 labels. Both keys and
383
+ # values are additionally constrained to be <= 128 bytes.
384
+ # Corresponds to the JSON property `labels`
385
+ # @return [Hash<String,String>]
386
+ attr_accessor :labels
387
+
388
+ # Optional. Name of the `DeliveryPipeline`. Format is projects/`project`/
389
+ # locations/`location`/deliveryPipelines/a-z`0,62`.
390
+ # Corresponds to the JSON property `name`
391
+ # @return [String]
392
+ attr_accessor :name
393
+
394
+ # SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`.
395
+ # Corresponds to the JSON property `serialPipeline`
396
+ # @return [Google::Apis::ClouddeployV1::SerialPipeline]
397
+ attr_accessor :serial_pipeline
398
+
399
+ # Output only. Unique identifier of the `DeliveryPipeline`.
400
+ # Corresponds to the JSON property `uid`
401
+ # @return [String]
402
+ attr_accessor :uid
403
+
404
+ # Output only. Most recent time at which the pipeline was updated.
405
+ # Corresponds to the JSON property `updateTime`
406
+ # @return [String]
407
+ attr_accessor :update_time
408
+
409
+ def initialize(**args)
410
+ update!(**args)
411
+ end
412
+
413
+ # Update properties of this object
414
+ def update!(**args)
415
+ @annotations = args[:annotations] if args.key?(:annotations)
416
+ @condition = args[:condition] if args.key?(:condition)
417
+ @create_time = args[:create_time] if args.key?(:create_time)
418
+ @description = args[:description] if args.key?(:description)
419
+ @etag = args[:etag] if args.key?(:etag)
420
+ @labels = args[:labels] if args.key?(:labels)
421
+ @name = args[:name] if args.key?(:name)
422
+ @serial_pipeline = args[:serial_pipeline] if args.key?(:serial_pipeline)
423
+ @uid = args[:uid] if args.key?(:uid)
424
+ @update_time = args[:update_time] if args.key?(:update_time)
425
+ end
426
+ end
427
+
428
+ # A generic empty message that you can re-use to avoid defining duplicated empty
429
+ # messages in your APIs. A typical example is to use it as the request or the
430
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
431
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
432
+ # `Empty` is empty JSON object ````.
433
+ class Empty
434
+ include Google::Apis::Core::Hashable
435
+
436
+ def initialize(**args)
437
+ update!(**args)
438
+ end
439
+
440
+ # Update properties of this object
441
+ def update!(**args)
442
+ end
443
+ end
444
+
445
+ # Configuration of the environment to use when calling Skaffold.
446
+ class ExecutionConfig
447
+ include Google::Apis::Core::Hashable
448
+
449
+ # Execution using the default Cloud Build pool.
450
+ # Corresponds to the JSON property `defaultPool`
451
+ # @return [Google::Apis::ClouddeployV1::DefaultPool]
452
+ attr_accessor :default_pool
453
+
454
+ # Execution using a private Cloud Build pool.
455
+ # Corresponds to the JSON property `privatePool`
456
+ # @return [Google::Apis::ClouddeployV1::PrivatePool]
457
+ attr_accessor :private_pool
458
+
459
+ # Required. Usages when this configuration should be applied.
460
+ # Corresponds to the JSON property `usages`
461
+ # @return [Array<String>]
462
+ attr_accessor :usages
463
+
464
+ def initialize(**args)
465
+ update!(**args)
466
+ end
467
+
468
+ # Update properties of this object
469
+ def update!(**args)
470
+ @default_pool = args[:default_pool] if args.key?(:default_pool)
471
+ @private_pool = args[:private_pool] if args.key?(:private_pool)
472
+ @usages = args[:usages] if args.key?(:usages)
473
+ end
474
+ end
475
+
476
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
477
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
478
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
479
+ # "Summary size limit" description: "Determines if a summary is less than 100
480
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
481
+ # Requestor is owner" description: "Determines if requestor is the document
482
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
483
+ # Logic): title: "Public documents" description: "Determine whether the document
484
+ # should be publicly visible" expression: "document.type != 'private' &&
485
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
486
+ # string" description: "Create a notification string with a timestamp."
487
+ # expression: "'New message received at ' + string(document.create_time)" The
488
+ # exact variables and functions that may be referenced within an expression are
489
+ # determined by the service that evaluates it. See the service documentation for
490
+ # additional information.
491
+ class Expr
492
+ include Google::Apis::Core::Hashable
493
+
494
+ # Optional. Description of the expression. This is a longer text which describes
495
+ # the expression, e.g. when hovered over it in a UI.
496
+ # Corresponds to the JSON property `description`
497
+ # @return [String]
498
+ attr_accessor :description
499
+
500
+ # Textual representation of an expression in Common Expression Language syntax.
501
+ # Corresponds to the JSON property `expression`
502
+ # @return [String]
503
+ attr_accessor :expression
504
+
505
+ # Optional. String indicating the location of the expression for error reporting,
506
+ # e.g. a file name and a position in the file.
507
+ # Corresponds to the JSON property `location`
508
+ # @return [String]
509
+ attr_accessor :location
510
+
511
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
512
+ # This can be used e.g. in UIs which allow to enter the expression.
513
+ # Corresponds to the JSON property `title`
514
+ # @return [String]
515
+ attr_accessor :title
516
+
517
+ def initialize(**args)
518
+ update!(**args)
519
+ end
520
+
521
+ # Update properties of this object
522
+ def update!(**args)
523
+ @description = args[:description] if args.key?(:description)
524
+ @expression = args[:expression] if args.key?(:expression)
525
+ @location = args[:location] if args.key?(:location)
526
+ @title = args[:title] if args.key?(:title)
527
+ end
528
+ end
529
+
530
+ # Information specifying a GKE Cluster.
531
+ class GkeCluster
532
+ include Google::Apis::Core::Hashable
533
+
534
+ # Information specifying a GKE Cluster. Format is `projects/`project_id`/
535
+ # locations/`location_id`/clusters/`cluster_id`.
536
+ # Corresponds to the JSON property `cluster`
537
+ # @return [String]
538
+ attr_accessor :cluster
539
+
540
+ def initialize(**args)
541
+ update!(**args)
542
+ end
543
+
544
+ # Update properties of this object
545
+ def update!(**args)
546
+ @cluster = args[:cluster] if args.key?(:cluster)
547
+ end
548
+ end
549
+
550
+ # The response object from `ListDeliveryPipelines`.
551
+ class ListDeliveryPipelinesResponse
552
+ include Google::Apis::Core::Hashable
553
+
554
+ # The `DeliveryPipeline` objects.
555
+ # Corresponds to the JSON property `deliveryPipelines`
556
+ # @return [Array<Google::Apis::ClouddeployV1::DeliveryPipeline>]
557
+ attr_accessor :delivery_pipelines
558
+
559
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
560
+ # field is omitted, there are no subsequent pages.
561
+ # Corresponds to the JSON property `nextPageToken`
562
+ # @return [String]
563
+ attr_accessor :next_page_token
564
+
565
+ # Locations that could not be reached.
566
+ # Corresponds to the JSON property `unreachable`
567
+ # @return [Array<String>]
568
+ attr_accessor :unreachable
569
+
570
+ def initialize(**args)
571
+ update!(**args)
572
+ end
573
+
574
+ # Update properties of this object
575
+ def update!(**args)
576
+ @delivery_pipelines = args[:delivery_pipelines] if args.key?(:delivery_pipelines)
577
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
578
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
579
+ end
580
+ end
581
+
582
+ # The response message for Locations.ListLocations.
583
+ class ListLocationsResponse
584
+ include Google::Apis::Core::Hashable
585
+
586
+ # A list of locations that matches the specified filter in the request.
587
+ # Corresponds to the JSON property `locations`
588
+ # @return [Array<Google::Apis::ClouddeployV1::Location>]
589
+ attr_accessor :locations
590
+
591
+ # The standard List next-page token.
592
+ # Corresponds to the JSON property `nextPageToken`
593
+ # @return [String]
594
+ attr_accessor :next_page_token
595
+
596
+ def initialize(**args)
597
+ update!(**args)
598
+ end
599
+
600
+ # Update properties of this object
601
+ def update!(**args)
602
+ @locations = args[:locations] if args.key?(:locations)
603
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
604
+ end
605
+ end
606
+
607
+ # The response message for Operations.ListOperations.
608
+ class ListOperationsResponse
609
+ include Google::Apis::Core::Hashable
610
+
611
+ # The standard List next-page token.
612
+ # Corresponds to the JSON property `nextPageToken`
613
+ # @return [String]
614
+ attr_accessor :next_page_token
615
+
616
+ # A list of operations that matches the specified filter in the request.
617
+ # Corresponds to the JSON property `operations`
618
+ # @return [Array<Google::Apis::ClouddeployV1::Operation>]
619
+ attr_accessor :operations
620
+
621
+ def initialize(**args)
622
+ update!(**args)
623
+ end
624
+
625
+ # Update properties of this object
626
+ def update!(**args)
627
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
628
+ @operations = args[:operations] if args.key?(:operations)
629
+ end
630
+ end
631
+
632
+ # The response object from `ListReleases`.
633
+ class ListReleasesResponse
634
+ include Google::Apis::Core::Hashable
635
+
636
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
637
+ # field is omitted, there are no subsequent pages.
638
+ # Corresponds to the JSON property `nextPageToken`
639
+ # @return [String]
640
+ attr_accessor :next_page_token
641
+
642
+ # The `Release` objects.
643
+ # Corresponds to the JSON property `releases`
644
+ # @return [Array<Google::Apis::ClouddeployV1::Release>]
645
+ attr_accessor :releases
646
+
647
+ # Locations that could not be reached.
648
+ # Corresponds to the JSON property `unreachable`
649
+ # @return [Array<String>]
650
+ attr_accessor :unreachable
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
659
+ @releases = args[:releases] if args.key?(:releases)
660
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
661
+ end
662
+ end
663
+
664
+ # ListRolloutsResponse is the response object reutrned by `ListRollouts`.
665
+ class ListRolloutsResponse
666
+ include Google::Apis::Core::Hashable
667
+
668
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
669
+ # field is omitted, there are no subsequent pages.
670
+ # Corresponds to the JSON property `nextPageToken`
671
+ # @return [String]
672
+ attr_accessor :next_page_token
673
+
674
+ # The `Rollout` objects.
675
+ # Corresponds to the JSON property `rollouts`
676
+ # @return [Array<Google::Apis::ClouddeployV1::Rollout>]
677
+ attr_accessor :rollouts
678
+
679
+ # Locations that could not be reached.
680
+ # Corresponds to the JSON property `unreachable`
681
+ # @return [Array<String>]
682
+ attr_accessor :unreachable
683
+
684
+ def initialize(**args)
685
+ update!(**args)
686
+ end
687
+
688
+ # Update properties of this object
689
+ def update!(**args)
690
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
691
+ @rollouts = args[:rollouts] if args.key?(:rollouts)
692
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
693
+ end
694
+ end
695
+
696
+ # The response object from `ListTargets`.
697
+ class ListTargetsResponse
698
+ include Google::Apis::Core::Hashable
699
+
700
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
701
+ # field is omitted, there are no subsequent pages.
702
+ # Corresponds to the JSON property `nextPageToken`
703
+ # @return [String]
704
+ attr_accessor :next_page_token
705
+
706
+ # The `Target` objects.
707
+ # Corresponds to the JSON property `targets`
708
+ # @return [Array<Google::Apis::ClouddeployV1::Target>]
709
+ attr_accessor :targets
710
+
711
+ # Locations that could not be reached.
712
+ # Corresponds to the JSON property `unreachable`
713
+ # @return [Array<String>]
714
+ attr_accessor :unreachable
715
+
716
+ def initialize(**args)
717
+ update!(**args)
718
+ end
719
+
720
+ # Update properties of this object
721
+ def update!(**args)
722
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
723
+ @targets = args[:targets] if args.key?(:targets)
724
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
725
+ end
726
+ end
727
+
728
+ # A resource that represents Google Cloud Platform location.
729
+ class Location
730
+ include Google::Apis::Core::Hashable
731
+
732
+ # The friendly name for this location, typically a nearby city name. For example,
733
+ # "Tokyo".
734
+ # Corresponds to the JSON property `displayName`
735
+ # @return [String]
736
+ attr_accessor :display_name
737
+
738
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
739
+ # region": "us-east1"`
740
+ # Corresponds to the JSON property `labels`
741
+ # @return [Hash<String,String>]
742
+ attr_accessor :labels
743
+
744
+ # The canonical id for this location. For example: `"us-east1"`.
745
+ # Corresponds to the JSON property `locationId`
746
+ # @return [String]
747
+ attr_accessor :location_id
748
+
749
+ # Service-specific metadata. For example the available capacity at the given
750
+ # location.
751
+ # Corresponds to the JSON property `metadata`
752
+ # @return [Hash<String,Object>]
753
+ attr_accessor :metadata
754
+
755
+ # Resource name for the location, which may vary between implementations. For
756
+ # example: `"projects/example-project/locations/us-east1"`
757
+ # Corresponds to the JSON property `name`
758
+ # @return [String]
759
+ attr_accessor :name
760
+
761
+ def initialize(**args)
762
+ update!(**args)
763
+ end
764
+
765
+ # Update properties of this object
766
+ def update!(**args)
767
+ @display_name = args[:display_name] if args.key?(:display_name)
768
+ @labels = args[:labels] if args.key?(:labels)
769
+ @location_id = args[:location_id] if args.key?(:location_id)
770
+ @metadata = args[:metadata] if args.key?(:metadata)
771
+ @name = args[:name] if args.key?(:name)
772
+ end
773
+ end
774
+
775
+ # This resource represents a long-running operation that is the result of a
776
+ # network API call.
777
+ class Operation
778
+ include Google::Apis::Core::Hashable
779
+
780
+ # If the value is `false`, it means the operation is still in progress. If `true`
781
+ # , the operation is completed, and either `error` or `response` is available.
782
+ # Corresponds to the JSON property `done`
783
+ # @return [Boolean]
784
+ attr_accessor :done
785
+ alias_method :done?, :done
786
+
787
+ # The `Status` type defines a logical error model that is suitable for different
788
+ # programming environments, including REST APIs and RPC APIs. It is used by [
789
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
790
+ # data: error code, error message, and error details. You can find out more
791
+ # about this error model and how to work with it in the [API Design Guide](https:
792
+ # //cloud.google.com/apis/design/errors).
793
+ # Corresponds to the JSON property `error`
794
+ # @return [Google::Apis::ClouddeployV1::Status]
795
+ attr_accessor :error
796
+
797
+ # Service-specific metadata associated with the operation. It typically contains
798
+ # progress information and common metadata such as create time. Some services
799
+ # might not provide such metadata. Any method that returns a long-running
800
+ # operation should document the metadata type, if any.
801
+ # Corresponds to the JSON property `metadata`
802
+ # @return [Hash<String,Object>]
803
+ attr_accessor :metadata
804
+
805
+ # The server-assigned name, which is only unique within the same service that
806
+ # originally returns it. If you use the default HTTP mapping, the `name` should
807
+ # be a resource name ending with `operations/`unique_id``.
808
+ # Corresponds to the JSON property `name`
809
+ # @return [String]
810
+ attr_accessor :name
811
+
812
+ # The normal response of the operation in case of success. If the original
813
+ # method returns no data on success, such as `Delete`, the response is `google.
814
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
815
+ # the response should be the resource. For other methods, the response should
816
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
817
+ # example, if the original method name is `TakeSnapshot()`, the inferred
818
+ # response type is `TakeSnapshotResponse`.
819
+ # Corresponds to the JSON property `response`
820
+ # @return [Hash<String,Object>]
821
+ attr_accessor :response
822
+
823
+ def initialize(**args)
824
+ update!(**args)
825
+ end
826
+
827
+ # Update properties of this object
828
+ def update!(**args)
829
+ @done = args[:done] if args.key?(:done)
830
+ @error = args[:error] if args.key?(:error)
831
+ @metadata = args[:metadata] if args.key?(:metadata)
832
+ @name = args[:name] if args.key?(:name)
833
+ @response = args[:response] if args.key?(:response)
834
+ end
835
+ end
836
+
837
+ # Represents the metadata of the long-running operation.
838
+ class OperationMetadata
839
+ include Google::Apis::Core::Hashable
840
+
841
+ # Output only. API version used to start the operation.
842
+ # Corresponds to the JSON property `apiVersion`
843
+ # @return [String]
844
+ attr_accessor :api_version
845
+
846
+ # Output only. The time the operation was created.
847
+ # Corresponds to the JSON property `createTime`
848
+ # @return [String]
849
+ attr_accessor :create_time
850
+
851
+ # Output only. The time the operation finished running.
852
+ # Corresponds to the JSON property `endTime`
853
+ # @return [String]
854
+ attr_accessor :end_time
855
+
856
+ # Output only. Identifies whether the user has requested cancellation of the
857
+ # operation. Operations that have successfully been cancelled have Operation.
858
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
859
+ # CANCELLED`.
860
+ # Corresponds to the JSON property `requestedCancellation`
861
+ # @return [Boolean]
862
+ attr_accessor :requested_cancellation
863
+ alias_method :requested_cancellation?, :requested_cancellation
864
+
865
+ # Output only. Human-readable status of the operation, if any.
866
+ # Corresponds to the JSON property `statusMessage`
867
+ # @return [String]
868
+ attr_accessor :status_message
869
+
870
+ # Output only. Server-defined resource path for the target of the operation.
871
+ # Corresponds to the JSON property `target`
872
+ # @return [String]
873
+ attr_accessor :target
874
+
875
+ # Output only. Name of the verb executed by the operation.
876
+ # Corresponds to the JSON property `verb`
877
+ # @return [String]
878
+ attr_accessor :verb
879
+
880
+ def initialize(**args)
881
+ update!(**args)
882
+ end
883
+
884
+ # Update properties of this object
885
+ def update!(**args)
886
+ @api_version = args[:api_version] if args.key?(:api_version)
887
+ @create_time = args[:create_time] if args.key?(:create_time)
888
+ @end_time = args[:end_time] if args.key?(:end_time)
889
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
890
+ @status_message = args[:status_message] if args.key?(:status_message)
891
+ @target = args[:target] if args.key?(:target)
892
+ @verb = args[:verb] if args.key?(:verb)
893
+ end
894
+ end
895
+
896
+ # PipelineCondition contains all conditions relevant to a Delivery Pipeline.
897
+ class PipelineCondition
898
+ include Google::Apis::Core::Hashable
899
+
900
+ # PipelineReadyCondition contains information around the status of the Pipeline.
901
+ # Corresponds to the JSON property `pipelineReadyCondition`
902
+ # @return [Google::Apis::ClouddeployV1::PipelineReadyCondition]
903
+ attr_accessor :pipeline_ready_condition
904
+
905
+ # TargetsPresentCondition contains information on any Targets defined in the
906
+ # Delivery Pipeline that do not actually exist.
907
+ # Corresponds to the JSON property `targetsPresentCondition`
908
+ # @return [Google::Apis::ClouddeployV1::TargetsPresentCondition]
909
+ attr_accessor :targets_present_condition
910
+
911
+ def initialize(**args)
912
+ update!(**args)
913
+ end
914
+
915
+ # Update properties of this object
916
+ def update!(**args)
917
+ @pipeline_ready_condition = args[:pipeline_ready_condition] if args.key?(:pipeline_ready_condition)
918
+ @targets_present_condition = args[:targets_present_condition] if args.key?(:targets_present_condition)
919
+ end
920
+ end
921
+
922
+ # PipelineReadyCondition contains information around the status of the Pipeline.
923
+ class PipelineReadyCondition
924
+ include Google::Apis::Core::Hashable
925
+
926
+ # True if the Pipeline is in a valid state. Otherwise at least one condition in `
927
+ # PipelineCondition` is in an invalid state. Iterate over those conditions and
928
+ # see which condition(s) has status = false to find out what is wrong with the
929
+ # Pipeline.
930
+ # Corresponds to the JSON property `status`
931
+ # @return [Boolean]
932
+ attr_accessor :status
933
+ alias_method :status?, :status
934
+
935
+ # Last time the condition was updated.
936
+ # Corresponds to the JSON property `updateTime`
937
+ # @return [String]
938
+ attr_accessor :update_time
939
+
940
+ def initialize(**args)
941
+ update!(**args)
942
+ end
943
+
944
+ # Update properties of this object
945
+ def update!(**args)
946
+ @status = args[:status] if args.key?(:status)
947
+ @update_time = args[:update_time] if args.key?(:update_time)
948
+ end
949
+ end
950
+
951
+ # An Identity and Access Management (IAM) policy, which specifies access
952
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
953
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
954
+ # Principals can be user accounts, service accounts, Google groups, and domains (
955
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
956
+ # an IAM predefined role or a user-created custom role. For some types of Google
957
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
958
+ # logical expression that allows access to a resource only if the expression
959
+ # evaluates to `true`. A condition can add constraints based on attributes of
960
+ # the request, the resource, or both. To learn which resources support
961
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
962
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
963
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
964
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
965
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
966
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
967
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
968
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
969
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
970
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
971
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
972
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
973
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
974
+ # access description: Does not grant access after Sep 2020 expression: request.
975
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
976
+ # a description of IAM and its features, see the [IAM documentation](https://
977
+ # cloud.google.com/iam/docs/).
978
+ class Policy
979
+ include Google::Apis::Core::Hashable
980
+
981
+ # Specifies cloud audit logging configuration for this policy.
982
+ # Corresponds to the JSON property `auditConfigs`
983
+ # @return [Array<Google::Apis::ClouddeployV1::AuditConfig>]
984
+ attr_accessor :audit_configs
985
+
986
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
987
+ # specify a `condition` that determines how and when the `bindings` are applied.
988
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
989
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
990
+ # can be Google groups. Each occurrence of a principal counts towards these
991
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
992
+ # example.com`, and not to any other principal, then you can add another 1,450
993
+ # principals to the `bindings` in the `Policy`.
994
+ # Corresponds to the JSON property `bindings`
995
+ # @return [Array<Google::Apis::ClouddeployV1::Binding>]
996
+ attr_accessor :bindings
997
+
998
+ # `etag` is used for optimistic concurrency control as a way to help prevent
999
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1000
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1001
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1002
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1003
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1004
+ # applied to the same version of the policy. **Important:** If you use IAM
1005
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1006
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1007
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1008
+ # are lost.
1009
+ # Corresponds to the JSON property `etag`
1010
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1011
+ # @return [String]
1012
+ attr_accessor :etag
1013
+
1014
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1015
+ # Requests that specify an invalid value are rejected. Any operation that
1016
+ # affects conditional role bindings must specify version `3`. This requirement
1017
+ # applies to the following operations: * Getting a policy that includes a
1018
+ # conditional role binding * Adding a conditional role binding to a policy *
1019
+ # Changing a conditional role binding in a policy * Removing any role binding,
1020
+ # with or without a condition, from a policy that includes conditions **
1021
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1022
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1023
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1024
+ # conditions in the version `3` policy are lost. If a policy does not include
1025
+ # any conditions, operations on that policy may specify any valid version or
1026
+ # leave the field unset. To learn which resources support conditions in their
1027
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1028
+ # conditions/resource-policies).
1029
+ # Corresponds to the JSON property `version`
1030
+ # @return [Fixnum]
1031
+ attr_accessor :version
1032
+
1033
+ def initialize(**args)
1034
+ update!(**args)
1035
+ end
1036
+
1037
+ # Update properties of this object
1038
+ def update!(**args)
1039
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1040
+ @bindings = args[:bindings] if args.key?(:bindings)
1041
+ @etag = args[:etag] if args.key?(:etag)
1042
+ @version = args[:version] if args.key?(:version)
1043
+ end
1044
+ end
1045
+
1046
+ # Execution using a private Cloud Build pool.
1047
+ class PrivatePool
1048
+ include Google::Apis::Core::Hashable
1049
+
1050
+ # Optional. Cloud Storage location where execution outputs should be stored.
1051
+ # This can either be a bucket ("gs://my-bucket") or a path within a bucket ("gs:/
1052
+ # /my-bucket/my-dir"). If unspecified, a default bucket located in the same
1053
+ # region will be used.
1054
+ # Corresponds to the JSON property `artifactStorage`
1055
+ # @return [String]
1056
+ attr_accessor :artifact_storage
1057
+
1058
+ # Optional. Google service account to use for execution. If unspecified, the
1059
+ # project execution service account (-compute@developer.gserviceaccount.com)
1060
+ # will be used.
1061
+ # Corresponds to the JSON property `serviceAccount`
1062
+ # @return [String]
1063
+ attr_accessor :service_account
1064
+
1065
+ # Required. Resource name of the Cloud Build worker pool to use. The format is `
1066
+ # projects/`project`/locations/`location`/workerPools/`pool``.
1067
+ # Corresponds to the JSON property `workerPool`
1068
+ # @return [String]
1069
+ attr_accessor :worker_pool
1070
+
1071
+ def initialize(**args)
1072
+ update!(**args)
1073
+ end
1074
+
1075
+ # Update properties of this object
1076
+ def update!(**args)
1077
+ @artifact_storage = args[:artifact_storage] if args.key?(:artifact_storage)
1078
+ @service_account = args[:service_account] if args.key?(:service_account)
1079
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1080
+ end
1081
+ end
1082
+
1083
+ # A `Release` resource in the Google Cloud Deploy API. A `Release` defines a
1084
+ # specific Skaffold configuration instance that can be deployed.
1085
+ class Release
1086
+ include Google::Apis::Core::Hashable
1087
+
1088
+ # User annotations. These attributes can only be set and used by the user, and
1089
+ # not by Google Cloud Deploy. See https://google.aip.dev/128#annotations for
1090
+ # more details such as format and size limitations.
1091
+ # Corresponds to the JSON property `annotations`
1092
+ # @return [Hash<String,String>]
1093
+ attr_accessor :annotations
1094
+
1095
+ # List of artifacts to pass through to Skaffold command.
1096
+ # Corresponds to the JSON property `buildArtifacts`
1097
+ # @return [Array<Google::Apis::ClouddeployV1::BuildArtifact>]
1098
+ attr_accessor :build_artifacts
1099
+
1100
+ # Output only. Time at which the `Release` was created.
1101
+ # Corresponds to the JSON property `createTime`
1102
+ # @return [String]
1103
+ attr_accessor :create_time
1104
+
1105
+ # A `DeliveryPipeline` resource in the Google Cloud Deploy API. A `
1106
+ # DeliveryPipeline` defines a pipeline through which a Skaffold configuration
1107
+ # can progress.
1108
+ # Corresponds to the JSON property `deliveryPipelineSnapshot`
1109
+ # @return [Google::Apis::ClouddeployV1::DeliveryPipeline]
1110
+ attr_accessor :delivery_pipeline_snapshot
1111
+
1112
+ # Description of the `Release`. Max length is 255 characters.
1113
+ # Corresponds to the JSON property `description`
1114
+ # @return [String]
1115
+ attr_accessor :description
1116
+
1117
+ # This checksum is computed by the server based on the value of other fields,
1118
+ # and may be sent on update and delete requests to ensure the client has an up-
1119
+ # to-date value before proceeding.
1120
+ # Corresponds to the JSON property `etag`
1121
+ # @return [String]
1122
+ attr_accessor :etag
1123
+
1124
+ # Labels are attributes that can be set and used by both the user and by Google
1125
+ # Cloud Deploy. Labels must meet the following constraints: * Keys and values
1126
+ # can contain only lowercase letters, numeric characters, underscores, and
1127
+ # dashes. * All characters must use UTF-8 encoding, and international characters
1128
+ # are allowed. * Keys must start with a lowercase letter or international
1129
+ # character. * Each resource is limited to a maximum of 64 labels. Both keys and
1130
+ # values are additionally constrained to be <= 128 bytes.
1131
+ # Corresponds to the JSON property `labels`
1132
+ # @return [Hash<String,String>]
1133
+ attr_accessor :labels
1134
+
1135
+ # Optional. Name of the `Release`. Format is projects/`project`/ locations/`
1136
+ # location`/deliveryPipelines/`deliveryPipeline`/ releases/a-z`0,62`.
1137
+ # Corresponds to the JSON property `name`
1138
+ # @return [String]
1139
+ attr_accessor :name
1140
+
1141
+ # Output only. Time at which the render completed.
1142
+ # Corresponds to the JSON property `renderEndTime`
1143
+ # @return [String]
1144
+ attr_accessor :render_end_time
1145
+
1146
+ # Output only. Time at which the render began.
1147
+ # Corresponds to the JSON property `renderStartTime`
1148
+ # @return [String]
1149
+ attr_accessor :render_start_time
1150
+
1151
+ # Output only. Current state of the render operation.
1152
+ # Corresponds to the JSON property `renderState`
1153
+ # @return [String]
1154
+ attr_accessor :render_state
1155
+
1156
+ # Filepath of the Skaffold config inside of the config URI.
1157
+ # Corresponds to the JSON property `skaffoldConfigPath`
1158
+ # @return [String]
1159
+ attr_accessor :skaffold_config_path
1160
+
1161
+ # Cloud Storage URI of tar.gz archive containing Skaffold configuration.
1162
+ # Corresponds to the JSON property `skaffoldConfigUri`
1163
+ # @return [String]
1164
+ attr_accessor :skaffold_config_uri
1165
+
1166
+ # The Skaffold version to use when operating on this release, such as "1.20.0".
1167
+ # Not all versions are valid; Google Cloud Deploy supports a specific set of
1168
+ # versions. If unset, the most recent supported Skaffold version will be used.
1169
+ # Corresponds to the JSON property `skaffoldVersion`
1170
+ # @return [String]
1171
+ attr_accessor :skaffold_version
1172
+
1173
+ # Output only. Map from target ID to the target artifacts created during the
1174
+ # render operation.
1175
+ # Corresponds to the JSON property `targetArtifacts`
1176
+ # @return [Hash<String,Google::Apis::ClouddeployV1::TargetArtifact>]
1177
+ attr_accessor :target_artifacts
1178
+
1179
+ # Output only. Map from target ID to details of the render operation for that
1180
+ # target.
1181
+ # Corresponds to the JSON property `targetRenders`
1182
+ # @return [Hash<String,Google::Apis::ClouddeployV1::TargetRender>]
1183
+ attr_accessor :target_renders
1184
+
1185
+ # Output only. Snapshot of the parent pipeline's targets taken at release
1186
+ # creation time.
1187
+ # Corresponds to the JSON property `targetSnapshots`
1188
+ # @return [Array<Google::Apis::ClouddeployV1::Target>]
1189
+ attr_accessor :target_snapshots
1190
+
1191
+ # Output only. Unique identifier of the `Release`.
1192
+ # Corresponds to the JSON property `uid`
1193
+ # @return [String]
1194
+ attr_accessor :uid
1195
+
1196
+ def initialize(**args)
1197
+ update!(**args)
1198
+ end
1199
+
1200
+ # Update properties of this object
1201
+ def update!(**args)
1202
+ @annotations = args[:annotations] if args.key?(:annotations)
1203
+ @build_artifacts = args[:build_artifacts] if args.key?(:build_artifacts)
1204
+ @create_time = args[:create_time] if args.key?(:create_time)
1205
+ @delivery_pipeline_snapshot = args[:delivery_pipeline_snapshot] if args.key?(:delivery_pipeline_snapshot)
1206
+ @description = args[:description] if args.key?(:description)
1207
+ @etag = args[:etag] if args.key?(:etag)
1208
+ @labels = args[:labels] if args.key?(:labels)
1209
+ @name = args[:name] if args.key?(:name)
1210
+ @render_end_time = args[:render_end_time] if args.key?(:render_end_time)
1211
+ @render_start_time = args[:render_start_time] if args.key?(:render_start_time)
1212
+ @render_state = args[:render_state] if args.key?(:render_state)
1213
+ @skaffold_config_path = args[:skaffold_config_path] if args.key?(:skaffold_config_path)
1214
+ @skaffold_config_uri = args[:skaffold_config_uri] if args.key?(:skaffold_config_uri)
1215
+ @skaffold_version = args[:skaffold_version] if args.key?(:skaffold_version)
1216
+ @target_artifacts = args[:target_artifacts] if args.key?(:target_artifacts)
1217
+ @target_renders = args[:target_renders] if args.key?(:target_renders)
1218
+ @target_snapshots = args[:target_snapshots] if args.key?(:target_snapshots)
1219
+ @uid = args[:uid] if args.key?(:uid)
1220
+ end
1221
+ end
1222
+
1223
+ # A `Rollout` resource in the Google Cloud Deploy API. A `Rollout` contains
1224
+ # information around a specific deployment to a `Target`.
1225
+ class Rollout
1226
+ include Google::Apis::Core::Hashable
1227
+
1228
+ # User annotations. These attributes can only be set and used by the user, and
1229
+ # not by Google Cloud Deploy. See https://google.aip.dev/128#annotations for
1230
+ # more details such as format and size limitations.
1231
+ # Corresponds to the JSON property `annotations`
1232
+ # @return [Hash<String,String>]
1233
+ attr_accessor :annotations
1234
+
1235
+ # Output only. Approval state of the `Rollout`.
1236
+ # Corresponds to the JSON property `approvalState`
1237
+ # @return [String]
1238
+ attr_accessor :approval_state
1239
+
1240
+ # Output only. Time at which the `Rollout` was approved.
1241
+ # Corresponds to the JSON property `approveTime`
1242
+ # @return [String]
1243
+ attr_accessor :approve_time
1244
+
1245
+ # Output only. Time at which the `Rollout` was created.
1246
+ # Corresponds to the JSON property `createTime`
1247
+ # @return [String]
1248
+ attr_accessor :create_time
1249
+
1250
+ # Output only. Time at which the `Rollout` finished deploying.
1251
+ # Corresponds to the JSON property `deployEndTime`
1252
+ # @return [String]
1253
+ attr_accessor :deploy_end_time
1254
+
1255
+ # Output only. Time at which the `Rollout` started deploying.
1256
+ # Corresponds to the JSON property `deployStartTime`
1257
+ # @return [String]
1258
+ attr_accessor :deploy_start_time
1259
+
1260
+ # Output only. The resource name of the Cloud Build `Build` object that is used
1261
+ # to deploy the Rollout. Format is `projects/`project`/locations/`location`/
1262
+ # builds/`build``.
1263
+ # Corresponds to the JSON property `deployingBuild`
1264
+ # @return [String]
1265
+ attr_accessor :deploying_build
1266
+
1267
+ # Description of the `Rollout` for user purposes. Max length is 255 characters.
1268
+ # Corresponds to the JSON property `description`
1269
+ # @return [String]
1270
+ attr_accessor :description
1271
+
1272
+ # Output only. Time at which the `Rollout` was enqueued.
1273
+ # Corresponds to the JSON property `enqueueTime`
1274
+ # @return [String]
1275
+ attr_accessor :enqueue_time
1276
+
1277
+ # This checksum is computed by the server based on the value of other fields,
1278
+ # and may be sent on update and delete requests to ensure the client has an up-
1279
+ # to-date value before proceeding.
1280
+ # Corresponds to the JSON property `etag`
1281
+ # @return [String]
1282
+ attr_accessor :etag
1283
+
1284
+ # Output only. Reason the build failed. Empty if the build succeeded.
1285
+ # Corresponds to the JSON property `failureReason`
1286
+ # @return [String]
1287
+ attr_accessor :failure_reason
1288
+
1289
+ # Labels are attributes that can be set and used by both the user and by Google
1290
+ # Cloud Deploy. Labels must meet the following constraints: * Keys and values
1291
+ # can contain only lowercase letters, numeric characters, underscores, and
1292
+ # dashes. * All characters must use UTF-8 encoding, and international characters
1293
+ # are allowed. * Keys must start with a lowercase letter or international
1294
+ # character. * Each resource is limited to a maximum of 64 labels. Both keys and
1295
+ # values are additionally constrained to be <= 128 bytes.
1296
+ # Corresponds to the JSON property `labels`
1297
+ # @return [Hash<String,String>]
1298
+ attr_accessor :labels
1299
+
1300
+ # Optional. Name of the `Rollout`. Format is projects/`project`/ locations/`
1301
+ # location`/deliveryPipelines/`deliveryPipeline`/ releases/`release`/rollouts/a-
1302
+ # z`0,62`.
1303
+ # Corresponds to the JSON property `name`
1304
+ # @return [String]
1305
+ attr_accessor :name
1306
+
1307
+ # Output only. Current state of the `Rollout`.
1308
+ # Corresponds to the JSON property `state`
1309
+ # @return [String]
1310
+ attr_accessor :state
1311
+
1312
+ # Required. The ID of Target to which this `Rollout` is deploying.
1313
+ # Corresponds to the JSON property `targetId`
1314
+ # @return [String]
1315
+ attr_accessor :target_id
1316
+
1317
+ # Output only. Unique identifier of the `Rollout`.
1318
+ # Corresponds to the JSON property `uid`
1319
+ # @return [String]
1320
+ attr_accessor :uid
1321
+
1322
+ def initialize(**args)
1323
+ update!(**args)
1324
+ end
1325
+
1326
+ # Update properties of this object
1327
+ def update!(**args)
1328
+ @annotations = args[:annotations] if args.key?(:annotations)
1329
+ @approval_state = args[:approval_state] if args.key?(:approval_state)
1330
+ @approve_time = args[:approve_time] if args.key?(:approve_time)
1331
+ @create_time = args[:create_time] if args.key?(:create_time)
1332
+ @deploy_end_time = args[:deploy_end_time] if args.key?(:deploy_end_time)
1333
+ @deploy_start_time = args[:deploy_start_time] if args.key?(:deploy_start_time)
1334
+ @deploying_build = args[:deploying_build] if args.key?(:deploying_build)
1335
+ @description = args[:description] if args.key?(:description)
1336
+ @enqueue_time = args[:enqueue_time] if args.key?(:enqueue_time)
1337
+ @etag = args[:etag] if args.key?(:etag)
1338
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
1339
+ @labels = args[:labels] if args.key?(:labels)
1340
+ @name = args[:name] if args.key?(:name)
1341
+ @state = args[:state] if args.key?(:state)
1342
+ @target_id = args[:target_id] if args.key?(:target_id)
1343
+ @uid = args[:uid] if args.key?(:uid)
1344
+ end
1345
+ end
1346
+
1347
+ # SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`.
1348
+ class SerialPipeline
1349
+ include Google::Apis::Core::Hashable
1350
+
1351
+ # Each stage specifies configuration for a `Target`. The ordering of this list
1352
+ # defines the promotion flow.
1353
+ # Corresponds to the JSON property `stages`
1354
+ # @return [Array<Google::Apis::ClouddeployV1::Stage>]
1355
+ attr_accessor :stages
1356
+
1357
+ def initialize(**args)
1358
+ update!(**args)
1359
+ end
1360
+
1361
+ # Update properties of this object
1362
+ def update!(**args)
1363
+ @stages = args[:stages] if args.key?(:stages)
1364
+ end
1365
+ end
1366
+
1367
+ # Request message for `SetIamPolicy` method.
1368
+ class SetIamPolicyRequest
1369
+ include Google::Apis::Core::Hashable
1370
+
1371
+ # An Identity and Access Management (IAM) policy, which specifies access
1372
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1373
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1374
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1375
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1376
+ # an IAM predefined role or a user-created custom role. For some types of Google
1377
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1378
+ # logical expression that allows access to a resource only if the expression
1379
+ # evaluates to `true`. A condition can add constraints based on attributes of
1380
+ # the request, the resource, or both. To learn which resources support
1381
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1382
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1383
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1384
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1385
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1386
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1387
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1388
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1389
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1390
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1391
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1392
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1393
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1394
+ # access description: Does not grant access after Sep 2020 expression: request.
1395
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1396
+ # a description of IAM and its features, see the [IAM documentation](https://
1397
+ # cloud.google.com/iam/docs/).
1398
+ # Corresponds to the JSON property `policy`
1399
+ # @return [Google::Apis::ClouddeployV1::Policy]
1400
+ attr_accessor :policy
1401
+
1402
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1403
+ # the fields in the mask will be modified. If no mask is provided, the following
1404
+ # default mask is used: `paths: "bindings, etag"`
1405
+ # Corresponds to the JSON property `updateMask`
1406
+ # @return [String]
1407
+ attr_accessor :update_mask
1408
+
1409
+ def initialize(**args)
1410
+ update!(**args)
1411
+ end
1412
+
1413
+ # Update properties of this object
1414
+ def update!(**args)
1415
+ @policy = args[:policy] if args.key?(:policy)
1416
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1417
+ end
1418
+ end
1419
+
1420
+ # Details of a supported Skaffold version.
1421
+ class SkaffoldVersion
1422
+ include Google::Apis::Core::Hashable
1423
+
1424
+ # Represents a whole or partial calendar date, such as a birthday. The time of
1425
+ # day and time zone are either specified elsewhere or are insignificant. The
1426
+ # date is relative to the Gregorian Calendar. This can represent one of the
1427
+ # following: * A full date, with non-zero year, month, and day values * A month
1428
+ # and day value, with a zero year, such as an anniversary * A year on its own,
1429
+ # with zero month and day values * A year and month value, with a zero day, such
1430
+ # as a credit card expiration date Related types are google.type.TimeOfDay and `
1431
+ # google.protobuf.Timestamp`.
1432
+ # Corresponds to the JSON property `supportEndDate`
1433
+ # @return [Google::Apis::ClouddeployV1::Date]
1434
+ attr_accessor :support_end_date
1435
+
1436
+ # Release version number. For example, "1.20.3".
1437
+ # Corresponds to the JSON property `version`
1438
+ # @return [String]
1439
+ attr_accessor :version
1440
+
1441
+ def initialize(**args)
1442
+ update!(**args)
1443
+ end
1444
+
1445
+ # Update properties of this object
1446
+ def update!(**args)
1447
+ @support_end_date = args[:support_end_date] if args.key?(:support_end_date)
1448
+ @version = args[:version] if args.key?(:version)
1449
+ end
1450
+ end
1451
+
1452
+ # Stage specifies a location to which to deploy.
1453
+ class Stage
1454
+ include Google::Apis::Core::Hashable
1455
+
1456
+ # Skaffold profiles to use when rendering the manifest for this stage's `Target`.
1457
+ # Corresponds to the JSON property `profiles`
1458
+ # @return [Array<String>]
1459
+ attr_accessor :profiles
1460
+
1461
+ # The target_id to which this stage points. This field refers exclusively to the
1462
+ # last segment of a target name. For example, this field would just be `my-
1463
+ # target` (rather than `projects/project/deliveryPipelines/pipeline/targets/my-
1464
+ # target`). The parent `DeliveryPipeline` of the `Target` is inferred to be the
1465
+ # parent `DeliveryPipeline` of the `Release` in which this `Stage` lives.
1466
+ # Corresponds to the JSON property `targetId`
1467
+ # @return [String]
1468
+ attr_accessor :target_id
1469
+
1470
+ def initialize(**args)
1471
+ update!(**args)
1472
+ end
1473
+
1474
+ # Update properties of this object
1475
+ def update!(**args)
1476
+ @profiles = args[:profiles] if args.key?(:profiles)
1477
+ @target_id = args[:target_id] if args.key?(:target_id)
1478
+ end
1479
+ end
1480
+
1481
+ # The `Status` type defines a logical error model that is suitable for different
1482
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1483
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1484
+ # data: error code, error message, and error details. You can find out more
1485
+ # about this error model and how to work with it in the [API Design Guide](https:
1486
+ # //cloud.google.com/apis/design/errors).
1487
+ class Status
1488
+ include Google::Apis::Core::Hashable
1489
+
1490
+ # The status code, which should be an enum value of google.rpc.Code.
1491
+ # Corresponds to the JSON property `code`
1492
+ # @return [Fixnum]
1493
+ attr_accessor :code
1494
+
1495
+ # A list of messages that carry the error details. There is a common set of
1496
+ # message types for APIs to use.
1497
+ # Corresponds to the JSON property `details`
1498
+ # @return [Array<Hash<String,Object>>]
1499
+ attr_accessor :details
1500
+
1501
+ # A developer-facing error message, which should be in English. Any user-facing
1502
+ # error message should be localized and sent in the google.rpc.Status.details
1503
+ # field, or localized by the client.
1504
+ # Corresponds to the JSON property `message`
1505
+ # @return [String]
1506
+ attr_accessor :message
1507
+
1508
+ def initialize(**args)
1509
+ update!(**args)
1510
+ end
1511
+
1512
+ # Update properties of this object
1513
+ def update!(**args)
1514
+ @code = args[:code] if args.key?(:code)
1515
+ @details = args[:details] if args.key?(:details)
1516
+ @message = args[:message] if args.key?(:message)
1517
+ end
1518
+ end
1519
+
1520
+ # A `Target` resource in the Google Cloud Deploy API. A `Target` defines a
1521
+ # location to which a Skaffold configuration can be deployed.
1522
+ class Target
1523
+ include Google::Apis::Core::Hashable
1524
+
1525
+ # Optional. User annotations. These attributes can only be set and used by the
1526
+ # user, and not by Google Cloud Deploy. See https://google.aip.dev/128#
1527
+ # annotations for more details such as format and size limitations.
1528
+ # Corresponds to the JSON property `annotations`
1529
+ # @return [Hash<String,String>]
1530
+ attr_accessor :annotations
1531
+
1532
+ # Output only. Time at which the `Target` was created.
1533
+ # Corresponds to the JSON property `createTime`
1534
+ # @return [String]
1535
+ attr_accessor :create_time
1536
+
1537
+ # Optional. Description of the `Target`. Max length is 255 characters.
1538
+ # Corresponds to the JSON property `description`
1539
+ # @return [String]
1540
+ attr_accessor :description
1541
+
1542
+ # Optional. This checksum is computed by the server based on the value of other
1543
+ # fields, and may be sent on update and delete requests to ensure the client has
1544
+ # an up-to-date value before proceeding.
1545
+ # Corresponds to the JSON property `etag`
1546
+ # @return [String]
1547
+ attr_accessor :etag
1548
+
1549
+ # Configurations for all execution that relates to this `Target`. Each `
1550
+ # ExecutionEnvironmentUsage` value may only be used in a single configuration;
1551
+ # using the same value multiple times is an error. When one or more
1552
+ # configurations are specified, they must include the `RENDER` and `DEPLOY` `
1553
+ # ExecutionEnvironmentUsage` values. When no configurations are specified,
1554
+ # execution will use the default specified in `DefaultPool`.
1555
+ # Corresponds to the JSON property `executionConfigs`
1556
+ # @return [Array<Google::Apis::ClouddeployV1::ExecutionConfig>]
1557
+ attr_accessor :execution_configs
1558
+
1559
+ # Information specifying a GKE Cluster.
1560
+ # Corresponds to the JSON property `gke`
1561
+ # @return [Google::Apis::ClouddeployV1::GkeCluster]
1562
+ attr_accessor :gke
1563
+
1564
+ # Optional. Labels are attributes that can be set and used by both the user and
1565
+ # by Google Cloud Deploy. Labels must meet the following constraints: * Keys and
1566
+ # values can contain only lowercase letters, numeric characters, underscores,
1567
+ # and dashes. * All characters must use UTF-8 encoding, and international
1568
+ # characters are allowed. * Keys must start with a lowercase letter or
1569
+ # international character. * Each resource is limited to a maximum of 64 labels.
1570
+ # Both keys and values are additionally constrained to be <= 128 bytes.
1571
+ # Corresponds to the JSON property `labels`
1572
+ # @return [Hash<String,String>]
1573
+ attr_accessor :labels
1574
+
1575
+ # Optional. Name of the `Target`. Format is projects/`project`/locations/`
1576
+ # location`/ deliveryPipelines/`deliveryPipeline`/targets/a-z`0,62`.
1577
+ # Corresponds to the JSON property `name`
1578
+ # @return [String]
1579
+ attr_accessor :name
1580
+
1581
+ # Optional. Whether or not the `Target` requires approval.
1582
+ # Corresponds to the JSON property `requireApproval`
1583
+ # @return [Boolean]
1584
+ attr_accessor :require_approval
1585
+ alias_method :require_approval?, :require_approval
1586
+
1587
+ # Output only. Resource id of the `Target`.
1588
+ # Corresponds to the JSON property `targetId`
1589
+ # @return [String]
1590
+ attr_accessor :target_id
1591
+
1592
+ # Output only. Unique identifier of the `Target`.
1593
+ # Corresponds to the JSON property `uid`
1594
+ # @return [String]
1595
+ attr_accessor :uid
1596
+
1597
+ # Output only. Most recent time at which the `Target` was updated.
1598
+ # Corresponds to the JSON property `updateTime`
1599
+ # @return [String]
1600
+ attr_accessor :update_time
1601
+
1602
+ def initialize(**args)
1603
+ update!(**args)
1604
+ end
1605
+
1606
+ # Update properties of this object
1607
+ def update!(**args)
1608
+ @annotations = args[:annotations] if args.key?(:annotations)
1609
+ @create_time = args[:create_time] if args.key?(:create_time)
1610
+ @description = args[:description] if args.key?(:description)
1611
+ @etag = args[:etag] if args.key?(:etag)
1612
+ @execution_configs = args[:execution_configs] if args.key?(:execution_configs)
1613
+ @gke = args[:gke] if args.key?(:gke)
1614
+ @labels = args[:labels] if args.key?(:labels)
1615
+ @name = args[:name] if args.key?(:name)
1616
+ @require_approval = args[:require_approval] if args.key?(:require_approval)
1617
+ @target_id = args[:target_id] if args.key?(:target_id)
1618
+ @uid = args[:uid] if args.key?(:uid)
1619
+ @update_time = args[:update_time] if args.key?(:update_time)
1620
+ end
1621
+ end
1622
+
1623
+ # The artifacts produced by a target render operation.
1624
+ class TargetArtifact
1625
+ include Google::Apis::Core::Hashable
1626
+
1627
+ # Output only. URI of a directory containing the artifacts. This contains
1628
+ # deployment configuration used by Skaffold during a rollout, and all paths are
1629
+ # relative to this location.
1630
+ # Corresponds to the JSON property `artifactUri`
1631
+ # @return [String]
1632
+ attr_accessor :artifact_uri
1633
+
1634
+ # Output only. File path of the rendered manifest relative to the URI.
1635
+ # Corresponds to the JSON property `manifestPath`
1636
+ # @return [String]
1637
+ attr_accessor :manifest_path
1638
+
1639
+ # Output only. File path of the resolved Skaffold configuration relative to the
1640
+ # URI.
1641
+ # Corresponds to the JSON property `skaffoldConfigPath`
1642
+ # @return [String]
1643
+ attr_accessor :skaffold_config_path
1644
+
1645
+ def initialize(**args)
1646
+ update!(**args)
1647
+ end
1648
+
1649
+ # Update properties of this object
1650
+ def update!(**args)
1651
+ @artifact_uri = args[:artifact_uri] if args.key?(:artifact_uri)
1652
+ @manifest_path = args[:manifest_path] if args.key?(:manifest_path)
1653
+ @skaffold_config_path = args[:skaffold_config_path] if args.key?(:skaffold_config_path)
1654
+ end
1655
+ end
1656
+
1657
+ # Details of rendering for a single target.
1658
+ class TargetRender
1659
+ include Google::Apis::Core::Hashable
1660
+
1661
+ # Output only. The resource name of the Cloud Build `Build` object that is used
1662
+ # to render the manifest for this target. Format is `projects/`project`/
1663
+ # locations/`location`/builds/`build``.
1664
+ # Corresponds to the JSON property `renderingBuild`
1665
+ # @return [String]
1666
+ attr_accessor :rendering_build
1667
+
1668
+ # Output only. Current state of the render operation for this Target.
1669
+ # Corresponds to the JSON property `renderingState`
1670
+ # @return [String]
1671
+ attr_accessor :rendering_state
1672
+
1673
+ def initialize(**args)
1674
+ update!(**args)
1675
+ end
1676
+
1677
+ # Update properties of this object
1678
+ def update!(**args)
1679
+ @rendering_build = args[:rendering_build] if args.key?(:rendering_build)
1680
+ @rendering_state = args[:rendering_state] if args.key?(:rendering_state)
1681
+ end
1682
+ end
1683
+
1684
+ # TargetsPresentCondition contains information on any Targets defined in the
1685
+ # Delivery Pipeline that do not actually exist.
1686
+ class TargetsPresentCondition
1687
+ include Google::Apis::Core::Hashable
1688
+
1689
+ # The list of Target names that are missing. For example, projects/`project_id`/
1690
+ # locations/`location_name`/targets/`target_name`.
1691
+ # Corresponds to the JSON property `missingTargets`
1692
+ # @return [Array<String>]
1693
+ attr_accessor :missing_targets
1694
+
1695
+ # True if there aren't any missing Targets.
1696
+ # Corresponds to the JSON property `status`
1697
+ # @return [Boolean]
1698
+ attr_accessor :status
1699
+ alias_method :status?, :status
1700
+
1701
+ # Last time the condition was updated.
1702
+ # Corresponds to the JSON property `updateTime`
1703
+ # @return [String]
1704
+ attr_accessor :update_time
1705
+
1706
+ def initialize(**args)
1707
+ update!(**args)
1708
+ end
1709
+
1710
+ # Update properties of this object
1711
+ def update!(**args)
1712
+ @missing_targets = args[:missing_targets] if args.key?(:missing_targets)
1713
+ @status = args[:status] if args.key?(:status)
1714
+ @update_time = args[:update_time] if args.key?(:update_time)
1715
+ end
1716
+ end
1717
+
1718
+ # Request message for `TestIamPermissions` method.
1719
+ class TestIamPermissionsRequest
1720
+ include Google::Apis::Core::Hashable
1721
+
1722
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1723
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
1724
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1725
+ # Corresponds to the JSON property `permissions`
1726
+ # @return [Array<String>]
1727
+ attr_accessor :permissions
1728
+
1729
+ def initialize(**args)
1730
+ update!(**args)
1731
+ end
1732
+
1733
+ # Update properties of this object
1734
+ def update!(**args)
1735
+ @permissions = args[:permissions] if args.key?(:permissions)
1736
+ end
1737
+ end
1738
+
1739
+ # Response message for `TestIamPermissions` method.
1740
+ class TestIamPermissionsResponse
1741
+ include Google::Apis::Core::Hashable
1742
+
1743
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1744
+ # Corresponds to the JSON property `permissions`
1745
+ # @return [Array<String>]
1746
+ attr_accessor :permissions
1747
+
1748
+ def initialize(**args)
1749
+ update!(**args)
1750
+ end
1751
+
1752
+ # Update properties of this object
1753
+ def update!(**args)
1754
+ @permissions = args[:permissions] if args.key?(:permissions)
1755
+ end
1756
+ end
1757
+ end
1758
+ end
1759
+ end