google-apis-cloudbuild_v2 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2643 @@
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 CloudbuildV2
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
39
+ # from DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::CloudbuildV2::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # Message for creating repositoritories in batch.
97
+ class BatchCreateRepositoriesRequest
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # Required. The request messages specifying the repositories to create.
101
+ # Corresponds to the JSON property `requests`
102
+ # @return [Array<Google::Apis::CloudbuildV2::CreateRepositoryRequest>]
103
+ attr_accessor :requests
104
+
105
+ def initialize(**args)
106
+ update!(**args)
107
+ end
108
+
109
+ # Update properties of this object
110
+ def update!(**args)
111
+ @requests = args[:requests] if args.key?(:requests)
112
+ end
113
+ end
114
+
115
+ # Message for response of creating repositories in batch.
116
+ class BatchCreateRepositoriesResponse
117
+ include Google::Apis::Core::Hashable
118
+
119
+ # Repository resources created.
120
+ # Corresponds to the JSON property `repositories`
121
+ # @return [Array<Google::Apis::CloudbuildV2::Repository>]
122
+ attr_accessor :repositories
123
+
124
+ def initialize(**args)
125
+ update!(**args)
126
+ end
127
+
128
+ # Update properties of this object
129
+ def update!(**args)
130
+ @repositories = args[:repositories] if args.key?(:repositories)
131
+ end
132
+ end
133
+
134
+ # Associates `members`, or principals, with a `role`.
135
+ class Binding
136
+ include Google::Apis::Core::Hashable
137
+
138
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
139
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
140
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
141
+ # "Summary size limit" description: "Determines if a summary is less than 100
142
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
143
+ # Requestor is owner" description: "Determines if requestor is the document
144
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
145
+ # Logic): title: "Public documents" description: "Determine whether the document
146
+ # should be publicly visible" expression: "document.type != 'private' &&
147
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
148
+ # string" description: "Create a notification string with a timestamp."
149
+ # expression: "'New message received at ' + string(document.create_time)" The
150
+ # exact variables and functions that may be referenced within an expression are
151
+ # determined by the service that evaluates it. See the service documentation for
152
+ # additional information.
153
+ # Corresponds to the JSON property `condition`
154
+ # @return [Google::Apis::CloudbuildV2::Expr]
155
+ attr_accessor :condition
156
+
157
+ # Specifies the principals requesting access for a Google Cloud resource. `
158
+ # members` can have the following values: * `allUsers`: A special identifier
159
+ # that represents anyone who is on the internet; with or without a Google
160
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
161
+ # anyone who is authenticated with a Google account or a service account. Does
162
+ # not include identities that come from external identity providers (IdPs)
163
+ # through identity federation. * `user:`emailid``: An email address that
164
+ # represents a specific Google account. For example, `alice@example.com` . * `
165
+ # serviceAccount:`emailid``: An email address that represents a Google service
166
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
167
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
168
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
169
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
170
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
171
+ # email address that represents a Google group. For example, `admins@example.com`
172
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
173
+ # users of that domain. For example, `google.com` or `example.com`. * `deleted:
174
+ # user:`emailid`?uid=`uniqueid``: An email address (plus unique identifier)
175
+ # representing a user that has been recently deleted. For example, `alice@
176
+ # example.com?uid=123456789012345678901`. If the user is recovered, this value
177
+ # reverts to `user:`emailid`` and the recovered user retains the role in the
178
+ # binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address
179
+ # (plus unique identifier) representing a service account that has been recently
180
+ # deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
181
+ # 123456789012345678901`. If the service account is undeleted, this value
182
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
183
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
184
+ # An email address (plus unique identifier) representing a Google group that has
185
+ # been recently deleted. For example, `admins@example.com?uid=
186
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
187
+ # group:`emailid`` and the recovered group retains the role in the binding.
188
+ # Corresponds to the JSON property `members`
189
+ # @return [Array<String>]
190
+ attr_accessor :members
191
+
192
+ # Role that is assigned to the list of `members`, or principals. For example, `
193
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
194
+ # Corresponds to the JSON property `role`
195
+ # @return [String]
196
+ attr_accessor :role
197
+
198
+ def initialize(**args)
199
+ update!(**args)
200
+ end
201
+
202
+ # Update properties of this object
203
+ def update!(**args)
204
+ @condition = args[:condition] if args.key?(:condition)
205
+ @members = args[:members] if args.key?(:members)
206
+ @role = args[:role] if args.key?(:role)
207
+ end
208
+ end
209
+
210
+ # The request message for Operations.CancelOperation.
211
+ class CancelOperationRequest
212
+ include Google::Apis::Core::Hashable
213
+
214
+ def initialize(**args)
215
+ update!(**args)
216
+ end
217
+
218
+ # Update properties of this object
219
+ def update!(**args)
220
+ end
221
+ end
222
+
223
+ # ChildStatusReference is used to point to the statuses of individual TaskRuns
224
+ # and Runs within this PipelineRun.
225
+ class ChildStatusReference
226
+ include Google::Apis::Core::Hashable
227
+
228
+ # Name is the name of the TaskRun or Run this is referencing.
229
+ # Corresponds to the JSON property `name`
230
+ # @return [String]
231
+ attr_accessor :name
232
+
233
+ # PipelineTaskName is the name of the PipelineTask this is referencing.
234
+ # Corresponds to the JSON property `pipelineTaskName`
235
+ # @return [String]
236
+ attr_accessor :pipeline_task_name
237
+
238
+ # Output only. Type of the child reference.
239
+ # Corresponds to the JSON property `type`
240
+ # @return [String]
241
+ attr_accessor :type
242
+
243
+ # WhenExpressions is the list of checks guarding the execution of the
244
+ # PipelineTask
245
+ # Corresponds to the JSON property `whenExpressions`
246
+ # @return [Array<Google::Apis::CloudbuildV2::WhenExpression>]
247
+ attr_accessor :when_expressions
248
+
249
+ def initialize(**args)
250
+ update!(**args)
251
+ end
252
+
253
+ # Update properties of this object
254
+ def update!(**args)
255
+ @name = args[:name] if args.key?(:name)
256
+ @pipeline_task_name = args[:pipeline_task_name] if args.key?(:pipeline_task_name)
257
+ @type = args[:type] if args.key?(:type)
258
+ @when_expressions = args[:when_expressions] if args.key?(:when_expressions)
259
+ end
260
+ end
261
+
262
+ # A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Server or
263
+ # GitLab.
264
+ class Connection
265
+ include Google::Apis::Core::Hashable
266
+
267
+ # Allows clients to store small amounts of arbitrary data.
268
+ # Corresponds to the JSON property `annotations`
269
+ # @return [Hash<String,String>]
270
+ attr_accessor :annotations
271
+
272
+ # Output only. Server assigned timestamp for when the connection was created.
273
+ # Corresponds to the JSON property `createTime`
274
+ # @return [String]
275
+ attr_accessor :create_time
276
+
277
+ # If disabled is set to true, functionality is disabled for this connection.
278
+ # Repository based API methods and webhooks processing for repositories in this
279
+ # connection will be disabled.
280
+ # Corresponds to the JSON property `disabled`
281
+ # @return [Boolean]
282
+ attr_accessor :disabled
283
+ alias_method :disabled?, :disabled
284
+
285
+ # This checksum is computed by the server based on the value of other fields,
286
+ # and may be sent on update and delete requests to ensure the client has an up-
287
+ # to-date value before proceeding.
288
+ # Corresponds to the JSON property `etag`
289
+ # @return [String]
290
+ attr_accessor :etag
291
+
292
+ # Configuration for connections to github.com.
293
+ # Corresponds to the JSON property `githubConfig`
294
+ # @return [Google::Apis::CloudbuildV2::GitHubConfig]
295
+ attr_accessor :github_config
296
+
297
+ # Configuration for connections to an instance of GitHub Enterprise.
298
+ # Corresponds to the JSON property `githubEnterpriseConfig`
299
+ # @return [Google::Apis::CloudbuildV2::GoogleDevtoolsCloudbuildV2GitHubEnterpriseConfig]
300
+ attr_accessor :github_enterprise_config
301
+
302
+ # Configuration for connections to gitlab.com or an instance of GitLab
303
+ # Enterprise.
304
+ # Corresponds to the JSON property `gitlabConfig`
305
+ # @return [Google::Apis::CloudbuildV2::GoogleDevtoolsCloudbuildV2GitLabConfig]
306
+ attr_accessor :gitlab_config
307
+
308
+ # Describes stage and necessary actions to be taken by the user to complete the
309
+ # installation. Used for GitHub and GitHub Enterprise based connections.
310
+ # Corresponds to the JSON property `installationState`
311
+ # @return [Google::Apis::CloudbuildV2::InstallationState]
312
+ attr_accessor :installation_state
313
+
314
+ # Immutable. The resource name of the connection, in the format `projects/`
315
+ # project`/locations/`location`/connections/`connection_id``.
316
+ # Corresponds to the JSON property `name`
317
+ # @return [String]
318
+ attr_accessor :name
319
+
320
+ # Output only. Set to true when the connection is being set up or updated in the
321
+ # background.
322
+ # Corresponds to the JSON property `reconciling`
323
+ # @return [Boolean]
324
+ attr_accessor :reconciling
325
+ alias_method :reconciling?, :reconciling
326
+
327
+ # Output only. Server assigned timestamp for when the connection was updated.
328
+ # Corresponds to the JSON property `updateTime`
329
+ # @return [String]
330
+ attr_accessor :update_time
331
+
332
+ def initialize(**args)
333
+ update!(**args)
334
+ end
335
+
336
+ # Update properties of this object
337
+ def update!(**args)
338
+ @annotations = args[:annotations] if args.key?(:annotations)
339
+ @create_time = args[:create_time] if args.key?(:create_time)
340
+ @disabled = args[:disabled] if args.key?(:disabled)
341
+ @etag = args[:etag] if args.key?(:etag)
342
+ @github_config = args[:github_config] if args.key?(:github_config)
343
+ @github_enterprise_config = args[:github_enterprise_config] if args.key?(:github_enterprise_config)
344
+ @gitlab_config = args[:gitlab_config] if args.key?(:gitlab_config)
345
+ @installation_state = args[:installation_state] if args.key?(:installation_state)
346
+ @name = args[:name] if args.key?(:name)
347
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
348
+ @update_time = args[:update_time] if args.key?(:update_time)
349
+ end
350
+ end
351
+
352
+ # Message for creating a Repository.
353
+ class CreateRepositoryRequest
354
+ include Google::Apis::Core::Hashable
355
+
356
+ # Required. The connection to contain the repository. If the request is part of
357
+ # a BatchCreateRepositoriesRequest, this field should be empty or match the
358
+ # parent specified there.
359
+ # Corresponds to the JSON property `parent`
360
+ # @return [String]
361
+ attr_accessor :parent
362
+
363
+ # A repository associated to a parent connection.
364
+ # Corresponds to the JSON property `repository`
365
+ # @return [Google::Apis::CloudbuildV2::Repository]
366
+ attr_accessor :repository
367
+
368
+ # Required. The ID to use for the repository, which will become the final
369
+ # component of the repository's resource name. This ID should be unique in the
370
+ # connection. Allows alphanumeric characters and any of -._~%!$&'()*+,;=@.
371
+ # Corresponds to the JSON property `repositoryId`
372
+ # @return [String]
373
+ attr_accessor :repository_id
374
+
375
+ def initialize(**args)
376
+ update!(**args)
377
+ end
378
+
379
+ # Update properties of this object
380
+ def update!(**args)
381
+ @parent = args[:parent] if args.key?(:parent)
382
+ @repository = args[:repository] if args.key?(:repository)
383
+ @repository_id = args[:repository_id] if args.key?(:repository_id)
384
+ end
385
+ end
386
+
387
+ # EmbeddedTask defines a Task that is embedded in a Pipeline.
388
+ class EmbeddedTask
389
+ include Google::Apis::Core::Hashable
390
+
391
+ # User annotations. See https://google.aip.dev/128#annotations
392
+ # Corresponds to the JSON property `annotations`
393
+ # @return [Hash<String,String>]
394
+ attr_accessor :annotations
395
+
396
+ # TaskSpec contains the Spec to instantiate a TaskRun.
397
+ # Corresponds to the JSON property `taskSpec`
398
+ # @return [Google::Apis::CloudbuildV2::TaskSpec]
399
+ attr_accessor :task_spec
400
+
401
+ def initialize(**args)
402
+ update!(**args)
403
+ end
404
+
405
+ # Update properties of this object
406
+ def update!(**args)
407
+ @annotations = args[:annotations] if args.key?(:annotations)
408
+ @task_spec = args[:task_spec] if args.key?(:task_spec)
409
+ end
410
+ end
411
+
412
+ # A generic empty message that you can re-use to avoid defining duplicated empty
413
+ # messages in your APIs. A typical example is to use it as the request or the
414
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
415
+ # protobuf.Empty) returns (google.protobuf.Empty); `
416
+ class Empty
417
+ include Google::Apis::Core::Hashable
418
+
419
+ def initialize(**args)
420
+ update!(**args)
421
+ end
422
+
423
+ # Update properties of this object
424
+ def update!(**args)
425
+ end
426
+ end
427
+
428
+ # Represents an empty Volume source.
429
+ class EmptyDirVolumeSource
430
+ include Google::Apis::Core::Hashable
431
+
432
+ def initialize(**args)
433
+ update!(**args)
434
+ end
435
+
436
+ # Update properties of this object
437
+ def update!(**args)
438
+ end
439
+ end
440
+
441
+ # Environment variable.
442
+ class EnvVar
443
+ include Google::Apis::Core::Hashable
444
+
445
+ # Name of the environment variable.
446
+ # Corresponds to the JSON property `name`
447
+ # @return [String]
448
+ attr_accessor :name
449
+
450
+ # Value of the environment variable.
451
+ # Corresponds to the JSON property `value`
452
+ # @return [String]
453
+ attr_accessor :value
454
+
455
+ def initialize(**args)
456
+ update!(**args)
457
+ end
458
+
459
+ # Update properties of this object
460
+ def update!(**args)
461
+ @name = args[:name] if args.key?(:name)
462
+ @value = args[:value] if args.key?(:value)
463
+ end
464
+ end
465
+
466
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
467
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
468
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
469
+ # "Summary size limit" description: "Determines if a summary is less than 100
470
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
471
+ # Requestor is owner" description: "Determines if requestor is the document
472
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
473
+ # Logic): title: "Public documents" description: "Determine whether the document
474
+ # should be publicly visible" expression: "document.type != 'private' &&
475
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
476
+ # string" description: "Create a notification string with a timestamp."
477
+ # expression: "'New message received at ' + string(document.create_time)" The
478
+ # exact variables and functions that may be referenced within an expression are
479
+ # determined by the service that evaluates it. See the service documentation for
480
+ # additional information.
481
+ class Expr
482
+ include Google::Apis::Core::Hashable
483
+
484
+ # Optional. Description of the expression. This is a longer text which describes
485
+ # the expression, e.g. when hovered over it in a UI.
486
+ # Corresponds to the JSON property `description`
487
+ # @return [String]
488
+ attr_accessor :description
489
+
490
+ # Textual representation of an expression in Common Expression Language syntax.
491
+ # Corresponds to the JSON property `expression`
492
+ # @return [String]
493
+ attr_accessor :expression
494
+
495
+ # Optional. String indicating the location of the expression for error reporting,
496
+ # e.g. a file name and a position in the file.
497
+ # Corresponds to the JSON property `location`
498
+ # @return [String]
499
+ attr_accessor :location
500
+
501
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
502
+ # This can be used e.g. in UIs which allow to enter the expression.
503
+ # Corresponds to the JSON property `title`
504
+ # @return [String]
505
+ attr_accessor :title
506
+
507
+ def initialize(**args)
508
+ update!(**args)
509
+ end
510
+
511
+ # Update properties of this object
512
+ def update!(**args)
513
+ @description = args[:description] if args.key?(:description)
514
+ @expression = args[:expression] if args.key?(:expression)
515
+ @location = args[:location] if args.key?(:location)
516
+ @title = args[:title] if args.key?(:title)
517
+ end
518
+ end
519
+
520
+ # Response for fetching git refs
521
+ class FetchGitRefsResponse
522
+ include Google::Apis::Core::Hashable
523
+
524
+ # A token identifying a page of results the server should return.
525
+ # Corresponds to the JSON property `nextPageToken`
526
+ # @return [String]
527
+ attr_accessor :next_page_token
528
+
529
+ # Name of the refs fetched.
530
+ # Corresponds to the JSON property `refNames`
531
+ # @return [Array<String>]
532
+ attr_accessor :ref_names
533
+
534
+ def initialize(**args)
535
+ update!(**args)
536
+ end
537
+
538
+ # Update properties of this object
539
+ def update!(**args)
540
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
541
+ @ref_names = args[:ref_names] if args.key?(:ref_names)
542
+ end
543
+ end
544
+
545
+ # Response message for FetchLinkableRepositories.
546
+ class FetchLinkableRepositoriesResponse
547
+ include Google::Apis::Core::Hashable
548
+
549
+ # A token identifying a page of results the server should return.
550
+ # Corresponds to the JSON property `nextPageToken`
551
+ # @return [String]
552
+ attr_accessor :next_page_token
553
+
554
+ # repositories ready to be created.
555
+ # Corresponds to the JSON property `repositories`
556
+ # @return [Array<Google::Apis::CloudbuildV2::Repository>]
557
+ attr_accessor :repositories
558
+
559
+ def initialize(**args)
560
+ update!(**args)
561
+ end
562
+
563
+ # Update properties of this object
564
+ def update!(**args)
565
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
566
+ @repositories = args[:repositories] if args.key?(:repositories)
567
+ end
568
+ end
569
+
570
+ # Message for fetching SCM read token.
571
+ class FetchReadTokenRequest
572
+ include Google::Apis::Core::Hashable
573
+
574
+ def initialize(**args)
575
+ update!(**args)
576
+ end
577
+
578
+ # Update properties of this object
579
+ def update!(**args)
580
+ end
581
+ end
582
+
583
+ # Message for responding to get read token.
584
+ class FetchReadTokenResponse
585
+ include Google::Apis::Core::Hashable
586
+
587
+ # Expiration timestamp. Can be empty if unknown or non-expiring.
588
+ # Corresponds to the JSON property `expirationTime`
589
+ # @return [String]
590
+ attr_accessor :expiration_time
591
+
592
+ # The token content.
593
+ # Corresponds to the JSON property `token`
594
+ # @return [String]
595
+ attr_accessor :token
596
+
597
+ def initialize(**args)
598
+ update!(**args)
599
+ end
600
+
601
+ # Update properties of this object
602
+ def update!(**args)
603
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
604
+ @token = args[:token] if args.key?(:token)
605
+ end
606
+ end
607
+
608
+ # Message for fetching SCM read/write token.
609
+ class FetchReadWriteTokenRequest
610
+ include Google::Apis::Core::Hashable
611
+
612
+ def initialize(**args)
613
+ update!(**args)
614
+ end
615
+
616
+ # Update properties of this object
617
+ def update!(**args)
618
+ end
619
+ end
620
+
621
+ # Message for responding to get read/write token.
622
+ class FetchReadWriteTokenResponse
623
+ include Google::Apis::Core::Hashable
624
+
625
+ # Expiration timestamp. Can be empty if unknown or non-expiring.
626
+ # Corresponds to the JSON property `expirationTime`
627
+ # @return [String]
628
+ attr_accessor :expiration_time
629
+
630
+ # The token content.
631
+ # Corresponds to the JSON property `token`
632
+ # @return [String]
633
+ attr_accessor :token
634
+
635
+ def initialize(**args)
636
+ update!(**args)
637
+ end
638
+
639
+ # Update properties of this object
640
+ def update!(**args)
641
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
642
+ @token = args[:token] if args.key?(:token)
643
+ end
644
+ end
645
+
646
+ # Configuration for connections to github.com.
647
+ class GitHubConfig
648
+ include Google::Apis::Core::Hashable
649
+
650
+ # GitHub App installation id.
651
+ # Corresponds to the JSON property `appInstallationId`
652
+ # @return [Fixnum]
653
+ attr_accessor :app_installation_id
654
+
655
+ # Represents an OAuth token of the account that authorized the Connection, and
656
+ # associated metadata.
657
+ # Corresponds to the JSON property `authorizerCredential`
658
+ # @return [Google::Apis::CloudbuildV2::OAuthCredential]
659
+ attr_accessor :authorizer_credential
660
+
661
+ def initialize(**args)
662
+ update!(**args)
663
+ end
664
+
665
+ # Update properties of this object
666
+ def update!(**args)
667
+ @app_installation_id = args[:app_installation_id] if args.key?(:app_installation_id)
668
+ @authorizer_credential = args[:authorizer_credential] if args.key?(:authorizer_credential)
669
+ end
670
+ end
671
+
672
+ # Conditions defines a readiness condition for a Knative resource.
673
+ class GoogleDevtoolsCloudbuildV2Condition
674
+ include Google::Apis::Core::Hashable
675
+
676
+ # LastTransitionTime is the last time the condition transitioned from one status
677
+ # to another.
678
+ # Corresponds to the JSON property `lastTransitionTime`
679
+ # @return [String]
680
+ attr_accessor :last_transition_time
681
+
682
+ # A human readable message indicating details about the transition.
683
+ # Corresponds to the JSON property `message`
684
+ # @return [String]
685
+ attr_accessor :message
686
+
687
+ # The reason for the condition's last transition.
688
+ # Corresponds to the JSON property `reason`
689
+ # @return [String]
690
+ attr_accessor :reason
691
+
692
+ # Severity with which to treat failures of this type of condition.
693
+ # Corresponds to the JSON property `severity`
694
+ # @return [String]
695
+ attr_accessor :severity
696
+
697
+ # Status of the condition.
698
+ # Corresponds to the JSON property `status`
699
+ # @return [String]
700
+ attr_accessor :status
701
+
702
+ # Type of condition.
703
+ # Corresponds to the JSON property `type`
704
+ # @return [String]
705
+ attr_accessor :type
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @last_transition_time = args[:last_transition_time] if args.key?(:last_transition_time)
714
+ @message = args[:message] if args.key?(:message)
715
+ @reason = args[:reason] if args.key?(:reason)
716
+ @severity = args[:severity] if args.key?(:severity)
717
+ @status = args[:status] if args.key?(:status)
718
+ @type = args[:type] if args.key?(:type)
719
+ end
720
+ end
721
+
722
+ # Configuration for connections to an instance of GitHub Enterprise.
723
+ class GoogleDevtoolsCloudbuildV2GitHubEnterpriseConfig
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # Required. API Key used for authentication of webhook events.
727
+ # Corresponds to the JSON property `apiKey`
728
+ # @return [String]
729
+ attr_accessor :api_key
730
+
731
+ # Id of the GitHub App created from the manifest.
732
+ # Corresponds to the JSON property `appId`
733
+ # @return [Fixnum]
734
+ attr_accessor :app_id
735
+
736
+ # ID of the installation of the GitHub App.
737
+ # Corresponds to the JSON property `appInstallationId`
738
+ # @return [Fixnum]
739
+ attr_accessor :app_installation_id
740
+
741
+ # The URL-friendly name of the GitHub App.
742
+ # Corresponds to the JSON property `appSlug`
743
+ # @return [String]
744
+ attr_accessor :app_slug
745
+
746
+ # Required. The URI of the GitHub Enterprise host this connection is for.
747
+ # Corresponds to the JSON property `hostUri`
748
+ # @return [String]
749
+ attr_accessor :host_uri
750
+
751
+ # SecretManager resource containing the private key of the GitHub App, formatted
752
+ # as `projects/*/secrets/*/versions/*`.
753
+ # Corresponds to the JSON property `privateKeySecretVersion`
754
+ # @return [String]
755
+ attr_accessor :private_key_secret_version
756
+
757
+ # Output only. GitHub Enterprise version installed at the host_uri.
758
+ # Corresponds to the JSON property `serverVersion`
759
+ # @return [String]
760
+ attr_accessor :server_version
761
+
762
+ # ServiceDirectoryConfig represents Service Directory configuration for a
763
+ # connection.
764
+ # Corresponds to the JSON property `serviceDirectoryConfig`
765
+ # @return [Google::Apis::CloudbuildV2::GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig]
766
+ attr_accessor :service_directory_config
767
+
768
+ # SSL certificate to use for requests to GitHub Enterprise.
769
+ # Corresponds to the JSON property `sslCa`
770
+ # @return [String]
771
+ attr_accessor :ssl_ca
772
+
773
+ # SecretManager resource containing the webhook secret of the GitHub App,
774
+ # formatted as `projects/*/secrets/*/versions/*`.
775
+ # Corresponds to the JSON property `webhookSecretSecretVersion`
776
+ # @return [String]
777
+ attr_accessor :webhook_secret_secret_version
778
+
779
+ def initialize(**args)
780
+ update!(**args)
781
+ end
782
+
783
+ # Update properties of this object
784
+ def update!(**args)
785
+ @api_key = args[:api_key] if args.key?(:api_key)
786
+ @app_id = args[:app_id] if args.key?(:app_id)
787
+ @app_installation_id = args[:app_installation_id] if args.key?(:app_installation_id)
788
+ @app_slug = args[:app_slug] if args.key?(:app_slug)
789
+ @host_uri = args[:host_uri] if args.key?(:host_uri)
790
+ @private_key_secret_version = args[:private_key_secret_version] if args.key?(:private_key_secret_version)
791
+ @server_version = args[:server_version] if args.key?(:server_version)
792
+ @service_directory_config = args[:service_directory_config] if args.key?(:service_directory_config)
793
+ @ssl_ca = args[:ssl_ca] if args.key?(:ssl_ca)
794
+ @webhook_secret_secret_version = args[:webhook_secret_secret_version] if args.key?(:webhook_secret_secret_version)
795
+ end
796
+ end
797
+
798
+ # Configuration for connections to gitlab.com or an instance of GitLab
799
+ # Enterprise.
800
+ class GoogleDevtoolsCloudbuildV2GitLabConfig
801
+ include Google::Apis::Core::Hashable
802
+
803
+ # Represents a personal access token that authorized the Connection, and
804
+ # associated metadata.
805
+ # Corresponds to the JSON property `authorizerCredential`
806
+ # @return [Google::Apis::CloudbuildV2::UserCredential]
807
+ attr_accessor :authorizer_credential
808
+
809
+ # The URI of the GitLab Enterprise host this connection is for. If not specified,
810
+ # the default value is https://gitlab.com.
811
+ # Corresponds to the JSON property `hostUri`
812
+ # @return [String]
813
+ attr_accessor :host_uri
814
+
815
+ # Represents a personal access token that authorized the Connection, and
816
+ # associated metadata.
817
+ # Corresponds to the JSON property `readAuthorizerCredential`
818
+ # @return [Google::Apis::CloudbuildV2::UserCredential]
819
+ attr_accessor :read_authorizer_credential
820
+
821
+ # Output only. Version of the GitLab Enterprise server running on the `host_uri`.
822
+ # Corresponds to the JSON property `serverVersion`
823
+ # @return [String]
824
+ attr_accessor :server_version
825
+
826
+ # ServiceDirectoryConfig represents Service Directory configuration for a
827
+ # connection.
828
+ # Corresponds to the JSON property `serviceDirectoryConfig`
829
+ # @return [Google::Apis::CloudbuildV2::GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig]
830
+ attr_accessor :service_directory_config
831
+
832
+ # SSL certificate to use for requests to GitLab Enterprise.
833
+ # Corresponds to the JSON property `sslCa`
834
+ # @return [String]
835
+ attr_accessor :ssl_ca
836
+
837
+ # Required. Immutable. SecretManager resource containing the webhook secret of a
838
+ # GitLab Enterprise project, formatted as `projects/*/secrets/*/versions/*`.
839
+ # Corresponds to the JSON property `webhookSecretSecretVersion`
840
+ # @return [String]
841
+ attr_accessor :webhook_secret_secret_version
842
+
843
+ def initialize(**args)
844
+ update!(**args)
845
+ end
846
+
847
+ # Update properties of this object
848
+ def update!(**args)
849
+ @authorizer_credential = args[:authorizer_credential] if args.key?(:authorizer_credential)
850
+ @host_uri = args[:host_uri] if args.key?(:host_uri)
851
+ @read_authorizer_credential = args[:read_authorizer_credential] if args.key?(:read_authorizer_credential)
852
+ @server_version = args[:server_version] if args.key?(:server_version)
853
+ @service_directory_config = args[:service_directory_config] if args.key?(:service_directory_config)
854
+ @ssl_ca = args[:ssl_ca] if args.key?(:ssl_ca)
855
+ @webhook_secret_secret_version = args[:webhook_secret_secret_version] if args.key?(:webhook_secret_secret_version)
856
+ end
857
+ end
858
+
859
+ # Represents the metadata of the long-running operation.
860
+ class GoogleDevtoolsCloudbuildV2OperationMetadata
861
+ include Google::Apis::Core::Hashable
862
+
863
+ # Output only. API version used to start the operation.
864
+ # Corresponds to the JSON property `apiVersion`
865
+ # @return [String]
866
+ attr_accessor :api_version
867
+
868
+ # Output only. The time the operation was created.
869
+ # Corresponds to the JSON property `createTime`
870
+ # @return [String]
871
+ attr_accessor :create_time
872
+
873
+ # Output only. The time the operation finished running.
874
+ # Corresponds to the JSON property `endTime`
875
+ # @return [String]
876
+ attr_accessor :end_time
877
+
878
+ # Output only. Identifies whether the user has requested cancellation of the
879
+ # operation. Operations that have successfully been cancelled have Operation.
880
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
881
+ # CANCELLED`.
882
+ # Corresponds to the JSON property `requestedCancellation`
883
+ # @return [Boolean]
884
+ attr_accessor :requested_cancellation
885
+ alias_method :requested_cancellation?, :requested_cancellation
886
+
887
+ # Output only. Human-readable status of the operation, if any.
888
+ # Corresponds to the JSON property `statusMessage`
889
+ # @return [String]
890
+ attr_accessor :status_message
891
+
892
+ # Output only. Server-defined resource path for the target of the operation.
893
+ # Corresponds to the JSON property `target`
894
+ # @return [String]
895
+ attr_accessor :target
896
+
897
+ # Output only. Name of the verb executed by the operation.
898
+ # Corresponds to the JSON property `verb`
899
+ # @return [String]
900
+ attr_accessor :verb
901
+
902
+ def initialize(**args)
903
+ update!(**args)
904
+ end
905
+
906
+ # Update properties of this object
907
+ def update!(**args)
908
+ @api_version = args[:api_version] if args.key?(:api_version)
909
+ @create_time = args[:create_time] if args.key?(:create_time)
910
+ @end_time = args[:end_time] if args.key?(:end_time)
911
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
912
+ @status_message = args[:status_message] if args.key?(:status_message)
913
+ @target = args[:target] if args.key?(:target)
914
+ @verb = args[:verb] if args.key?(:verb)
915
+ end
916
+ end
917
+
918
+ # ServiceDirectoryConfig represents Service Directory configuration for a
919
+ # connection.
920
+ class GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig
921
+ include Google::Apis::Core::Hashable
922
+
923
+ # Required. The Service Directory service name. Format: projects/`project`/
924
+ # locations/`location`/namespaces/`namespace`/services/`service`.
925
+ # Corresponds to the JSON property `service`
926
+ # @return [String]
927
+ attr_accessor :service
928
+
929
+ def initialize(**args)
930
+ update!(**args)
931
+ end
932
+
933
+ # Update properties of this object
934
+ def update!(**args)
935
+ @service = args[:service] if args.key?(:service)
936
+ end
937
+ end
938
+
939
+ # Message that represents an arbitrary HTTP body. It should only be used for
940
+ # payload formats that can't be represented as JSON, such as raw binary or an
941
+ # HTML page. This message can be used both in streaming and non-streaming API
942
+ # methods in the request as well as the response. It can be used as a top-level
943
+ # request field, which is convenient if one wants to extract parameters from
944
+ # either the URL or HTTP template into the request fields and also want access
945
+ # to the raw HTTP body. Example: message GetResourceRequest ` // A unique
946
+ # request id. string request_id = 1; // The raw HTTP body is bound to this field.
947
+ # google.api.HttpBody http_body = 2; ` service ResourceService ` rpc
948
+ # GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc
949
+ # UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); ` Example
950
+ # with streaming methods: service CaldavService ` rpc GetCalendar(stream google.
951
+ # api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream
952
+ # google.api.HttpBody) returns (stream google.api.HttpBody); ` Use of this type
953
+ # only changes how the request and response bodies are handled, all other
954
+ # features will continue to work unchanged.
955
+ class HttpBody
956
+ include Google::Apis::Core::Hashable
957
+
958
+ # The HTTP Content-Type header value specifying the content type of the body.
959
+ # Corresponds to the JSON property `contentType`
960
+ # @return [String]
961
+ attr_accessor :content_type
962
+
963
+ # The HTTP request/response body as raw binary.
964
+ # Corresponds to the JSON property `data`
965
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
966
+ # @return [String]
967
+ attr_accessor :data
968
+
969
+ # Application specific response metadata. Must be set in the first response for
970
+ # streaming APIs.
971
+ # Corresponds to the JSON property `extensions`
972
+ # @return [Array<Hash<String,Object>>]
973
+ attr_accessor :extensions
974
+
975
+ def initialize(**args)
976
+ update!(**args)
977
+ end
978
+
979
+ # Update properties of this object
980
+ def update!(**args)
981
+ @content_type = args[:content_type] if args.key?(:content_type)
982
+ @data = args[:data] if args.key?(:data)
983
+ @extensions = args[:extensions] if args.key?(:extensions)
984
+ end
985
+ end
986
+
987
+ # Describes stage and necessary actions to be taken by the user to complete the
988
+ # installation. Used for GitHub and GitHub Enterprise based connections.
989
+ class InstallationState
990
+ include Google::Apis::Core::Hashable
991
+
992
+ # Output only. Link to follow for next action. Empty string if the installation
993
+ # is already complete.
994
+ # Corresponds to the JSON property `actionUri`
995
+ # @return [String]
996
+ attr_accessor :action_uri
997
+
998
+ # Output only. Message of what the user should do next to continue the
999
+ # installation. Empty string if the installation is already complete.
1000
+ # Corresponds to the JSON property `message`
1001
+ # @return [String]
1002
+ attr_accessor :message
1003
+
1004
+ # Output only. Current step of the installation process.
1005
+ # Corresponds to the JSON property `stage`
1006
+ # @return [String]
1007
+ attr_accessor :stage
1008
+
1009
+ def initialize(**args)
1010
+ update!(**args)
1011
+ end
1012
+
1013
+ # Update properties of this object
1014
+ def update!(**args)
1015
+ @action_uri = args[:action_uri] if args.key?(:action_uri)
1016
+ @message = args[:message] if args.key?(:message)
1017
+ @stage = args[:stage] if args.key?(:stage)
1018
+ end
1019
+ end
1020
+
1021
+ # Message for response to listing Connections.
1022
+ class ListConnectionsResponse
1023
+ include Google::Apis::Core::Hashable
1024
+
1025
+ # The list of Connections.
1026
+ # Corresponds to the JSON property `connections`
1027
+ # @return [Array<Google::Apis::CloudbuildV2::Connection>]
1028
+ attr_accessor :connections
1029
+
1030
+ # A token identifying a page of results the server should return.
1031
+ # Corresponds to the JSON property `nextPageToken`
1032
+ # @return [String]
1033
+ attr_accessor :next_page_token
1034
+
1035
+ def initialize(**args)
1036
+ update!(**args)
1037
+ end
1038
+
1039
+ # Update properties of this object
1040
+ def update!(**args)
1041
+ @connections = args[:connections] if args.key?(:connections)
1042
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1043
+ end
1044
+ end
1045
+
1046
+ # Message for response to listing Repositories.
1047
+ class ListRepositoriesResponse
1048
+ include Google::Apis::Core::Hashable
1049
+
1050
+ # A token identifying a page of results the server should return.
1051
+ # Corresponds to the JSON property `nextPageToken`
1052
+ # @return [String]
1053
+ attr_accessor :next_page_token
1054
+
1055
+ # The list of Repositories.
1056
+ # Corresponds to the JSON property `repositories`
1057
+ # @return [Array<Google::Apis::CloudbuildV2::Repository>]
1058
+ attr_accessor :repositories
1059
+
1060
+ def initialize(**args)
1061
+ update!(**args)
1062
+ end
1063
+
1064
+ # Update properties of this object
1065
+ def update!(**args)
1066
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1067
+ @repositories = args[:repositories] if args.key?(:repositories)
1068
+ end
1069
+ end
1070
+
1071
+ # Represents an OAuth token of the account that authorized the Connection, and
1072
+ # associated metadata.
1073
+ class OAuthCredential
1074
+ include Google::Apis::Core::Hashable
1075
+
1076
+ # A SecretManager resource containing the OAuth token that authorizes the Cloud
1077
+ # Build connection. Format: `projects/*/secrets/*/versions/*`.
1078
+ # Corresponds to the JSON property `oauthTokenSecretVersion`
1079
+ # @return [String]
1080
+ attr_accessor :oauth_token_secret_version
1081
+
1082
+ # Output only. The username associated to this token.
1083
+ # Corresponds to the JSON property `username`
1084
+ # @return [String]
1085
+ attr_accessor :username
1086
+
1087
+ def initialize(**args)
1088
+ update!(**args)
1089
+ end
1090
+
1091
+ # Update properties of this object
1092
+ def update!(**args)
1093
+ @oauth_token_secret_version = args[:oauth_token_secret_version] if args.key?(:oauth_token_secret_version)
1094
+ @username = args[:username] if args.key?(:username)
1095
+ end
1096
+ end
1097
+
1098
+ # This resource represents a long-running operation that is the result of a
1099
+ # network API call.
1100
+ class Operation
1101
+ include Google::Apis::Core::Hashable
1102
+
1103
+ # If the value is `false`, it means the operation is still in progress. If `true`
1104
+ # , the operation is completed, and either `error` or `response` is available.
1105
+ # Corresponds to the JSON property `done`
1106
+ # @return [Boolean]
1107
+ attr_accessor :done
1108
+ alias_method :done?, :done
1109
+
1110
+ # The `Status` type defines a logical error model that is suitable for different
1111
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1112
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1113
+ # data: error code, error message, and error details. You can find out more
1114
+ # about this error model and how to work with it in the [API Design Guide](https:
1115
+ # //cloud.google.com/apis/design/errors).
1116
+ # Corresponds to the JSON property `error`
1117
+ # @return [Google::Apis::CloudbuildV2::Status]
1118
+ attr_accessor :error
1119
+
1120
+ # Service-specific metadata associated with the operation. It typically contains
1121
+ # progress information and common metadata such as create time. Some services
1122
+ # might not provide such metadata. Any method that returns a long-running
1123
+ # operation should document the metadata type, if any.
1124
+ # Corresponds to the JSON property `metadata`
1125
+ # @return [Hash<String,Object>]
1126
+ attr_accessor :metadata
1127
+
1128
+ # The server-assigned name, which is only unique within the same service that
1129
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1130
+ # be a resource name ending with `operations/`unique_id``.
1131
+ # Corresponds to the JSON property `name`
1132
+ # @return [String]
1133
+ attr_accessor :name
1134
+
1135
+ # The normal, successful response of the operation. If the original method
1136
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
1137
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
1138
+ # response should be the resource. For other methods, the response should have
1139
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
1140
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
1141
+ # `TakeSnapshotResponse`.
1142
+ # Corresponds to the JSON property `response`
1143
+ # @return [Hash<String,Object>]
1144
+ attr_accessor :response
1145
+
1146
+ def initialize(**args)
1147
+ update!(**args)
1148
+ end
1149
+
1150
+ # Update properties of this object
1151
+ def update!(**args)
1152
+ @done = args[:done] if args.key?(:done)
1153
+ @error = args[:error] if args.key?(:error)
1154
+ @metadata = args[:metadata] if args.key?(:metadata)
1155
+ @name = args[:name] if args.key?(:name)
1156
+ @response = args[:response] if args.key?(:response)
1157
+ end
1158
+ end
1159
+
1160
+ # Represents the metadata of the long-running operation.
1161
+ class OperationMetadata
1162
+ include Google::Apis::Core::Hashable
1163
+
1164
+ # Output only. API version used to start the operation.
1165
+ # Corresponds to the JSON property `apiVersion`
1166
+ # @return [String]
1167
+ attr_accessor :api_version
1168
+
1169
+ # Output only. Identifies whether the user has requested cancellation of the
1170
+ # operation. Operations that have been cancelled successfully have Operation.
1171
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1172
+ # CANCELLED`.
1173
+ # Corresponds to the JSON property `cancelRequested`
1174
+ # @return [Boolean]
1175
+ attr_accessor :cancel_requested
1176
+ alias_method :cancel_requested?, :cancel_requested
1177
+
1178
+ # Output only. The time the operation was created.
1179
+ # Corresponds to the JSON property `createTime`
1180
+ # @return [String]
1181
+ attr_accessor :create_time
1182
+
1183
+ # Output only. The time the operation finished running.
1184
+ # Corresponds to the JSON property `endTime`
1185
+ # @return [String]
1186
+ attr_accessor :end_time
1187
+
1188
+ # Output only. Human-readable status of the operation, if any.
1189
+ # Corresponds to the JSON property `statusDetail`
1190
+ # @return [String]
1191
+ attr_accessor :status_detail
1192
+
1193
+ # Output only. Server-defined resource path for the target of the operation.
1194
+ # Corresponds to the JSON property `target`
1195
+ # @return [String]
1196
+ attr_accessor :target
1197
+
1198
+ # Output only. Name of the verb executed by the operation.
1199
+ # Corresponds to the JSON property `verb`
1200
+ # @return [String]
1201
+ attr_accessor :verb
1202
+
1203
+ def initialize(**args)
1204
+ update!(**args)
1205
+ end
1206
+
1207
+ # Update properties of this object
1208
+ def update!(**args)
1209
+ @api_version = args[:api_version] if args.key?(:api_version)
1210
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
1211
+ @create_time = args[:create_time] if args.key?(:create_time)
1212
+ @end_time = args[:end_time] if args.key?(:end_time)
1213
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1214
+ @target = args[:target] if args.key?(:target)
1215
+ @verb = args[:verb] if args.key?(:verb)
1216
+ end
1217
+ end
1218
+
1219
+ # Param defined with name and value. PipelineRef can be used to refer to a
1220
+ # specific instance of a Pipeline.
1221
+ class Param
1222
+ include Google::Apis::Core::Hashable
1223
+
1224
+ # Name of the parameter.
1225
+ # Corresponds to the JSON property `name`
1226
+ # @return [String]
1227
+ attr_accessor :name
1228
+
1229
+ # Parameter value.
1230
+ # Corresponds to the JSON property `value`
1231
+ # @return [Google::Apis::CloudbuildV2::ParamValue]
1232
+ attr_accessor :value
1233
+
1234
+ def initialize(**args)
1235
+ update!(**args)
1236
+ end
1237
+
1238
+ # Update properties of this object
1239
+ def update!(**args)
1240
+ @name = args[:name] if args.key?(:name)
1241
+ @value = args[:value] if args.key?(:value)
1242
+ end
1243
+ end
1244
+
1245
+ # ParamSpec defines parameters needed beyond typed inputs (such as resources).
1246
+ # Parameter values are provided by users as inputs on a TaskRun or PipelineRun.
1247
+ class ParamSpec
1248
+ include Google::Apis::Core::Hashable
1249
+
1250
+ # Parameter value.
1251
+ # Corresponds to the JSON property `default`
1252
+ # @return [Google::Apis::CloudbuildV2::ParamValue]
1253
+ attr_accessor :default
1254
+
1255
+ # Description of the ParamSpec
1256
+ # Corresponds to the JSON property `description`
1257
+ # @return [String]
1258
+ attr_accessor :description
1259
+
1260
+ # Name of the ParamSpec
1261
+ # Corresponds to the JSON property `name`
1262
+ # @return [String]
1263
+ attr_accessor :name
1264
+
1265
+ # Type of ParamSpec
1266
+ # Corresponds to the JSON property `type`
1267
+ # @return [String]
1268
+ attr_accessor :type
1269
+
1270
+ def initialize(**args)
1271
+ update!(**args)
1272
+ end
1273
+
1274
+ # Update properties of this object
1275
+ def update!(**args)
1276
+ @default = args[:default] if args.key?(:default)
1277
+ @description = args[:description] if args.key?(:description)
1278
+ @name = args[:name] if args.key?(:name)
1279
+ @type = args[:type] if args.key?(:type)
1280
+ end
1281
+ end
1282
+
1283
+ # Parameter value.
1284
+ class ParamValue
1285
+ include Google::Apis::Core::Hashable
1286
+
1287
+ # Value of the parameter if type is array.
1288
+ # Corresponds to the JSON property `arrayVal`
1289
+ # @return [Array<String>]
1290
+ attr_accessor :array_val
1291
+
1292
+ # Value of the parameter if type is string.
1293
+ # Corresponds to the JSON property `stringVal`
1294
+ # @return [String]
1295
+ attr_accessor :string_val
1296
+
1297
+ # Type of parameter.
1298
+ # Corresponds to the JSON property `type`
1299
+ # @return [String]
1300
+ attr_accessor :type
1301
+
1302
+ def initialize(**args)
1303
+ update!(**args)
1304
+ end
1305
+
1306
+ # Update properties of this object
1307
+ def update!(**args)
1308
+ @array_val = args[:array_val] if args.key?(:array_val)
1309
+ @string_val = args[:string_val] if args.key?(:string_val)
1310
+ @type = args[:type] if args.key?(:type)
1311
+ end
1312
+ end
1313
+
1314
+ # PipelineRef can be used to refer to a specific instance of a Pipeline.
1315
+ class PipelineRef
1316
+ include Google::Apis::Core::Hashable
1317
+
1318
+ # Name of the Pipeline.
1319
+ # Corresponds to the JSON property `name`
1320
+ # @return [String]
1321
+ attr_accessor :name
1322
+
1323
+ # Params contains the parameters used to identify the referenced Tekton resource.
1324
+ # Example entries might include "repo" or "path" but the set of params
1325
+ # ultimately depends on the chosen resolver.
1326
+ # Corresponds to the JSON property `params`
1327
+ # @return [Array<Google::Apis::CloudbuildV2::Param>]
1328
+ attr_accessor :params
1329
+
1330
+ # Resolver is the name of the resolver that should perform resolution of the
1331
+ # referenced Tekton resource.
1332
+ # Corresponds to the JSON property `resolver`
1333
+ # @return [String]
1334
+ attr_accessor :resolver
1335
+
1336
+ def initialize(**args)
1337
+ update!(**args)
1338
+ end
1339
+
1340
+ # Update properties of this object
1341
+ def update!(**args)
1342
+ @name = args[:name] if args.key?(:name)
1343
+ @params = args[:params] if args.key?(:params)
1344
+ @resolver = args[:resolver] if args.key?(:resolver)
1345
+ end
1346
+ end
1347
+
1348
+ # Message describing PipelineRun object
1349
+ class PipelineRun
1350
+ include Google::Apis::Core::Hashable
1351
+
1352
+ # User annotations. See https://google.aip.dev/128#annotations
1353
+ # Corresponds to the JSON property `annotations`
1354
+ # @return [Hash<String,String>]
1355
+ attr_accessor :annotations
1356
+
1357
+ # Output only. List of TaskRun and Run names and PipelineTask names for children
1358
+ # of this PipelineRun.
1359
+ # Corresponds to the JSON property `childReferences`
1360
+ # @return [Array<Google::Apis::CloudbuildV2::ChildStatusReference>]
1361
+ attr_accessor :child_references
1362
+
1363
+ # Output only. Time the pipeline completed.
1364
+ # Corresponds to the JSON property `completionTime`
1365
+ # @return [String]
1366
+ attr_accessor :completion_time
1367
+
1368
+ # Output only. Kubernetes Conditions convention for PipelineRun status and error.
1369
+ # Corresponds to the JSON property `conditions`
1370
+ # @return [Array<Google::Apis::CloudbuildV2::GoogleDevtoolsCloudbuildV2Condition>]
1371
+ attr_accessor :conditions
1372
+
1373
+ # Output only. Time at which the request to create the `PipelineRun` was
1374
+ # received.
1375
+ # Corresponds to the JSON property `createTime`
1376
+ # @return [String]
1377
+ attr_accessor :create_time
1378
+
1379
+ # Needed for declarative-friendly resources.
1380
+ # Corresponds to the JSON property `etag`
1381
+ # @return [String]
1382
+ attr_accessor :etag
1383
+
1384
+ # Output only. The `PipelineRun` name with format `projects/`project`/locations/`
1385
+ # location`/pipelineRuns/`pipeline_run``
1386
+ # Corresponds to the JSON property `name`
1387
+ # @return [String]
1388
+ attr_accessor :name
1389
+
1390
+ # Params is a list of parameter names and values.
1391
+ # Corresponds to the JSON property `params`
1392
+ # @return [Array<Google::Apis::CloudbuildV2::Param>]
1393
+ attr_accessor :params
1394
+
1395
+ # PipelineRef can be used to refer to a specific instance of a Pipeline.
1396
+ # Corresponds to the JSON property `pipelineRef`
1397
+ # @return [Google::Apis::CloudbuildV2::PipelineRef]
1398
+ attr_accessor :pipeline_ref
1399
+
1400
+ # Status of the PipelineRun.
1401
+ # Corresponds to the JSON property `pipelineRunStatus`
1402
+ # @return [String]
1403
+ attr_accessor :pipeline_run_status
1404
+
1405
+ # PipelineSpec defines the desired state of Pipeline.
1406
+ # Corresponds to the JSON property `pipelineSpec`
1407
+ # @return [Google::Apis::CloudbuildV2::PipelineSpec]
1408
+ attr_accessor :pipeline_spec
1409
+
1410
+ # PipelineSpec defines the desired state of Pipeline.
1411
+ # Corresponds to the JSON property `resolvedPipelineSpec`
1412
+ # @return [Google::Apis::CloudbuildV2::PipelineSpec]
1413
+ attr_accessor :resolved_pipeline_spec
1414
+
1415
+ # Service account used in the Pipeline.
1416
+ # Corresponds to the JSON property `serviceAccount`
1417
+ # @return [String]
1418
+ attr_accessor :service_account
1419
+
1420
+ # Output only. List of tasks that were skipped due to when expressions
1421
+ # evaluating to false.
1422
+ # Corresponds to the JSON property `skippedTasks`
1423
+ # @return [Array<Google::Apis::CloudbuildV2::SkippedTask>]
1424
+ attr_accessor :skipped_tasks
1425
+
1426
+ # Output only. Time the pipeline is actually started.
1427
+ # Corresponds to the JSON property `startTime`
1428
+ # @return [String]
1429
+ attr_accessor :start_time
1430
+
1431
+ # TimeoutFields allows granular specification of pipeline, task, and finally
1432
+ # timeouts
1433
+ # Corresponds to the JSON property `timeouts`
1434
+ # @return [Google::Apis::CloudbuildV2::TimeoutFields]
1435
+ attr_accessor :timeouts
1436
+
1437
+ # Output only. A unique identifier for the `PipelineRun`.
1438
+ # Corresponds to the JSON property `uid`
1439
+ # @return [String]
1440
+ attr_accessor :uid
1441
+
1442
+ # Output only. Time at which the request to update the `PipelineRun` was
1443
+ # received.
1444
+ # Corresponds to the JSON property `updateTime`
1445
+ # @return [String]
1446
+ attr_accessor :update_time
1447
+
1448
+ # Output only. The WorkerPool used to run this PipelineRun.
1449
+ # Corresponds to the JSON property `workerPool`
1450
+ # @return [String]
1451
+ attr_accessor :worker_pool
1452
+
1453
+ # Output only. The Workflow used to create this PipelineRun.
1454
+ # Corresponds to the JSON property `workflow`
1455
+ # @return [String]
1456
+ attr_accessor :workflow
1457
+
1458
+ # Workspaces is a list of WorkspaceBindings from volumes to workspaces.
1459
+ # Corresponds to the JSON property `workspaces`
1460
+ # @return [Array<Google::Apis::CloudbuildV2::WorkspaceBinding>]
1461
+ attr_accessor :workspaces
1462
+
1463
+ def initialize(**args)
1464
+ update!(**args)
1465
+ end
1466
+
1467
+ # Update properties of this object
1468
+ def update!(**args)
1469
+ @annotations = args[:annotations] if args.key?(:annotations)
1470
+ @child_references = args[:child_references] if args.key?(:child_references)
1471
+ @completion_time = args[:completion_time] if args.key?(:completion_time)
1472
+ @conditions = args[:conditions] if args.key?(:conditions)
1473
+ @create_time = args[:create_time] if args.key?(:create_time)
1474
+ @etag = args[:etag] if args.key?(:etag)
1475
+ @name = args[:name] if args.key?(:name)
1476
+ @params = args[:params] if args.key?(:params)
1477
+ @pipeline_ref = args[:pipeline_ref] if args.key?(:pipeline_ref)
1478
+ @pipeline_run_status = args[:pipeline_run_status] if args.key?(:pipeline_run_status)
1479
+ @pipeline_spec = args[:pipeline_spec] if args.key?(:pipeline_spec)
1480
+ @resolved_pipeline_spec = args[:resolved_pipeline_spec] if args.key?(:resolved_pipeline_spec)
1481
+ @service_account = args[:service_account] if args.key?(:service_account)
1482
+ @skipped_tasks = args[:skipped_tasks] if args.key?(:skipped_tasks)
1483
+ @start_time = args[:start_time] if args.key?(:start_time)
1484
+ @timeouts = args[:timeouts] if args.key?(:timeouts)
1485
+ @uid = args[:uid] if args.key?(:uid)
1486
+ @update_time = args[:update_time] if args.key?(:update_time)
1487
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
1488
+ @workflow = args[:workflow] if args.key?(:workflow)
1489
+ @workspaces = args[:workspaces] if args.key?(:workspaces)
1490
+ end
1491
+ end
1492
+
1493
+ # PipelineSpec defines the desired state of Pipeline.
1494
+ class PipelineSpec
1495
+ include Google::Apis::Core::Hashable
1496
+
1497
+ # List of Tasks that execute just before leaving the Pipeline i.e. either after
1498
+ # all Tasks are finished executing successfully or after a failure which would
1499
+ # result in ending the Pipeline.
1500
+ # Corresponds to the JSON property `finallyTasks`
1501
+ # @return [Array<Google::Apis::CloudbuildV2::PipelineTask>]
1502
+ attr_accessor :finally_tasks
1503
+
1504
+ # List of parameters.
1505
+ # Corresponds to the JSON property `params`
1506
+ # @return [Array<Google::Apis::CloudbuildV2::ParamSpec>]
1507
+ attr_accessor :params
1508
+
1509
+ # List of Tasks that execute when this Pipeline is run.
1510
+ # Corresponds to the JSON property `tasks`
1511
+ # @return [Array<Google::Apis::CloudbuildV2::PipelineTask>]
1512
+ attr_accessor :tasks
1513
+
1514
+ # Workspaces declares a set of named workspaces that are expected to be provided
1515
+ # by a PipelineRun.
1516
+ # Corresponds to the JSON property `workspaces`
1517
+ # @return [Array<Google::Apis::CloudbuildV2::PipelineWorkspaceDeclaration>]
1518
+ attr_accessor :workspaces
1519
+
1520
+ def initialize(**args)
1521
+ update!(**args)
1522
+ end
1523
+
1524
+ # Update properties of this object
1525
+ def update!(**args)
1526
+ @finally_tasks = args[:finally_tasks] if args.key?(:finally_tasks)
1527
+ @params = args[:params] if args.key?(:params)
1528
+ @tasks = args[:tasks] if args.key?(:tasks)
1529
+ @workspaces = args[:workspaces] if args.key?(:workspaces)
1530
+ end
1531
+ end
1532
+
1533
+ # PipelineTask defines a task in a Pipeline.
1534
+ class PipelineTask
1535
+ include Google::Apis::Core::Hashable
1536
+
1537
+ # Name of the task.
1538
+ # Corresponds to the JSON property `name`
1539
+ # @return [String]
1540
+ attr_accessor :name
1541
+
1542
+ # Params is a list of parameter names and values.
1543
+ # Corresponds to the JSON property `params`
1544
+ # @return [Array<Google::Apis::CloudbuildV2::Param>]
1545
+ attr_accessor :params
1546
+
1547
+ # Retries represents how many times this task should be retried in case of task
1548
+ # failure.
1549
+ # Corresponds to the JSON property `retries`
1550
+ # @return [Fixnum]
1551
+ attr_accessor :retries
1552
+
1553
+ # RunAfter is the list of PipelineTask names that should be executed before this
1554
+ # Task executes. (Used to force a specific ordering in graph execution.)
1555
+ # Corresponds to the JSON property `runAfter`
1556
+ # @return [Array<String>]
1557
+ attr_accessor :run_after
1558
+
1559
+ # TaskRef can be used to refer to a specific instance of a task. PipelineRef can
1560
+ # be used to refer to a specific instance of a Pipeline.
1561
+ # Corresponds to the JSON property `taskRef`
1562
+ # @return [Google::Apis::CloudbuildV2::TaskRef]
1563
+ attr_accessor :task_ref
1564
+
1565
+ # EmbeddedTask defines a Task that is embedded in a Pipeline.
1566
+ # Corresponds to the JSON property `taskSpec`
1567
+ # @return [Google::Apis::CloudbuildV2::EmbeddedTask]
1568
+ attr_accessor :task_spec
1569
+
1570
+ # Time after which the TaskRun times out. Defaults to 1 hour. Specified TaskRun
1571
+ # timeout should be less than 24h.
1572
+ # Corresponds to the JSON property `timeout`
1573
+ # @return [String]
1574
+ attr_accessor :timeout
1575
+
1576
+ # Conditions that need to be true for the task to run.
1577
+ # Corresponds to the JSON property `whenExpressions`
1578
+ # @return [Array<Google::Apis::CloudbuildV2::WhenExpression>]
1579
+ attr_accessor :when_expressions
1580
+
1581
+ # Workspaces maps workspaces from the pipeline spec to the workspaces declared
1582
+ # in the Task.
1583
+ # Corresponds to the JSON property `workspaces`
1584
+ # @return [Array<Google::Apis::CloudbuildV2::WorkspacePipelineTaskBinding>]
1585
+ attr_accessor :workspaces
1586
+
1587
+ def initialize(**args)
1588
+ update!(**args)
1589
+ end
1590
+
1591
+ # Update properties of this object
1592
+ def update!(**args)
1593
+ @name = args[:name] if args.key?(:name)
1594
+ @params = args[:params] if args.key?(:params)
1595
+ @retries = args[:retries] if args.key?(:retries)
1596
+ @run_after = args[:run_after] if args.key?(:run_after)
1597
+ @task_ref = args[:task_ref] if args.key?(:task_ref)
1598
+ @task_spec = args[:task_spec] if args.key?(:task_spec)
1599
+ @timeout = args[:timeout] if args.key?(:timeout)
1600
+ @when_expressions = args[:when_expressions] if args.key?(:when_expressions)
1601
+ @workspaces = args[:workspaces] if args.key?(:workspaces)
1602
+ end
1603
+ end
1604
+
1605
+ # Workspaces declares a set of named workspaces that are expected to be provided
1606
+ # by a PipelineRun.
1607
+ class PipelineWorkspaceDeclaration
1608
+ include Google::Apis::Core::Hashable
1609
+
1610
+ # Description is a human readable string describing how the workspace will be
1611
+ # used in the Pipeline.
1612
+ # Corresponds to the JSON property `description`
1613
+ # @return [String]
1614
+ attr_accessor :description
1615
+
1616
+ # Name is the name of a workspace to be provided by a PipelineRun.
1617
+ # Corresponds to the JSON property `name`
1618
+ # @return [String]
1619
+ attr_accessor :name
1620
+
1621
+ # Optional marks a Workspace as not being required in PipelineRuns. By default
1622
+ # this field is false and so declared workspaces are required.
1623
+ # Corresponds to the JSON property `optional`
1624
+ # @return [Boolean]
1625
+ attr_accessor :optional
1626
+ alias_method :optional?, :optional
1627
+
1628
+ def initialize(**args)
1629
+ update!(**args)
1630
+ end
1631
+
1632
+ # Update properties of this object
1633
+ def update!(**args)
1634
+ @description = args[:description] if args.key?(:description)
1635
+ @name = args[:name] if args.key?(:name)
1636
+ @optional = args[:optional] if args.key?(:optional)
1637
+ end
1638
+ end
1639
+
1640
+ # An Identity and Access Management (IAM) policy, which specifies access
1641
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1642
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1643
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1644
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1645
+ # an IAM predefined role or a user-created custom role. For some types of Google
1646
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1647
+ # logical expression that allows access to a resource only if the expression
1648
+ # evaluates to `true`. A condition can add constraints based on attributes of
1649
+ # the request, the resource, or both. To learn which resources support
1650
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1651
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1652
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1653
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1654
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1655
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1656
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1657
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1658
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1659
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1660
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1661
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1662
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1663
+ # title: expirable access description: Does not grant access after Sep 2020
1664
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1665
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1666
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1667
+ class Policy
1668
+ include Google::Apis::Core::Hashable
1669
+
1670
+ # Specifies cloud audit logging configuration for this policy.
1671
+ # Corresponds to the JSON property `auditConfigs`
1672
+ # @return [Array<Google::Apis::CloudbuildV2::AuditConfig>]
1673
+ attr_accessor :audit_configs
1674
+
1675
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1676
+ # specify a `condition` that determines how and when the `bindings` are applied.
1677
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1678
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1679
+ # can be Google groups. Each occurrence of a principal counts towards these
1680
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1681
+ # example.com`, and not to any other principal, then you can add another 1,450
1682
+ # principals to the `bindings` in the `Policy`.
1683
+ # Corresponds to the JSON property `bindings`
1684
+ # @return [Array<Google::Apis::CloudbuildV2::Binding>]
1685
+ attr_accessor :bindings
1686
+
1687
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1688
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1689
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1690
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1691
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1692
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1693
+ # applied to the same version of the policy. **Important:** If you use IAM
1694
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1695
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1696
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1697
+ # are lost.
1698
+ # Corresponds to the JSON property `etag`
1699
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1700
+ # @return [String]
1701
+ attr_accessor :etag
1702
+
1703
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1704
+ # Requests that specify an invalid value are rejected. Any operation that
1705
+ # affects conditional role bindings must specify version `3`. This requirement
1706
+ # applies to the following operations: * Getting a policy that includes a
1707
+ # conditional role binding * Adding a conditional role binding to a policy *
1708
+ # Changing a conditional role binding in a policy * Removing any role binding,
1709
+ # with or without a condition, from a policy that includes conditions **
1710
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1711
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1712
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1713
+ # conditions in the version `3` policy are lost. If a policy does not include
1714
+ # any conditions, operations on that policy may specify any valid version or
1715
+ # leave the field unset. To learn which resources support conditions in their
1716
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1717
+ # conditions/resource-policies).
1718
+ # Corresponds to the JSON property `version`
1719
+ # @return [Fixnum]
1720
+ attr_accessor :version
1721
+
1722
+ def initialize(**args)
1723
+ update!(**args)
1724
+ end
1725
+
1726
+ # Update properties of this object
1727
+ def update!(**args)
1728
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1729
+ @bindings = args[:bindings] if args.key?(:bindings)
1730
+ @etag = args[:etag] if args.key?(:etag)
1731
+ @version = args[:version] if args.key?(:version)
1732
+ end
1733
+ end
1734
+
1735
+ # PropertySpec holds information about a property in an object.
1736
+ class PropertySpec
1737
+ include Google::Apis::Core::Hashable
1738
+
1739
+ # A type for the object.
1740
+ # Corresponds to the JSON property `type`
1741
+ # @return [String]
1742
+ attr_accessor :type
1743
+
1744
+ def initialize(**args)
1745
+ update!(**args)
1746
+ end
1747
+
1748
+ # Update properties of this object
1749
+ def update!(**args)
1750
+ @type = args[:type] if args.key?(:type)
1751
+ end
1752
+ end
1753
+
1754
+ # A repository associated to a parent connection.
1755
+ class Repository
1756
+ include Google::Apis::Core::Hashable
1757
+
1758
+ # Allows clients to store small amounts of arbitrary data.
1759
+ # Corresponds to the JSON property `annotations`
1760
+ # @return [Hash<String,String>]
1761
+ attr_accessor :annotations
1762
+
1763
+ # Output only. Server assigned timestamp for when the connection was created.
1764
+ # Corresponds to the JSON property `createTime`
1765
+ # @return [String]
1766
+ attr_accessor :create_time
1767
+
1768
+ # This checksum is computed by the server based on the value of other fields,
1769
+ # and may be sent on update and delete requests to ensure the client has an up-
1770
+ # to-date value before proceeding.
1771
+ # Corresponds to the JSON property `etag`
1772
+ # @return [String]
1773
+ attr_accessor :etag
1774
+
1775
+ # Immutable. Resource name of the repository, in the format `projects/*/
1776
+ # locations/*/connections/*/repositories/*`.
1777
+ # Corresponds to the JSON property `name`
1778
+ # @return [String]
1779
+ attr_accessor :name
1780
+
1781
+ # Required. Git Clone HTTPS URI.
1782
+ # Corresponds to the JSON property `remoteUri`
1783
+ # @return [String]
1784
+ attr_accessor :remote_uri
1785
+
1786
+ # Output only. Server assigned timestamp for when the connection was updated.
1787
+ # Corresponds to the JSON property `updateTime`
1788
+ # @return [String]
1789
+ attr_accessor :update_time
1790
+
1791
+ # Output only. External ID of the webhook created for the repository.
1792
+ # Corresponds to the JSON property `webhookId`
1793
+ # @return [String]
1794
+ attr_accessor :webhook_id
1795
+
1796
+ def initialize(**args)
1797
+ update!(**args)
1798
+ end
1799
+
1800
+ # Update properties of this object
1801
+ def update!(**args)
1802
+ @annotations = args[:annotations] if args.key?(:annotations)
1803
+ @create_time = args[:create_time] if args.key?(:create_time)
1804
+ @etag = args[:etag] if args.key?(:etag)
1805
+ @name = args[:name] if args.key?(:name)
1806
+ @remote_uri = args[:remote_uri] if args.key?(:remote_uri)
1807
+ @update_time = args[:update_time] if args.key?(:update_time)
1808
+ @webhook_id = args[:webhook_id] if args.key?(:webhook_id)
1809
+ end
1810
+ end
1811
+
1812
+ # Represents the custom metadata of the RunWorkflow long-running operation.
1813
+ class RunWorkflowCustomOperationMetadata
1814
+ include Google::Apis::Core::Hashable
1815
+
1816
+ # Output only. API version used to start the operation.
1817
+ # Corresponds to the JSON property `apiVersion`
1818
+ # @return [String]
1819
+ attr_accessor :api_version
1820
+
1821
+ # Output only. The time the operation was created.
1822
+ # Corresponds to the JSON property `createTime`
1823
+ # @return [String]
1824
+ attr_accessor :create_time
1825
+
1826
+ # Output only. The time the operation finished running.
1827
+ # Corresponds to the JSON property `endTime`
1828
+ # @return [String]
1829
+ attr_accessor :end_time
1830
+
1831
+ # Output only. ID of the pipeline run created by RunWorkflow.
1832
+ # Corresponds to the JSON property `pipelineRunId`
1833
+ # @return [String]
1834
+ attr_accessor :pipeline_run_id
1835
+
1836
+ # Output only. Identifies whether the user has requested cancellation of the
1837
+ # operation. Operations that have successfully been cancelled have Operation.
1838
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1839
+ # CANCELLED`.
1840
+ # Corresponds to the JSON property `requestedCancellation`
1841
+ # @return [Boolean]
1842
+ attr_accessor :requested_cancellation
1843
+ alias_method :requested_cancellation?, :requested_cancellation
1844
+
1845
+ # Output only. Server-defined resource path for the target of the operation.
1846
+ # Corresponds to the JSON property `target`
1847
+ # @return [String]
1848
+ attr_accessor :target
1849
+
1850
+ # Output only. Name of the verb executed by the operation.
1851
+ # Corresponds to the JSON property `verb`
1852
+ # @return [String]
1853
+ attr_accessor :verb
1854
+
1855
+ def initialize(**args)
1856
+ update!(**args)
1857
+ end
1858
+
1859
+ # Update properties of this object
1860
+ def update!(**args)
1861
+ @api_version = args[:api_version] if args.key?(:api_version)
1862
+ @create_time = args[:create_time] if args.key?(:create_time)
1863
+ @end_time = args[:end_time] if args.key?(:end_time)
1864
+ @pipeline_run_id = args[:pipeline_run_id] if args.key?(:pipeline_run_id)
1865
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1866
+ @target = args[:target] if args.key?(:target)
1867
+ @verb = args[:verb] if args.key?(:verb)
1868
+ end
1869
+ end
1870
+
1871
+ # Secret Volume Source.
1872
+ class SecretVolumeSource
1873
+ include Google::Apis::Core::Hashable
1874
+
1875
+ # Name of the secret referenced by the WorkspaceBinding.
1876
+ # Corresponds to the JSON property `secretName`
1877
+ # @return [String]
1878
+ attr_accessor :secret_name
1879
+
1880
+ # Output only. Resource name of the SecretVersion. In format: projects/*/secrets/
1881
+ # */versions/*
1882
+ # Corresponds to the JSON property `secretVersion`
1883
+ # @return [String]
1884
+ attr_accessor :secret_version
1885
+
1886
+ def initialize(**args)
1887
+ update!(**args)
1888
+ end
1889
+
1890
+ # Update properties of this object
1891
+ def update!(**args)
1892
+ @secret_name = args[:secret_name] if args.key?(:secret_name)
1893
+ @secret_version = args[:secret_version] if args.key?(:secret_version)
1894
+ end
1895
+ end
1896
+
1897
+ # Security options the container should be run with.
1898
+ class SecurityContext
1899
+ include Google::Apis::Core::Hashable
1900
+
1901
+ # Run container in privileged mode.
1902
+ # Corresponds to the JSON property `privileged`
1903
+ # @return [Boolean]
1904
+ attr_accessor :privileged
1905
+ alias_method :privileged?, :privileged
1906
+
1907
+ def initialize(**args)
1908
+ update!(**args)
1909
+ end
1910
+
1911
+ # Update properties of this object
1912
+ def update!(**args)
1913
+ @privileged = args[:privileged] if args.key?(:privileged)
1914
+ end
1915
+ end
1916
+
1917
+ # Request message for `SetIamPolicy` method.
1918
+ class SetIamPolicyRequest
1919
+ include Google::Apis::Core::Hashable
1920
+
1921
+ # An Identity and Access Management (IAM) policy, which specifies access
1922
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1923
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1924
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1925
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1926
+ # an IAM predefined role or a user-created custom role. For some types of Google
1927
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1928
+ # logical expression that allows access to a resource only if the expression
1929
+ # evaluates to `true`. A condition can add constraints based on attributes of
1930
+ # the request, the resource, or both. To learn which resources support
1931
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1932
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1933
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1934
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1935
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1936
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1937
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1938
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1939
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1940
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1941
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1942
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1943
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1944
+ # title: expirable access description: Does not grant access after Sep 2020
1945
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1946
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1947
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1948
+ # Corresponds to the JSON property `policy`
1949
+ # @return [Google::Apis::CloudbuildV2::Policy]
1950
+ attr_accessor :policy
1951
+
1952
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1953
+ # the fields in the mask will be modified. If no mask is provided, the following
1954
+ # default mask is used: `paths: "bindings, etag"`
1955
+ # Corresponds to the JSON property `updateMask`
1956
+ # @return [String]
1957
+ attr_accessor :update_mask
1958
+
1959
+ def initialize(**args)
1960
+ update!(**args)
1961
+ end
1962
+
1963
+ # Update properties of this object
1964
+ def update!(**args)
1965
+ @policy = args[:policy] if args.key?(:policy)
1966
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1967
+ end
1968
+ end
1969
+
1970
+ # Sidecars run alongside the Task's step containers.
1971
+ class Sidecar
1972
+ include Google::Apis::Core::Hashable
1973
+
1974
+ # Arguments to the entrypoint.
1975
+ # Corresponds to the JSON property `args`
1976
+ # @return [Array<String>]
1977
+ attr_accessor :args
1978
+
1979
+ # Entrypoint array.
1980
+ # Corresponds to the JSON property `command`
1981
+ # @return [Array<String>]
1982
+ attr_accessor :command
1983
+
1984
+ # List of environment variables to set in the container.
1985
+ # Corresponds to the JSON property `env`
1986
+ # @return [Array<Google::Apis::CloudbuildV2::EnvVar>]
1987
+ attr_accessor :env
1988
+
1989
+ # Docker image name.
1990
+ # Corresponds to the JSON property `image`
1991
+ # @return [String]
1992
+ attr_accessor :image
1993
+
1994
+ # Name of the Sidecar.
1995
+ # Corresponds to the JSON property `name`
1996
+ # @return [String]
1997
+ attr_accessor :name
1998
+
1999
+ # The contents of an executable file to execute.
2000
+ # Corresponds to the JSON property `script`
2001
+ # @return [String]
2002
+ attr_accessor :script
2003
+
2004
+ # Security options the container should be run with.
2005
+ # Corresponds to the JSON property `securityContext`
2006
+ # @return [Google::Apis::CloudbuildV2::SecurityContext]
2007
+ attr_accessor :security_context
2008
+
2009
+ # Pod volumes to mount into the container's filesystem.
2010
+ # Corresponds to the JSON property `volumeMounts`
2011
+ # @return [Array<Google::Apis::CloudbuildV2::VolumeMount>]
2012
+ attr_accessor :volume_mounts
2013
+
2014
+ # Container's working directory.
2015
+ # Corresponds to the JSON property `workingDir`
2016
+ # @return [String]
2017
+ attr_accessor :working_dir
2018
+
2019
+ def initialize(**args)
2020
+ update!(**args)
2021
+ end
2022
+
2023
+ # Update properties of this object
2024
+ def update!(**args)
2025
+ @args = args[:args] if args.key?(:args)
2026
+ @command = args[:command] if args.key?(:command)
2027
+ @env = args[:env] if args.key?(:env)
2028
+ @image = args[:image] if args.key?(:image)
2029
+ @name = args[:name] if args.key?(:name)
2030
+ @script = args[:script] if args.key?(:script)
2031
+ @security_context = args[:security_context] if args.key?(:security_context)
2032
+ @volume_mounts = args[:volume_mounts] if args.key?(:volume_mounts)
2033
+ @working_dir = args[:working_dir] if args.key?(:working_dir)
2034
+ end
2035
+ end
2036
+
2037
+ # SkippedTask is used to describe the Tasks that were skipped due to their When
2038
+ # Expressions evaluating to False.
2039
+ class SkippedTask
2040
+ include Google::Apis::Core::Hashable
2041
+
2042
+ # Name is the Pipeline Task name
2043
+ # Corresponds to the JSON property `name`
2044
+ # @return [String]
2045
+ attr_accessor :name
2046
+
2047
+ # Output only. Reason is the cause of the PipelineTask being skipped.
2048
+ # Corresponds to the JSON property `reason`
2049
+ # @return [String]
2050
+ attr_accessor :reason
2051
+
2052
+ # WhenExpressions is the list of checks guarding the execution of the
2053
+ # PipelineTask
2054
+ # Corresponds to the JSON property `whenExpressions`
2055
+ # @return [Array<Google::Apis::CloudbuildV2::WhenExpression>]
2056
+ attr_accessor :when_expressions
2057
+
2058
+ def initialize(**args)
2059
+ update!(**args)
2060
+ end
2061
+
2062
+ # Update properties of this object
2063
+ def update!(**args)
2064
+ @name = args[:name] if args.key?(:name)
2065
+ @reason = args[:reason] if args.key?(:reason)
2066
+ @when_expressions = args[:when_expressions] if args.key?(:when_expressions)
2067
+ end
2068
+ end
2069
+
2070
+ # The `Status` type defines a logical error model that is suitable for different
2071
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2072
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2073
+ # data: error code, error message, and error details. You can find out more
2074
+ # about this error model and how to work with it in the [API Design Guide](https:
2075
+ # //cloud.google.com/apis/design/errors).
2076
+ class Status
2077
+ include Google::Apis::Core::Hashable
2078
+
2079
+ # The status code, which should be an enum value of google.rpc.Code.
2080
+ # Corresponds to the JSON property `code`
2081
+ # @return [Fixnum]
2082
+ attr_accessor :code
2083
+
2084
+ # A list of messages that carry the error details. There is a common set of
2085
+ # message types for APIs to use.
2086
+ # Corresponds to the JSON property `details`
2087
+ # @return [Array<Hash<String,Object>>]
2088
+ attr_accessor :details
2089
+
2090
+ # A developer-facing error message, which should be in English. Any user-facing
2091
+ # error message should be localized and sent in the google.rpc.Status.details
2092
+ # field, or localized by the client.
2093
+ # Corresponds to the JSON property `message`
2094
+ # @return [String]
2095
+ attr_accessor :message
2096
+
2097
+ def initialize(**args)
2098
+ update!(**args)
2099
+ end
2100
+
2101
+ # Update properties of this object
2102
+ def update!(**args)
2103
+ @code = args[:code] if args.key?(:code)
2104
+ @details = args[:details] if args.key?(:details)
2105
+ @message = args[:message] if args.key?(:message)
2106
+ end
2107
+ end
2108
+
2109
+ # Step embeds the Container type, which allows it to include fields not provided
2110
+ # by Container.
2111
+ class Step
2112
+ include Google::Apis::Core::Hashable
2113
+
2114
+ # Arguments to the entrypoint.
2115
+ # Corresponds to the JSON property `args`
2116
+ # @return [Array<String>]
2117
+ attr_accessor :args
2118
+
2119
+ # Entrypoint array.
2120
+ # Corresponds to the JSON property `command`
2121
+ # @return [Array<String>]
2122
+ attr_accessor :command
2123
+
2124
+ # List of environment variables to set in the container.
2125
+ # Corresponds to the JSON property `env`
2126
+ # @return [Array<Google::Apis::CloudbuildV2::EnvVar>]
2127
+ attr_accessor :env
2128
+
2129
+ # Docker image name.
2130
+ # Corresponds to the JSON property `image`
2131
+ # @return [String]
2132
+ attr_accessor :image
2133
+
2134
+ # Name of the container specified as a DNS_LABEL.
2135
+ # Corresponds to the JSON property `name`
2136
+ # @return [String]
2137
+ attr_accessor :name
2138
+
2139
+ # The contents of an executable file to execute.
2140
+ # Corresponds to the JSON property `script`
2141
+ # @return [String]
2142
+ attr_accessor :script
2143
+
2144
+ # Time after which the Step times out. Defaults to never.
2145
+ # Corresponds to the JSON property `timeout`
2146
+ # @return [String]
2147
+ attr_accessor :timeout
2148
+
2149
+ # Pod volumes to mount into the container's filesystem.
2150
+ # Corresponds to the JSON property `volumeMounts`
2151
+ # @return [Array<Google::Apis::CloudbuildV2::VolumeMount>]
2152
+ attr_accessor :volume_mounts
2153
+
2154
+ # Container's working directory.
2155
+ # Corresponds to the JSON property `workingDir`
2156
+ # @return [String]
2157
+ attr_accessor :working_dir
2158
+
2159
+ def initialize(**args)
2160
+ update!(**args)
2161
+ end
2162
+
2163
+ # Update properties of this object
2164
+ def update!(**args)
2165
+ @args = args[:args] if args.key?(:args)
2166
+ @command = args[:command] if args.key?(:command)
2167
+ @env = args[:env] if args.key?(:env)
2168
+ @image = args[:image] if args.key?(:image)
2169
+ @name = args[:name] if args.key?(:name)
2170
+ @script = args[:script] if args.key?(:script)
2171
+ @timeout = args[:timeout] if args.key?(:timeout)
2172
+ @volume_mounts = args[:volume_mounts] if args.key?(:volume_mounts)
2173
+ @working_dir = args[:working_dir] if args.key?(:working_dir)
2174
+ end
2175
+ end
2176
+
2177
+ # TaskRef can be used to refer to a specific instance of a task. PipelineRef can
2178
+ # be used to refer to a specific instance of a Pipeline.
2179
+ class TaskRef
2180
+ include Google::Apis::Core::Hashable
2181
+
2182
+ # Optional. The CustomTask definition to use.
2183
+ # Corresponds to the JSON property `customTask`
2184
+ # @return [String]
2185
+ attr_accessor :custom_task
2186
+
2187
+ # Name of the task.
2188
+ # Corresponds to the JSON property `name`
2189
+ # @return [String]
2190
+ attr_accessor :name
2191
+
2192
+ # Params contains the parameters used to identify the referenced Tekton resource.
2193
+ # Example entries might include "repo" or "path" but the set of params
2194
+ # ultimately depends on the chosen resolver.
2195
+ # Corresponds to the JSON property `params`
2196
+ # @return [Array<Google::Apis::CloudbuildV2::Param>]
2197
+ attr_accessor :params
2198
+
2199
+ # Resolver is the name of the resolver that should perform resolution of the
2200
+ # referenced Tekton resource.
2201
+ # Corresponds to the JSON property `resolver`
2202
+ # @return [String]
2203
+ attr_accessor :resolver
2204
+
2205
+ def initialize(**args)
2206
+ update!(**args)
2207
+ end
2208
+
2209
+ # Update properties of this object
2210
+ def update!(**args)
2211
+ @custom_task = args[:custom_task] if args.key?(:custom_task)
2212
+ @name = args[:name] if args.key?(:name)
2213
+ @params = args[:params] if args.key?(:params)
2214
+ @resolver = args[:resolver] if args.key?(:resolver)
2215
+ end
2216
+ end
2217
+
2218
+ # TaskResult is used to describe the results of a task.
2219
+ class TaskResult
2220
+ include Google::Apis::Core::Hashable
2221
+
2222
+ # Description of the result.
2223
+ # Corresponds to the JSON property `description`
2224
+ # @return [String]
2225
+ attr_accessor :description
2226
+
2227
+ # Name of the result.
2228
+ # Corresponds to the JSON property `name`
2229
+ # @return [String]
2230
+ attr_accessor :name
2231
+
2232
+ # When type is OBJECT, this map holds the names of fields inside that object
2233
+ # along with the type of data each field holds.
2234
+ # Corresponds to the JSON property `properties`
2235
+ # @return [Hash<String,Google::Apis::CloudbuildV2::PropertySpec>]
2236
+ attr_accessor :properties
2237
+
2238
+ # The type of data that the result holds.
2239
+ # Corresponds to the JSON property `type`
2240
+ # @return [String]
2241
+ attr_accessor :type
2242
+
2243
+ def initialize(**args)
2244
+ update!(**args)
2245
+ end
2246
+
2247
+ # Update properties of this object
2248
+ def update!(**args)
2249
+ @description = args[:description] if args.key?(:description)
2250
+ @name = args[:name] if args.key?(:name)
2251
+ @properties = args[:properties] if args.key?(:properties)
2252
+ @type = args[:type] if args.key?(:type)
2253
+ end
2254
+ end
2255
+
2256
+ # TaskSpec contains the Spec to instantiate a TaskRun.
2257
+ class TaskSpec
2258
+ include Google::Apis::Core::Hashable
2259
+
2260
+ # Description of the task.
2261
+ # Corresponds to the JSON property `description`
2262
+ # @return [String]
2263
+ attr_accessor :description
2264
+
2265
+ # Sidecars that run alongside the Task’s step containers that should be added to
2266
+ # this Task.
2267
+ # Corresponds to the JSON property `managedSidecars`
2268
+ # @return [Array<String>]
2269
+ attr_accessor :managed_sidecars
2270
+
2271
+ # List of parameters.
2272
+ # Corresponds to the JSON property `params`
2273
+ # @return [Array<Google::Apis::CloudbuildV2::ParamSpec>]
2274
+ attr_accessor :params
2275
+
2276
+ # Values that this Task can output.
2277
+ # Corresponds to the JSON property `results`
2278
+ # @return [Array<Google::Apis::CloudbuildV2::TaskResult>]
2279
+ attr_accessor :results
2280
+
2281
+ # Sidecars that run alongside the Task's step containers.
2282
+ # Corresponds to the JSON property `sidecars`
2283
+ # @return [Array<Google::Apis::CloudbuildV2::Sidecar>]
2284
+ attr_accessor :sidecars
2285
+
2286
+ # Steps of the task.
2287
+ # Corresponds to the JSON property `steps`
2288
+ # @return [Array<Google::Apis::CloudbuildV2::Step>]
2289
+ attr_accessor :steps
2290
+
2291
+ # A collection of volumes that are available to mount into steps.
2292
+ # Corresponds to the JSON property `volumes`
2293
+ # @return [Array<Google::Apis::CloudbuildV2::VolumeSource>]
2294
+ attr_accessor :volumes
2295
+
2296
+ # The volumes that this Task requires.
2297
+ # Corresponds to the JSON property `workspaces`
2298
+ # @return [Array<Google::Apis::CloudbuildV2::WorkspaceDeclaration>]
2299
+ attr_accessor :workspaces
2300
+
2301
+ def initialize(**args)
2302
+ update!(**args)
2303
+ end
2304
+
2305
+ # Update properties of this object
2306
+ def update!(**args)
2307
+ @description = args[:description] if args.key?(:description)
2308
+ @managed_sidecars = args[:managed_sidecars] if args.key?(:managed_sidecars)
2309
+ @params = args[:params] if args.key?(:params)
2310
+ @results = args[:results] if args.key?(:results)
2311
+ @sidecars = args[:sidecars] if args.key?(:sidecars)
2312
+ @steps = args[:steps] if args.key?(:steps)
2313
+ @volumes = args[:volumes] if args.key?(:volumes)
2314
+ @workspaces = args[:workspaces] if args.key?(:workspaces)
2315
+ end
2316
+ end
2317
+
2318
+ # Request message for `TestIamPermissions` method.
2319
+ class TestIamPermissionsRequest
2320
+ include Google::Apis::Core::Hashable
2321
+
2322
+ # The set of permissions to check for the `resource`. Permissions with wildcards
2323
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
2324
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
2325
+ # Corresponds to the JSON property `permissions`
2326
+ # @return [Array<String>]
2327
+ attr_accessor :permissions
2328
+
2329
+ def initialize(**args)
2330
+ update!(**args)
2331
+ end
2332
+
2333
+ # Update properties of this object
2334
+ def update!(**args)
2335
+ @permissions = args[:permissions] if args.key?(:permissions)
2336
+ end
2337
+ end
2338
+
2339
+ # Response message for `TestIamPermissions` method.
2340
+ class TestIamPermissionsResponse
2341
+ include Google::Apis::Core::Hashable
2342
+
2343
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2344
+ # Corresponds to the JSON property `permissions`
2345
+ # @return [Array<String>]
2346
+ attr_accessor :permissions
2347
+
2348
+ def initialize(**args)
2349
+ update!(**args)
2350
+ end
2351
+
2352
+ # Update properties of this object
2353
+ def update!(**args)
2354
+ @permissions = args[:permissions] if args.key?(:permissions)
2355
+ end
2356
+ end
2357
+
2358
+ # TimeoutFields allows granular specification of pipeline, task, and finally
2359
+ # timeouts
2360
+ class TimeoutFields
2361
+ include Google::Apis::Core::Hashable
2362
+
2363
+ # Finally sets the maximum allowed duration of this pipeline's finally
2364
+ # Corresponds to the JSON property `finally`
2365
+ # @return [String]
2366
+ attr_accessor :finally
2367
+
2368
+ # Pipeline sets the maximum allowed duration for execution of the entire
2369
+ # pipeline. The sum of individual timeouts for tasks and finally must not exceed
2370
+ # this value.
2371
+ # Corresponds to the JSON property `pipeline`
2372
+ # @return [String]
2373
+ attr_accessor :pipeline
2374
+
2375
+ # Tasks sets the maximum allowed duration of this pipeline's tasks
2376
+ # Corresponds to the JSON property `tasks`
2377
+ # @return [String]
2378
+ attr_accessor :tasks
2379
+
2380
+ def initialize(**args)
2381
+ update!(**args)
2382
+ end
2383
+
2384
+ # Update properties of this object
2385
+ def update!(**args)
2386
+ @finally = args[:finally] if args.key?(:finally)
2387
+ @pipeline = args[:pipeline] if args.key?(:pipeline)
2388
+ @tasks = args[:tasks] if args.key?(:tasks)
2389
+ end
2390
+ end
2391
+
2392
+ # Represents a personal access token that authorized the Connection, and
2393
+ # associated metadata.
2394
+ class UserCredential
2395
+ include Google::Apis::Core::Hashable
2396
+
2397
+ # Required. A SecretManager resource containing the user token that authorizes
2398
+ # the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.
2399
+ # Corresponds to the JSON property `userTokenSecretVersion`
2400
+ # @return [String]
2401
+ attr_accessor :user_token_secret_version
2402
+
2403
+ # Output only. The username associated to this token.
2404
+ # Corresponds to the JSON property `username`
2405
+ # @return [String]
2406
+ attr_accessor :username
2407
+
2408
+ def initialize(**args)
2409
+ update!(**args)
2410
+ end
2411
+
2412
+ # Update properties of this object
2413
+ def update!(**args)
2414
+ @user_token_secret_version = args[:user_token_secret_version] if args.key?(:user_token_secret_version)
2415
+ @username = args[:username] if args.key?(:username)
2416
+ end
2417
+ end
2418
+
2419
+ # VolumeClaim is a user's request for a volume.
2420
+ class VolumeClaim
2421
+ include Google::Apis::Core::Hashable
2422
+
2423
+ # Volume size, e.g. 1gb.
2424
+ # Corresponds to the JSON property `storage`
2425
+ # @return [String]
2426
+ attr_accessor :storage
2427
+
2428
+ def initialize(**args)
2429
+ update!(**args)
2430
+ end
2431
+
2432
+ # Update properties of this object
2433
+ def update!(**args)
2434
+ @storage = args[:storage] if args.key?(:storage)
2435
+ end
2436
+ end
2437
+
2438
+ # Pod volumes to mount into the container's filesystem.
2439
+ class VolumeMount
2440
+ include Google::Apis::Core::Hashable
2441
+
2442
+ # Path within the container at which the volume should be mounted. Must not
2443
+ # contain ':'.
2444
+ # Corresponds to the JSON property `mountPath`
2445
+ # @return [String]
2446
+ attr_accessor :mount_path
2447
+
2448
+ # Name of the volume.
2449
+ # Corresponds to the JSON property `name`
2450
+ # @return [String]
2451
+ attr_accessor :name
2452
+
2453
+ # Mounted read-only if true, read-write otherwise (false or unspecified).
2454
+ # Corresponds to the JSON property `readOnly`
2455
+ # @return [Boolean]
2456
+ attr_accessor :read_only
2457
+ alias_method :read_only?, :read_only
2458
+
2459
+ # Path within the volume from which the container's volume should be mounted.
2460
+ # Defaults to "" (volume's root).
2461
+ # Corresponds to the JSON property `subPath`
2462
+ # @return [String]
2463
+ attr_accessor :sub_path
2464
+
2465
+ # Expanded path within the volume from which the container's volume should be
2466
+ # mounted. Behaves similarly to SubPath but environment variable references $(
2467
+ # VAR_NAME) are expanded using the container's environment. Defaults to "" (
2468
+ # volume's root).
2469
+ # Corresponds to the JSON property `subPathExpr`
2470
+ # @return [String]
2471
+ attr_accessor :sub_path_expr
2472
+
2473
+ def initialize(**args)
2474
+ update!(**args)
2475
+ end
2476
+
2477
+ # Update properties of this object
2478
+ def update!(**args)
2479
+ @mount_path = args[:mount_path] if args.key?(:mount_path)
2480
+ @name = args[:name] if args.key?(:name)
2481
+ @read_only = args[:read_only] if args.key?(:read_only)
2482
+ @sub_path = args[:sub_path] if args.key?(:sub_path)
2483
+ @sub_path_expr = args[:sub_path_expr] if args.key?(:sub_path_expr)
2484
+ end
2485
+ end
2486
+
2487
+ # Volumes available to mount.
2488
+ class VolumeSource
2489
+ include Google::Apis::Core::Hashable
2490
+
2491
+ # Represents an empty Volume source.
2492
+ # Corresponds to the JSON property `emptyDir`
2493
+ # @return [Google::Apis::CloudbuildV2::EmptyDirVolumeSource]
2494
+ attr_accessor :empty_dir
2495
+
2496
+ # Name of the Volume. Must be a DNS_LABEL and unique within the pod. More info:
2497
+ # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2498
+ # Corresponds to the JSON property `name`
2499
+ # @return [String]
2500
+ attr_accessor :name
2501
+
2502
+ def initialize(**args)
2503
+ update!(**args)
2504
+ end
2505
+
2506
+ # Update properties of this object
2507
+ def update!(**args)
2508
+ @empty_dir = args[:empty_dir] if args.key?(:empty_dir)
2509
+ @name = args[:name] if args.key?(:name)
2510
+ end
2511
+ end
2512
+
2513
+ # Conditions that need to be true for the task to run.
2514
+ class WhenExpression
2515
+ include Google::Apis::Core::Hashable
2516
+
2517
+ # Operator that represents an Input's relationship to the values
2518
+ # Corresponds to the JSON property `expressionOperator`
2519
+ # @return [String]
2520
+ attr_accessor :expression_operator
2521
+
2522
+ # Input is the string for guard checking which can be a static input or an
2523
+ # output from a parent Task.
2524
+ # Corresponds to the JSON property `input`
2525
+ # @return [String]
2526
+ attr_accessor :input
2527
+
2528
+ # Values is an array of strings, which is compared against the input, for guard
2529
+ # checking.
2530
+ # Corresponds to the JSON property `values`
2531
+ # @return [Array<String>]
2532
+ attr_accessor :values
2533
+
2534
+ def initialize(**args)
2535
+ update!(**args)
2536
+ end
2537
+
2538
+ # Update properties of this object
2539
+ def update!(**args)
2540
+ @expression_operator = args[:expression_operator] if args.key?(:expression_operator)
2541
+ @input = args[:input] if args.key?(:input)
2542
+ @values = args[:values] if args.key?(:values)
2543
+ end
2544
+ end
2545
+
2546
+ # WorkspaceBinding maps a workspace to a Volume. PipelineRef can be used to
2547
+ # refer to a specific instance of a Pipeline.
2548
+ class WorkspaceBinding
2549
+ include Google::Apis::Core::Hashable
2550
+
2551
+ # Name of the workspace.
2552
+ # Corresponds to the JSON property `name`
2553
+ # @return [String]
2554
+ attr_accessor :name
2555
+
2556
+ # Secret Volume Source.
2557
+ # Corresponds to the JSON property `secret`
2558
+ # @return [Google::Apis::CloudbuildV2::SecretVolumeSource]
2559
+ attr_accessor :secret
2560
+
2561
+ # VolumeClaim is a user's request for a volume.
2562
+ # Corresponds to the JSON property `volumeClaim`
2563
+ # @return [Google::Apis::CloudbuildV2::VolumeClaim]
2564
+ attr_accessor :volume_claim
2565
+
2566
+ def initialize(**args)
2567
+ update!(**args)
2568
+ end
2569
+
2570
+ # Update properties of this object
2571
+ def update!(**args)
2572
+ @name = args[:name] if args.key?(:name)
2573
+ @secret = args[:secret] if args.key?(:secret)
2574
+ @volume_claim = args[:volume_claim] if args.key?(:volume_claim)
2575
+ end
2576
+ end
2577
+
2578
+ # WorkspaceDeclaration is a declaration of a volume that a Task requires.
2579
+ class WorkspaceDeclaration
2580
+ include Google::Apis::Core::Hashable
2581
+
2582
+ # Description is a human readable description of this volume.
2583
+ # Corresponds to the JSON property `description`
2584
+ # @return [String]
2585
+ attr_accessor :description
2586
+
2587
+ # MountPath overrides the directory that the volume will be made available at.
2588
+ # Corresponds to the JSON property `mountPath`
2589
+ # @return [String]
2590
+ attr_accessor :mount_path
2591
+
2592
+ # Name is the name by which you can bind the volume at runtime.
2593
+ # Corresponds to the JSON property `name`
2594
+ # @return [String]
2595
+ attr_accessor :name
2596
+
2597
+ # ReadOnly dictates whether a mounted volume is writable.
2598
+ # Corresponds to the JSON property `readOnly`
2599
+ # @return [Boolean]
2600
+ attr_accessor :read_only
2601
+ alias_method :read_only?, :read_only
2602
+
2603
+ def initialize(**args)
2604
+ update!(**args)
2605
+ end
2606
+
2607
+ # Update properties of this object
2608
+ def update!(**args)
2609
+ @description = args[:description] if args.key?(:description)
2610
+ @mount_path = args[:mount_path] if args.key?(:mount_path)
2611
+ @name = args[:name] if args.key?(:name)
2612
+ @read_only = args[:read_only] if args.key?(:read_only)
2613
+ end
2614
+ end
2615
+
2616
+ # WorkspacePipelineTaskBinding maps workspaces from the PipelineSpec to the
2617
+ # workspaces declared in the Task.
2618
+ class WorkspacePipelineTaskBinding
2619
+ include Google::Apis::Core::Hashable
2620
+
2621
+ # Name of the workspace as declared by the task.
2622
+ # Corresponds to the JSON property `name`
2623
+ # @return [String]
2624
+ attr_accessor :name
2625
+
2626
+ # Name of the workspace declared by the pipeline.
2627
+ # Corresponds to the JSON property `workspace`
2628
+ # @return [String]
2629
+ attr_accessor :workspace
2630
+
2631
+ def initialize(**args)
2632
+ update!(**args)
2633
+ end
2634
+
2635
+ # Update properties of this object
2636
+ def update!(**args)
2637
+ @name = args[:name] if args.key?(:name)
2638
+ @workspace = args[:workspace] if args.key?(:workspace)
2639
+ end
2640
+ end
2641
+ end
2642
+ end
2643
+ end