google-apis-run_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,1823 @@
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 RunV2
24
+
25
+ # Settings for Binary Authorization feature.
26
+ class GoogleCloudRunOpV2BinaryAuthorization
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # If present, indicates to use Breakglass using this justification. If
30
+ # use_default is False, then it must be empty. For more information on
31
+ # breakglass, see https://cloud.google.com/binary-authorization/docs/using-
32
+ # breakglass
33
+ # Corresponds to the JSON property `breakglassJustification`
34
+ # @return [String]
35
+ attr_accessor :breakglass_justification
36
+
37
+ # If True, indicates to use the default project's binary authorization policy.
38
+ # If False, binary authorization will be disabled.
39
+ # Corresponds to the JSON property `useDefault`
40
+ # @return [Boolean]
41
+ attr_accessor :use_default
42
+ alias_method :use_default?, :use_default
43
+
44
+ def initialize(**args)
45
+ update!(**args)
46
+ end
47
+
48
+ # Update properties of this object
49
+ def update!(**args)
50
+ @breakglass_justification = args[:breakglass_justification] if args.key?(:breakglass_justification)
51
+ @use_default = args[:use_default] if args.key?(:use_default)
52
+ end
53
+ end
54
+
55
+ # Represents a specific Cloud SQL instance.
56
+ class GoogleCloudRunOpV2CloudSqlInstance
57
+ include Google::Apis::Core::Hashable
58
+
59
+ # The Cloud SQL instance connection names, as can be found in https://console.
60
+ # cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/
61
+ # connect-run for more information on how to connect Cloud SQL and Cloud Run.
62
+ # Format: `project`:`location`:`instance`
63
+ # Corresponds to the JSON property `connections`
64
+ # @return [Array<String>]
65
+ attr_accessor :connections
66
+
67
+ def initialize(**args)
68
+ update!(**args)
69
+ end
70
+
71
+ # Update properties of this object
72
+ def update!(**args)
73
+ @connections = args[:connections] if args.key?(:connections)
74
+ end
75
+ end
76
+
77
+ # Defines a status condition for a resource.
78
+ class GoogleCloudRunOpV2Condition
79
+ include Google::Apis::Core::Hashable
80
+
81
+ # A reason for the domain mapping condition.
82
+ # Corresponds to the JSON property `domainMappingReason`
83
+ # @return [String]
84
+ attr_accessor :domain_mapping_reason
85
+
86
+ # A reason for the execution condition.
87
+ # Corresponds to the JSON property `executionReason`
88
+ # @return [String]
89
+ attr_accessor :execution_reason
90
+
91
+ # A reason for the internal condition.
92
+ # Corresponds to the JSON property `internalReason`
93
+ # @return [String]
94
+ attr_accessor :internal_reason
95
+
96
+ # Last time the condition transitioned from one status to another.
97
+ # Corresponds to the JSON property `lastTransitionTime`
98
+ # @return [String]
99
+ attr_accessor :last_transition_time
100
+
101
+ # Human readable message indicating details about the current status.
102
+ # Corresponds to the JSON property `message`
103
+ # @return [String]
104
+ attr_accessor :message
105
+
106
+ # A common (service-level) reason for this condition.
107
+ # Corresponds to the JSON property `reason`
108
+ # @return [String]
109
+ attr_accessor :reason
110
+
111
+ # A reason for the revision condition.
112
+ # Corresponds to the JSON property `revisionReason`
113
+ # @return [String]
114
+ attr_accessor :revision_reason
115
+
116
+ # How to interpret failures of this condition, one of Error, Warning, Info
117
+ # Corresponds to the JSON property `severity`
118
+ # @return [String]
119
+ attr_accessor :severity
120
+
121
+ # State of the condition.
122
+ # Corresponds to the JSON property `state`
123
+ # @return [String]
124
+ attr_accessor :state
125
+
126
+ # type is used to communicate the status of the reconciliation process. See also:
127
+ # https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-
128
+ # conditions-and-reporting Types common to all resources include: * "Ready":
129
+ # True when the Resource is ready.
130
+ # Corresponds to the JSON property `type`
131
+ # @return [String]
132
+ attr_accessor :type
133
+
134
+ def initialize(**args)
135
+ update!(**args)
136
+ end
137
+
138
+ # Update properties of this object
139
+ def update!(**args)
140
+ @domain_mapping_reason = args[:domain_mapping_reason] if args.key?(:domain_mapping_reason)
141
+ @execution_reason = args[:execution_reason] if args.key?(:execution_reason)
142
+ @internal_reason = args[:internal_reason] if args.key?(:internal_reason)
143
+ @last_transition_time = args[:last_transition_time] if args.key?(:last_transition_time)
144
+ @message = args[:message] if args.key?(:message)
145
+ @reason = args[:reason] if args.key?(:reason)
146
+ @revision_reason = args[:revision_reason] if args.key?(:revision_reason)
147
+ @severity = args[:severity] if args.key?(:severity)
148
+ @state = args[:state] if args.key?(:state)
149
+ @type = args[:type] if args.key?(:type)
150
+ end
151
+ end
152
+
153
+ # A single application container. This specifies both the container to run, the
154
+ # command to run in the container and the arguments to supply to it. Note that
155
+ # additional arguments may be supplied by the system to the container at runtime.
156
+ class GoogleCloudRunOpV2Container
157
+ include Google::Apis::Core::Hashable
158
+
159
+ # Arguments to the entrypoint. The docker image's CMD is used if this is not
160
+ # provided. Variable references $(VAR_NAME) are expanded using the container's
161
+ # environment. If a variable cannot be resolved, the reference in the input
162
+ # string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $
163
+ # $, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of
164
+ # whether the variable exists or not. More info: https://kubernetes.io/docs/
165
+ # tasks/inject-data-application/define-command-argument-container/#running-a-
166
+ # command-in-a-shell
167
+ # Corresponds to the JSON property `args`
168
+ # @return [Array<String>]
169
+ attr_accessor :args
170
+
171
+ # Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT
172
+ # is used if this is not provided. Variable references $(VAR_NAME) are expanded
173
+ # using the container's environment. If a variable cannot be resolved, the
174
+ # reference in the input string will be unchanged. The $(VAR_NAME) syntax can be
175
+ # escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be
176
+ # expanded, regardless of whether the variable exists or not. More info: https://
177
+ # kubernetes.io/docs/tasks/inject-data-application/define-command-argument-
178
+ # container/#running-a-command-in-a-shell
179
+ # Corresponds to the JSON property `command`
180
+ # @return [Array<String>]
181
+ attr_accessor :command
182
+
183
+ # List of environment variables to set in the container.
184
+ # Corresponds to the JSON property `env`
185
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2EnvVar>]
186
+ attr_accessor :env
187
+
188
+ # Required. URL of the Container image in Google Container Registry or Docker
189
+ # More info: https://kubernetes.io/docs/concepts/containers/images
190
+ # Corresponds to the JSON property `image`
191
+ # @return [String]
192
+ attr_accessor :image
193
+
194
+ # Name of the container specified as a DNS_LABEL.
195
+ # Corresponds to the JSON property `name`
196
+ # @return [String]
197
+ attr_accessor :name
198
+
199
+ # List of ports to expose from the container. Only a single port can be
200
+ # specified. The specified ports must be listening on all interfaces (0.0.0.0)
201
+ # within the container to be accessible. If omitted, a port number will be
202
+ # chosen and passed to the container through the PORT environment variable for
203
+ # the container to listen on.
204
+ # Corresponds to the JSON property `ports`
205
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2ContainerPort>]
206
+ attr_accessor :ports
207
+
208
+ # ResourceRequirements describes the compute resource requirements.
209
+ # Corresponds to the JSON property `resources`
210
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2ResourceRequirements]
211
+ attr_accessor :resources
212
+
213
+ # Volume to mount into the container's filesystem.
214
+ # Corresponds to the JSON property `volumeMounts`
215
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2VolumeMount>]
216
+ attr_accessor :volume_mounts
217
+
218
+ def initialize(**args)
219
+ update!(**args)
220
+ end
221
+
222
+ # Update properties of this object
223
+ def update!(**args)
224
+ @args = args[:args] if args.key?(:args)
225
+ @command = args[:command] if args.key?(:command)
226
+ @env = args[:env] if args.key?(:env)
227
+ @image = args[:image] if args.key?(:image)
228
+ @name = args[:name] if args.key?(:name)
229
+ @ports = args[:ports] if args.key?(:ports)
230
+ @resources = args[:resources] if args.key?(:resources)
231
+ @volume_mounts = args[:volume_mounts] if args.key?(:volume_mounts)
232
+ end
233
+ end
234
+
235
+ # ContainerPort represents a network port in a single container.
236
+ class GoogleCloudRunOpV2ContainerPort
237
+ include Google::Apis::Core::Hashable
238
+
239
+ # Port number the container listens on. This must be a valid TCP port number, 0 <
240
+ # container_port < 65536.
241
+ # Corresponds to the JSON property `containerPort`
242
+ # @return [Fixnum]
243
+ attr_accessor :container_port
244
+
245
+ # If specified, used to specify which protocol to use. Allowed values are "http1"
246
+ # and "h2c".
247
+ # Corresponds to the JSON property `name`
248
+ # @return [String]
249
+ attr_accessor :name
250
+
251
+ def initialize(**args)
252
+ update!(**args)
253
+ end
254
+
255
+ # Update properties of this object
256
+ def update!(**args)
257
+ @container_port = args[:container_port] if args.key?(:container_port)
258
+ @name = args[:name] if args.key?(:name)
259
+ end
260
+ end
261
+
262
+ # ContainerStatus holds the information of container name and image digest value.
263
+ class GoogleCloudRunOpV2ContainerStatus
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # ImageDigest holds the resolved digest for the image specified, regardless of
267
+ # whether a tag or digest was originally specified in the Container object.
268
+ # Corresponds to the JSON property `imageDigest`
269
+ # @return [String]
270
+ attr_accessor :image_digest
271
+
272
+ # The name of the container, if specified.
273
+ # Corresponds to the JSON property `name`
274
+ # @return [String]
275
+ attr_accessor :name
276
+
277
+ def initialize(**args)
278
+ update!(**args)
279
+ end
280
+
281
+ # Update properties of this object
282
+ def update!(**args)
283
+ @image_digest = args[:image_digest] if args.key?(:image_digest)
284
+ @name = args[:name] if args.key?(:name)
285
+ end
286
+ end
287
+
288
+ # EnvVar represents an environment variable present in a Container.
289
+ class GoogleCloudRunOpV2EnvVar
290
+ include Google::Apis::Core::Hashable
291
+
292
+ # Required. Name of the environment variable. Must be a C_IDENTIFIER, and mnay
293
+ # not exceed 32768 characters.
294
+ # Corresponds to the JSON property `name`
295
+ # @return [String]
296
+ attr_accessor :name
297
+
298
+ # Variable references $(VAR_NAME) are expanded using the previous defined
299
+ # environment variables in the container and any route environment variables. If
300
+ # a variable cannot be resolved, the reference in the input string will be
301
+ # unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(
302
+ # VAR_NAME). Escaped references will never be expanded, regardless of whether
303
+ # the variable exists or not. Defaults to "", and the maximum length is 32768
304
+ # bytes.
305
+ # Corresponds to the JSON property `value`
306
+ # @return [String]
307
+ attr_accessor :value
308
+
309
+ # EnvVarSource represents a source for the value of an EnvVar.
310
+ # Corresponds to the JSON property `valueSource`
311
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2EnvVarSource]
312
+ attr_accessor :value_source
313
+
314
+ def initialize(**args)
315
+ update!(**args)
316
+ end
317
+
318
+ # Update properties of this object
319
+ def update!(**args)
320
+ @name = args[:name] if args.key?(:name)
321
+ @value = args[:value] if args.key?(:value)
322
+ @value_source = args[:value_source] if args.key?(:value_source)
323
+ end
324
+ end
325
+
326
+ # EnvVarSource represents a source for the value of an EnvVar.
327
+ class GoogleCloudRunOpV2EnvVarSource
328
+ include Google::Apis::Core::Hashable
329
+
330
+ # SecretEnvVarSource represents a source for the value of an EnvVar.
331
+ # Corresponds to the JSON property `secretKeyRef`
332
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2SecretKeySelector]
333
+ attr_accessor :secret_key_ref
334
+
335
+ def initialize(**args)
336
+ update!(**args)
337
+ end
338
+
339
+ # Update properties of this object
340
+ def update!(**args)
341
+ @secret_key_ref = args[:secret_key_ref] if args.key?(:secret_key_ref)
342
+ end
343
+ end
344
+
345
+ # Response message containing a list of Revisions.
346
+ class GoogleCloudRunOpV2ListRevisionsResponse
347
+ include Google::Apis::Core::Hashable
348
+
349
+ # A token indicating there are more items than page_size. Use it in the next
350
+ # ListRevisions request to continue.
351
+ # Corresponds to the JSON property `nextPageToken`
352
+ # @return [String]
353
+ attr_accessor :next_page_token
354
+
355
+ # The resulting list of Revisions.
356
+ # Corresponds to the JSON property `revisions`
357
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Revision>]
358
+ attr_accessor :revisions
359
+
360
+ def initialize(**args)
361
+ update!(**args)
362
+ end
363
+
364
+ # Update properties of this object
365
+ def update!(**args)
366
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
367
+ @revisions = args[:revisions] if args.key?(:revisions)
368
+ end
369
+ end
370
+
371
+ # Response message containing a list of Services.
372
+ class GoogleCloudRunOpV2ListServicesResponse
373
+ include Google::Apis::Core::Hashable
374
+
375
+ # A token indicating there are more items than page_size. Use it in the next
376
+ # ListServices request to continue.
377
+ # Corresponds to the JSON property `nextPageToken`
378
+ # @return [String]
379
+ attr_accessor :next_page_token
380
+
381
+ # The resulting list of Services.
382
+ # Corresponds to the JSON property `services`
383
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Service>]
384
+ attr_accessor :services
385
+
386
+ def initialize(**args)
387
+ update!(**args)
388
+ end
389
+
390
+ # Update properties of this object
391
+ def update!(**args)
392
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
393
+ @services = args[:services] if args.key?(:services)
394
+ end
395
+ end
396
+
397
+ # ResourceRequirements describes the compute resource requirements.
398
+ class GoogleCloudRunOpV2ResourceRequirements
399
+ include Google::Apis::Core::Hashable
400
+
401
+ # Determines whether CPU should be throttled or not outside of requests.
402
+ # Corresponds to the JSON property `cpuIdle`
403
+ # @return [Boolean]
404
+ attr_accessor :cpu_idle
405
+ alias_method :cpu_idle?, :cpu_idle
406
+
407
+ # Only memory and CPU are supported. Note: The only supported values for CPU are
408
+ # '1', '2', and '4'. Setting 4 CPU requires at least 2Gi of memory. The values
409
+ # of the map is string form of the 'quantity' k8s type: https://github.com/
410
+ # kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/
411
+ # resource/quantity.go
412
+ # Corresponds to the JSON property `limits`
413
+ # @return [Hash<String,String>]
414
+ attr_accessor :limits
415
+
416
+ def initialize(**args)
417
+ update!(**args)
418
+ end
419
+
420
+ # Update properties of this object
421
+ def update!(**args)
422
+ @cpu_idle = args[:cpu_idle] if args.key?(:cpu_idle)
423
+ @limits = args[:limits] if args.key?(:limits)
424
+ end
425
+ end
426
+
427
+ # A Revision is an immutable snapshot of code and configuration. A Revision
428
+ # references a container image. Revisions are only created by updates to its
429
+ # parent Service.
430
+ class GoogleCloudRunOpV2Revision
431
+ include Google::Apis::Core::Hashable
432
+
433
+ # KRM-style annotations for the resource.
434
+ # Corresponds to the JSON property `annotations`
435
+ # @return [Hash<String,String>]
436
+ attr_accessor :annotations
437
+
438
+ # Output only. The Condition of this Revision, containing its readiness status,
439
+ # and detailed error information in case it did not reach a serving state.
440
+ # Corresponds to the JSON property `conditions`
441
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Condition>]
442
+ attr_accessor :conditions
443
+
444
+ # Indicates whether Confidential Cloud Run is enabled in this Revision.
445
+ # Corresponds to the JSON property `confidential`
446
+ # @return [Boolean]
447
+ attr_accessor :confidential
448
+ alias_method :confidential?, :confidential
449
+
450
+ # Sets the maximum number of requests that each serving instance can receive.
451
+ # Corresponds to the JSON property `containerConcurrency`
452
+ # @return [Fixnum]
453
+ attr_accessor :container_concurrency
454
+
455
+ # Output only. Status information for each of the containers specified.
456
+ # Corresponds to the JSON property `containerStatuses`
457
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2ContainerStatus>]
458
+ attr_accessor :container_statuses
459
+
460
+ # Holds the single container that defines the unit of execution for this
461
+ # Revision.
462
+ # Corresponds to the JSON property `containers`
463
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Container>]
464
+ attr_accessor :containers
465
+
466
+ # Output only. The creation time.
467
+ # Corresponds to the JSON property `createTime`
468
+ # @return [String]
469
+ attr_accessor :create_time
470
+
471
+ # Output only. For a deleted resource, the deletion time. It is only populated
472
+ # as a response to a Delete request.
473
+ # Corresponds to the JSON property `deleteTime`
474
+ # @return [String]
475
+ attr_accessor :delete_time
476
+
477
+ # A reference to a customer managed encryption key (CMEK) to use to encrypt this
478
+ # container image. For more information, go to https://cloud.google.com/run/docs/
479
+ # securing/using-cmek
480
+ # Corresponds to the JSON property `encryptionKey`
481
+ # @return [String]
482
+ attr_accessor :encryption_key
483
+
484
+ # Output only. A system-generated fingerprint for this version of the resource.
485
+ # May be used to detect modification conflict during updates.
486
+ # Corresponds to the JSON property `etag`
487
+ # @return [String]
488
+ attr_accessor :etag
489
+
490
+ # The execution environment being used to host this Revision.
491
+ # Corresponds to the JSON property `executionEnvironment`
492
+ # @return [String]
493
+ attr_accessor :execution_environment
494
+
495
+ # Output only. For a deleted resource, the time after which it will be
496
+ # permamently deleted. It is only populated as a response to a Delete request.
497
+ # Corresponds to the JSON property `expireTime`
498
+ # @return [String]
499
+ attr_accessor :expire_time
500
+
501
+ # Output only. A number that monotonically increases every time the user
502
+ # modifies the desired state.
503
+ # Corresponds to the JSON property `generation`
504
+ # @return [Fixnum]
505
+ attr_accessor :generation
506
+
507
+ # KRM-style labels for the resource. User-provided labels are shared with Google'
508
+ # s billing system, so they can be used to filter, or break down billing charges
509
+ # by team, component, environment, state, etc. For more information, visit https:
510
+ # //cloud.google.com/resource-manager/docs/creating-managing-labels or https://
511
+ # cloud.google.com/run/docs/configuring/labels Cloud Run will populate some
512
+ # labels with 'run.googleapis.com' or 'serving.knative.dev' namespaces. Those
513
+ # labels are read-only, and user changes will not be preserved.
514
+ # Corresponds to the JSON property `labels`
515
+ # @return [Hash<String,String>]
516
+ attr_accessor :labels
517
+
518
+ # Set the launch stage to a preview stage on write to allow use of preview
519
+ # features in that stage. On read, describes whether the resource uses preview
520
+ # features. Launch Stages are defined at [Google Cloud Platform Launch Stages](
521
+ # http://cloud.google.com/terms/launch-stages).
522
+ # Corresponds to the JSON property `launchStage`
523
+ # @return [String]
524
+ attr_accessor :launch_stage
525
+
526
+ # Output only. The Google Console URI to obtain logs for the Revision.
527
+ # Corresponds to the JSON property `logUri`
528
+ # @return [String]
529
+ attr_accessor :log_uri
530
+
531
+ # Output only. The unique name of this Revision.
532
+ # Corresponds to the JSON property `name`
533
+ # @return [String]
534
+ attr_accessor :name
535
+
536
+ # Output only. The generation of this Revision currently serving traffic. See
537
+ # comments in `reconciling` for additional information on reconciliation process
538
+ # in Cloud Run.
539
+ # Corresponds to the JSON property `observedGeneration`
540
+ # @return [Fixnum]
541
+ attr_accessor :observed_generation
542
+
543
+ # Output only. Indicates whether the resource's reconciliation is still in
544
+ # progress. See comments in `Service.reconciling` for additional information on
545
+ # reconciliation process in Cloud Run.
546
+ # Corresponds to the JSON property `reconciling`
547
+ # @return [Boolean]
548
+ attr_accessor :reconciling
549
+ alias_method :reconciling?, :reconciling
550
+
551
+ # Settings for revision-level scaling settings.
552
+ # Corresponds to the JSON property `scaling`
553
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2RevisionScaling]
554
+ attr_accessor :scaling
555
+
556
+ # Output only. The name of the parent service.
557
+ # Corresponds to the JSON property `service`
558
+ # @return [String]
559
+ attr_accessor :service
560
+
561
+ # Email address of the IAM service account associated with the revision of the
562
+ # service. The service account represents the identity of the running revision,
563
+ # and determines what permissions the revision has.
564
+ # Corresponds to the JSON property `serviceAccount`
565
+ # @return [String]
566
+ attr_accessor :service_account
567
+
568
+ # Max allowed time for an instance to respond to a request.
569
+ # Corresponds to the JSON property `timeout`
570
+ # @return [String]
571
+ attr_accessor :timeout
572
+
573
+ # Output only. Server assigned unique identifier for the Revision. The value is
574
+ # a UUID4 string and guaranteed to remain unchanged until the resource is
575
+ # deleted.
576
+ # Corresponds to the JSON property `uid`
577
+ # @return [String]
578
+ attr_accessor :uid
579
+
580
+ # Output only. The last-modified time.
581
+ # Corresponds to the JSON property `updateTime`
582
+ # @return [String]
583
+ attr_accessor :update_time
584
+
585
+ # A list of Volumes to make available to containers.
586
+ # Corresponds to the JSON property `volumes`
587
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Volume>]
588
+ attr_accessor :volumes
589
+
590
+ # VPC Access settings. For more information on creating a VPC Connector, visit
591
+ # https://cloud.google.com/vpc/docs/configure-serverless-vpc-access For
592
+ # information on how to configure Cloud Run with an existing VPC Connector,
593
+ # visit https://cloud.google.com/run/docs/configuring/connecting-vpc
594
+ # Corresponds to the JSON property `vpcAccess`
595
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2VpcAccess]
596
+ attr_accessor :vpc_access
597
+
598
+ def initialize(**args)
599
+ update!(**args)
600
+ end
601
+
602
+ # Update properties of this object
603
+ def update!(**args)
604
+ @annotations = args[:annotations] if args.key?(:annotations)
605
+ @conditions = args[:conditions] if args.key?(:conditions)
606
+ @confidential = args[:confidential] if args.key?(:confidential)
607
+ @container_concurrency = args[:container_concurrency] if args.key?(:container_concurrency)
608
+ @container_statuses = args[:container_statuses] if args.key?(:container_statuses)
609
+ @containers = args[:containers] if args.key?(:containers)
610
+ @create_time = args[:create_time] if args.key?(:create_time)
611
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
612
+ @encryption_key = args[:encryption_key] if args.key?(:encryption_key)
613
+ @etag = args[:etag] if args.key?(:etag)
614
+ @execution_environment = args[:execution_environment] if args.key?(:execution_environment)
615
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
616
+ @generation = args[:generation] if args.key?(:generation)
617
+ @labels = args[:labels] if args.key?(:labels)
618
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
619
+ @log_uri = args[:log_uri] if args.key?(:log_uri)
620
+ @name = args[:name] if args.key?(:name)
621
+ @observed_generation = args[:observed_generation] if args.key?(:observed_generation)
622
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
623
+ @scaling = args[:scaling] if args.key?(:scaling)
624
+ @service = args[:service] if args.key?(:service)
625
+ @service_account = args[:service_account] if args.key?(:service_account)
626
+ @timeout = args[:timeout] if args.key?(:timeout)
627
+ @uid = args[:uid] if args.key?(:uid)
628
+ @update_time = args[:update_time] if args.key?(:update_time)
629
+ @volumes = args[:volumes] if args.key?(:volumes)
630
+ @vpc_access = args[:vpc_access] if args.key?(:vpc_access)
631
+ end
632
+ end
633
+
634
+ # Settings for revision-level scaling settings.
635
+ class GoogleCloudRunOpV2RevisionScaling
636
+ include Google::Apis::Core::Hashable
637
+
638
+ # Maximum number of serving instances that this resource should have.
639
+ # Corresponds to the JSON property `maxInstanceCount`
640
+ # @return [Fixnum]
641
+ attr_accessor :max_instance_count
642
+
643
+ # Minimum number of serving instances that this resource should have.
644
+ # Corresponds to the JSON property `minInstanceCount`
645
+ # @return [Fixnum]
646
+ attr_accessor :min_instance_count
647
+
648
+ def initialize(**args)
649
+ update!(**args)
650
+ end
651
+
652
+ # Update properties of this object
653
+ def update!(**args)
654
+ @max_instance_count = args[:max_instance_count] if args.key?(:max_instance_count)
655
+ @min_instance_count = args[:min_instance_count] if args.key?(:min_instance_count)
656
+ end
657
+ end
658
+
659
+ # RevisionTemplate describes the data a revision should have when created from a
660
+ # template.
661
+ class GoogleCloudRunOpV2RevisionTemplate
662
+ include Google::Apis::Core::Hashable
663
+
664
+ # KRM-style annotations for the resource.
665
+ # Corresponds to the JSON property `annotations`
666
+ # @return [Hash<String,String>]
667
+ attr_accessor :annotations
668
+
669
+ # Enables Confidential Cloud Run in Revisions created using this template.
670
+ # Corresponds to the JSON property `confidential`
671
+ # @return [Boolean]
672
+ attr_accessor :confidential
673
+ alias_method :confidential?, :confidential
674
+
675
+ # Sets the maximum number of requests that each serving instance can receive.
676
+ # Corresponds to the JSON property `containerConcurrency`
677
+ # @return [Fixnum]
678
+ attr_accessor :container_concurrency
679
+
680
+ # Holds the single container that defines the unit of execution for this
681
+ # Revision.
682
+ # Corresponds to the JSON property `containers`
683
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Container>]
684
+ attr_accessor :containers
685
+
686
+ # A reference to a customer managed encryption key (CMEK) to use to encrypt this
687
+ # container image. For more information, go to https://cloud.google.com/run/docs/
688
+ # securing/using-cmek
689
+ # Corresponds to the JSON property `encryptionKey`
690
+ # @return [String]
691
+ attr_accessor :encryption_key
692
+
693
+ # The sandbox environment to host this Revision.
694
+ # Corresponds to the JSON property `executionEnvironment`
695
+ # @return [String]
696
+ attr_accessor :execution_environment
697
+
698
+ # KRM-style labels for the resource.
699
+ # Corresponds to the JSON property `labels`
700
+ # @return [Hash<String,String>]
701
+ attr_accessor :labels
702
+
703
+ # The unique name for the revision. If this field is omitted, it will be
704
+ # automatically generated based on the Service name.
705
+ # Corresponds to the JSON property `revision`
706
+ # @return [String]
707
+ attr_accessor :revision
708
+
709
+ # Settings for revision-level scaling settings.
710
+ # Corresponds to the JSON property `scaling`
711
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2RevisionScaling]
712
+ attr_accessor :scaling
713
+
714
+ # Email address of the IAM service account associated with the revision of the
715
+ # service. The service account represents the identity of the running revision,
716
+ # and determines what permissions the revision has. If not provided, the
717
+ # revision will use the project's default service account.
718
+ # Corresponds to the JSON property `serviceAccount`
719
+ # @return [String]
720
+ attr_accessor :service_account
721
+
722
+ # Max allowed time for an instance to respond to a request.
723
+ # Corresponds to the JSON property `timeout`
724
+ # @return [String]
725
+ attr_accessor :timeout
726
+
727
+ # A list of Volumes to make available to containers.
728
+ # Corresponds to the JSON property `volumes`
729
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Volume>]
730
+ attr_accessor :volumes
731
+
732
+ # VPC Access settings. For more information on creating a VPC Connector, visit
733
+ # https://cloud.google.com/vpc/docs/configure-serverless-vpc-access For
734
+ # information on how to configure Cloud Run with an existing VPC Connector,
735
+ # visit https://cloud.google.com/run/docs/configuring/connecting-vpc
736
+ # Corresponds to the JSON property `vpcAccess`
737
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2VpcAccess]
738
+ attr_accessor :vpc_access
739
+
740
+ def initialize(**args)
741
+ update!(**args)
742
+ end
743
+
744
+ # Update properties of this object
745
+ def update!(**args)
746
+ @annotations = args[:annotations] if args.key?(:annotations)
747
+ @confidential = args[:confidential] if args.key?(:confidential)
748
+ @container_concurrency = args[:container_concurrency] if args.key?(:container_concurrency)
749
+ @containers = args[:containers] if args.key?(:containers)
750
+ @encryption_key = args[:encryption_key] if args.key?(:encryption_key)
751
+ @execution_environment = args[:execution_environment] if args.key?(:execution_environment)
752
+ @labels = args[:labels] if args.key?(:labels)
753
+ @revision = args[:revision] if args.key?(:revision)
754
+ @scaling = args[:scaling] if args.key?(:scaling)
755
+ @service_account = args[:service_account] if args.key?(:service_account)
756
+ @timeout = args[:timeout] if args.key?(:timeout)
757
+ @volumes = args[:volumes] if args.key?(:volumes)
758
+ @vpc_access = args[:vpc_access] if args.key?(:vpc_access)
759
+ end
760
+ end
761
+
762
+ # SecretEnvVarSource represents a source for the value of an EnvVar.
763
+ class GoogleCloudRunOpV2SecretKeySelector
764
+ include Google::Apis::Core::Hashable
765
+
766
+ # Required. The name of the secret in Cloud Secret Manager. Format: `secret_name`
767
+ # if the secret is in the same project. projects/`project`/secrets/`secret_name`
768
+ # if the secret is in a different project.
769
+ # Corresponds to the JSON property `secret`
770
+ # @return [String]
771
+ attr_accessor :secret
772
+
773
+ # The Cloud Secret Manager secret version. Can be 'latest' for the latest value
774
+ # or an integer for a specific version.
775
+ # Corresponds to the JSON property `version`
776
+ # @return [String]
777
+ attr_accessor :version
778
+
779
+ def initialize(**args)
780
+ update!(**args)
781
+ end
782
+
783
+ # Update properties of this object
784
+ def update!(**args)
785
+ @secret = args[:secret] if args.key?(:secret)
786
+ @version = args[:version] if args.key?(:version)
787
+ end
788
+ end
789
+
790
+ # The secret's value will be presented as the content of a file whose name is
791
+ # defined in the item path. If no items are defined, the name of the file is the
792
+ # secret.
793
+ class GoogleCloudRunOpV2SecretVolumeSource
794
+ include Google::Apis::Core::Hashable
795
+
796
+ # Integer representation of mode bits to use on created files by default. Must
797
+ # be a value between 0000 and 0777 (octal), defaulting to 0644. Directories
798
+ # within the path are not affected by this setting. Notes * Internally, a umask
799
+ # of 0222 will be applied to any non-zero value. * This is an integer
800
+ # representation of the mode bits. So, the octal integer value should look
801
+ # exactly as the chmod numeric notation with a leading zero. Some examples: for
802
+ # chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=
803
+ # r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set
804
+ # to 0755 (octal) or 493 (base-10). * This might be in conflict with other
805
+ # options that affect the file mode, like fsGroup, and the result can be other
806
+ # mode bits set. This might be in conflict with other options that affect the
807
+ # file mode, like fsGroup, and as a result, other mode bits could be set.
808
+ # Corresponds to the JSON property `defaultMode`
809
+ # @return [Fixnum]
810
+ attr_accessor :default_mode
811
+
812
+ # If unspecified, the volume will expose a file whose name is the secret,
813
+ # relative to VolumeMount.mount_path. If specified, the key will be used as the
814
+ # version to fetch from Cloud Secret Manager and the path will be the name of
815
+ # the file exposed in the volume. When items are defined, they must specify a
816
+ # path and a version.
817
+ # Corresponds to the JSON property `items`
818
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2VersionToPath>]
819
+ attr_accessor :items
820
+
821
+ # Required. The name of the secret in Cloud Secret Manager. Format: `secret` if
822
+ # the secret is in the same project. projects/`project`/secrets/`secret` if the
823
+ # secret is in a different project.
824
+ # Corresponds to the JSON property `secret`
825
+ # @return [String]
826
+ attr_accessor :secret
827
+
828
+ def initialize(**args)
829
+ update!(**args)
830
+ end
831
+
832
+ # Update properties of this object
833
+ def update!(**args)
834
+ @default_mode = args[:default_mode] if args.key?(:default_mode)
835
+ @items = args[:items] if args.key?(:items)
836
+ @secret = args[:secret] if args.key?(:secret)
837
+ end
838
+ end
839
+
840
+ # Service acts as a top-level container that manages a set of configurations and
841
+ # revision templates which implement a network service. Service exists to
842
+ # provide a singular abstraction which can be access controlled, reasoned about,
843
+ # and which encapsulates software lifecycle decisions such as rollout policy and
844
+ # team resource ownership.
845
+ class GoogleCloudRunOpV2Service
846
+ include Google::Apis::Core::Hashable
847
+
848
+ # Unstructured key value map that may be set by external tools to store and
849
+ # arbitrary metadata. They are not queryable and should be preserved when
850
+ # modifying objects. Cloud Run will populate some annotations using 'run.
851
+ # googleapis.com' or 'serving.knative.dev' namespaces. This field follows
852
+ # Kubernetes annotations' namespacing, limits, and rules. More info: http://
853
+ # kubernetes.io/docs/user-guide/annotations
854
+ # Corresponds to the JSON property `annotations`
855
+ # @return [Hash<String,String>]
856
+ attr_accessor :annotations
857
+
858
+ # Settings for Binary Authorization feature.
859
+ # Corresponds to the JSON property `binaryAuthorization`
860
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2BinaryAuthorization]
861
+ attr_accessor :binary_authorization
862
+
863
+ # Arbitrary identifier for the API client.
864
+ # Corresponds to the JSON property `client`
865
+ # @return [String]
866
+ attr_accessor :client
867
+
868
+ # Arbitrary version identifier for the API client.
869
+ # Corresponds to the JSON property `clientVersion`
870
+ # @return [String]
871
+ attr_accessor :client_version
872
+
873
+ # Output only. The Conditions of all other associated sub-resources. They
874
+ # contain additional diagnostics information in case the Service does not reach
875
+ # its Serving state. See comments in `reconciling` for additional information on
876
+ # reconciliation process in Cloud Run.
877
+ # Corresponds to the JSON property `conditions`
878
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2Condition>]
879
+ attr_accessor :conditions
880
+
881
+ # Output only. The creation time.
882
+ # Corresponds to the JSON property `createTime`
883
+ # @return [String]
884
+ attr_accessor :create_time
885
+
886
+ # Output only. Email address of the authenticated creator.
887
+ # Corresponds to the JSON property `creator`
888
+ # @return [String]
889
+ attr_accessor :creator
890
+
891
+ # Output only. The deletion time.
892
+ # Corresponds to the JSON property `deleteTime`
893
+ # @return [String]
894
+ attr_accessor :delete_time
895
+
896
+ # User-provided description of the Service.
897
+ # Corresponds to the JSON property `description`
898
+ # @return [String]
899
+ attr_accessor :description
900
+
901
+ # Output only. A system-generated fingerprint for this version of the resource.
902
+ # May be used to detect modification conflict during updates.
903
+ # Corresponds to the JSON property `etag`
904
+ # @return [String]
905
+ attr_accessor :etag
906
+
907
+ # Output only. For a deleted resource, the time after which it will be
908
+ # permamently deleted.
909
+ # Corresponds to the JSON property `expireTime`
910
+ # @return [String]
911
+ attr_accessor :expire_time
912
+
913
+ # Output only. A number that monotonically increases every time the user
914
+ # modifies the desired state.
915
+ # Corresponds to the JSON property `generation`
916
+ # @return [Fixnum]
917
+ attr_accessor :generation
918
+
919
+ # Provides the ingress settings for this Service. On output, returns the
920
+ # currently observed ingress settings, or INGRESS_TRAFFIC_UNSPECIFIED if no
921
+ # revision is active.
922
+ # Corresponds to the JSON property `ingress`
923
+ # @return [String]
924
+ attr_accessor :ingress
925
+
926
+ # Map of string keys and values that can be used to organize and categorize
927
+ # objects. User-provided labels are shared with Google's billing system, so they
928
+ # can be used to filter, or break down billing charges by team, component,
929
+ # environment, state, etc. For more information, visit https://cloud.google.com/
930
+ # resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/
931
+ # docs/configuring/labels Cloud Run will populate some labels with 'run.
932
+ # googleapis.com' or 'serving.knative.dev' namespaces. Those labels are read-
933
+ # only, and user changes will not be preserved.
934
+ # Corresponds to the JSON property `labels`
935
+ # @return [Hash<String,String>]
936
+ attr_accessor :labels
937
+
938
+ # Output only. Email address of the last authenticated modifier.
939
+ # Corresponds to the JSON property `lastModifier`
940
+ # @return [String]
941
+ attr_accessor :last_modifier
942
+
943
+ # Output only. Name of the last created revision. See comments in `reconciling`
944
+ # for additional information on reconciliation process in Cloud Run.
945
+ # Corresponds to the JSON property `latestCreatedRevision`
946
+ # @return [String]
947
+ attr_accessor :latest_created_revision
948
+
949
+ # Output only. Name of the latest revision that is serving traffic. See comments
950
+ # in `reconciling` for additional information on reconciliation process in Cloud
951
+ # Run.
952
+ # Corresponds to the JSON property `latestReadyRevision`
953
+ # @return [String]
954
+ attr_accessor :latest_ready_revision
955
+
956
+ # The launch stage as defined by [Google Cloud Platform Launch Stages](http://
957
+ # cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and
958
+ # `GA`. If no value is specified, GA is assumed.
959
+ # Corresponds to the JSON property `launchStage`
960
+ # @return [String]
961
+ attr_accessor :launch_stage
962
+
963
+ # The fully qualified name of this Service. In CreateServiceRequest, this field
964
+ # is ignored, and instead composed from CreateServiceRequest.parent and
965
+ # CreateServiceRequest.service_id. Format: projects/`project`/locations/`
966
+ # location`/services/`service_id`
967
+ # Corresponds to the JSON property `name`
968
+ # @return [String]
969
+ attr_accessor :name
970
+
971
+ # Output only. The generation of this Service currently serving traffic. See
972
+ # comments in `reconciling` for additional information on reconciliation process
973
+ # in Cloud Run.
974
+ # Corresponds to the JSON property `observedGeneration`
975
+ # @return [Fixnum]
976
+ attr_accessor :observed_generation
977
+
978
+ # Output only. Returns true if the Service is currently being acted upon by the
979
+ # system to bring it into the desired state. When a new Service is created, or
980
+ # an existing one is updated, Cloud Run will asynchronously perform all
981
+ # necessary steps to bring the Service to the desired serving state. This
982
+ # process is called reconciliation. While reconciliation is in process, `
983
+ # observed_generation`, `latest_ready_revison`, `traffic_statuses`, and `uri`
984
+ # will have transient values that might mismatch the intended state: Once
985
+ # reconciliation is over (and this field is false), there are two possible
986
+ # outcomes: reconciliation succeeded and the serving state matches the Service,
987
+ # or there was an error, and reconciliation failed. This state can be found in `
988
+ # terminal_condition.state`. If reconciliation succeeded, the following fields
989
+ # will match: `traffic` and `traffic_statuses`, `observed_generation` and `
990
+ # generation`, `latest_ready_revision` and `latest_created_revision`. If
991
+ # reconciliation failed, `traffic_statuses`, `observed_generation`, and `
992
+ # latest_ready_revision` will have the state of the last serving revision, or
993
+ # empty for newly created Services. Additional information on the failure can be
994
+ # found in `terminal_condition` and `conditions`.
995
+ # Corresponds to the JSON property `reconciling`
996
+ # @return [Boolean]
997
+ attr_accessor :reconciling
998
+ alias_method :reconciling?, :reconciling
999
+
1000
+ # RevisionTemplate describes the data a revision should have when created from a
1001
+ # template.
1002
+ # Corresponds to the JSON property `template`
1003
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2RevisionTemplate]
1004
+ attr_accessor :template
1005
+
1006
+ # Defines a status condition for a resource.
1007
+ # Corresponds to the JSON property `terminalCondition`
1008
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2Condition]
1009
+ attr_accessor :terminal_condition
1010
+
1011
+ # Specifies how to distribute traffic over a collection of Revisions belonging
1012
+ # to the Service. If traffic is empty or not provided, defaults to 100% traffic
1013
+ # to the latest `Ready` Revision.
1014
+ # Corresponds to the JSON property `traffic`
1015
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2TrafficTarget>]
1016
+ attr_accessor :traffic
1017
+
1018
+ # Output only. Detailed status information for corresponding traffic targets.
1019
+ # See comments in `reconciling` for additional information on reconciliation
1020
+ # process in Cloud Run.
1021
+ # Corresponds to the JSON property `trafficStatuses`
1022
+ # @return [Array<Google::Apis::RunV2::GoogleCloudRunOpV2TrafficTargetStatus>]
1023
+ attr_accessor :traffic_statuses
1024
+
1025
+ # Output only. Server assigned unique identifier for the trigger. The value is a
1026
+ # UUID4 string and guaranteed to remain unchanged until the resource is deleted.
1027
+ # Corresponds to the JSON property `uid`
1028
+ # @return [String]
1029
+ attr_accessor :uid
1030
+
1031
+ # Output only. The last-modified time.
1032
+ # Corresponds to the JSON property `updateTime`
1033
+ # @return [String]
1034
+ attr_accessor :update_time
1035
+
1036
+ # Output only. The main URI in which this Service is serving traffic.
1037
+ # Corresponds to the JSON property `uri`
1038
+ # @return [String]
1039
+ attr_accessor :uri
1040
+
1041
+ def initialize(**args)
1042
+ update!(**args)
1043
+ end
1044
+
1045
+ # Update properties of this object
1046
+ def update!(**args)
1047
+ @annotations = args[:annotations] if args.key?(:annotations)
1048
+ @binary_authorization = args[:binary_authorization] if args.key?(:binary_authorization)
1049
+ @client = args[:client] if args.key?(:client)
1050
+ @client_version = args[:client_version] if args.key?(:client_version)
1051
+ @conditions = args[:conditions] if args.key?(:conditions)
1052
+ @create_time = args[:create_time] if args.key?(:create_time)
1053
+ @creator = args[:creator] if args.key?(:creator)
1054
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
1055
+ @description = args[:description] if args.key?(:description)
1056
+ @etag = args[:etag] if args.key?(:etag)
1057
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1058
+ @generation = args[:generation] if args.key?(:generation)
1059
+ @ingress = args[:ingress] if args.key?(:ingress)
1060
+ @labels = args[:labels] if args.key?(:labels)
1061
+ @last_modifier = args[:last_modifier] if args.key?(:last_modifier)
1062
+ @latest_created_revision = args[:latest_created_revision] if args.key?(:latest_created_revision)
1063
+ @latest_ready_revision = args[:latest_ready_revision] if args.key?(:latest_ready_revision)
1064
+ @launch_stage = args[:launch_stage] if args.key?(:launch_stage)
1065
+ @name = args[:name] if args.key?(:name)
1066
+ @observed_generation = args[:observed_generation] if args.key?(:observed_generation)
1067
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
1068
+ @template = args[:template] if args.key?(:template)
1069
+ @terminal_condition = args[:terminal_condition] if args.key?(:terminal_condition)
1070
+ @traffic = args[:traffic] if args.key?(:traffic)
1071
+ @traffic_statuses = args[:traffic_statuses] if args.key?(:traffic_statuses)
1072
+ @uid = args[:uid] if args.key?(:uid)
1073
+ @update_time = args[:update_time] if args.key?(:update_time)
1074
+ @uri = args[:uri] if args.key?(:uri)
1075
+ end
1076
+ end
1077
+
1078
+ # Holds a single traffic routing entry for the Service. Allocations can be done
1079
+ # to a specific Revision name, or pointing to the latest Ready Revision.
1080
+ class GoogleCloudRunOpV2TrafficTarget
1081
+ include Google::Apis::Core::Hashable
1082
+
1083
+ # Specifies percent of the traffic to this Revision. This defaults to zero if
1084
+ # unspecified. Cloud Run currently requires 100 percent for a single
1085
+ # TrafficTarget entry.
1086
+ # Corresponds to the JSON property `percent`
1087
+ # @return [Fixnum]
1088
+ attr_accessor :percent
1089
+
1090
+ # Revision to which to send this portion of traffic, if traffic allocation is by
1091
+ # revision.
1092
+ # Corresponds to the JSON property `revision`
1093
+ # @return [String]
1094
+ attr_accessor :revision
1095
+
1096
+ # Indicates a string to be part of the URI to exclusively reference this target.
1097
+ # Corresponds to the JSON property `tag`
1098
+ # @return [String]
1099
+ attr_accessor :tag
1100
+
1101
+ # The allocation type for this traffic target.
1102
+ # Corresponds to the JSON property `type`
1103
+ # @return [String]
1104
+ attr_accessor :type
1105
+
1106
+ def initialize(**args)
1107
+ update!(**args)
1108
+ end
1109
+
1110
+ # Update properties of this object
1111
+ def update!(**args)
1112
+ @percent = args[:percent] if args.key?(:percent)
1113
+ @revision = args[:revision] if args.key?(:revision)
1114
+ @tag = args[:tag] if args.key?(:tag)
1115
+ @type = args[:type] if args.key?(:type)
1116
+ end
1117
+ end
1118
+
1119
+ # Represents the observed state of a single `TrafficTarget` entry.
1120
+ class GoogleCloudRunOpV2TrafficTargetStatus
1121
+ include Google::Apis::Core::Hashable
1122
+
1123
+ # Specifies percent of the traffic to this Revision.
1124
+ # Corresponds to the JSON property `percent`
1125
+ # @return [Fixnum]
1126
+ attr_accessor :percent
1127
+
1128
+ # Revision to which this traffic is sent.
1129
+ # Corresponds to the JSON property `revision`
1130
+ # @return [String]
1131
+ attr_accessor :revision
1132
+
1133
+ # Indicates the string used in the URI to exclusively reference this target.
1134
+ # Corresponds to the JSON property `tag`
1135
+ # @return [String]
1136
+ attr_accessor :tag
1137
+
1138
+ # The allocation type for this traffic target.
1139
+ # Corresponds to the JSON property `type`
1140
+ # @return [String]
1141
+ attr_accessor :type
1142
+
1143
+ # Displays the target URI.
1144
+ # Corresponds to the JSON property `uri`
1145
+ # @return [String]
1146
+ attr_accessor :uri
1147
+
1148
+ def initialize(**args)
1149
+ update!(**args)
1150
+ end
1151
+
1152
+ # Update properties of this object
1153
+ def update!(**args)
1154
+ @percent = args[:percent] if args.key?(:percent)
1155
+ @revision = args[:revision] if args.key?(:revision)
1156
+ @tag = args[:tag] if args.key?(:tag)
1157
+ @type = args[:type] if args.key?(:type)
1158
+ @uri = args[:uri] if args.key?(:uri)
1159
+ end
1160
+ end
1161
+
1162
+ # VersionToPath maps a specific version of a secret to a relative file to mount
1163
+ # to, relative to VolumeMount's mount_path.
1164
+ class GoogleCloudRunOpV2VersionToPath
1165
+ include Google::Apis::Core::Hashable
1166
+
1167
+ # Integer octal mode bits to use on this file, must be a value between 01 and
1168
+ # 0777 (octal). If 0 or not set, the Volume's default mode will be used. Notes *
1169
+ # Internally, a umask of 0222 will be applied to any non-zero value. * This is
1170
+ # an integer representation of the mode bits. So, the octal integer value should
1171
+ # look exactly as the chmod numeric notation with a leading zero. Some examples:
1172
+ # for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=
1173
+ # rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx),
1174
+ # set to 0755 (octal) or 493 (base-10). * This might be in conflict with other
1175
+ # options that affect the file mode, like fsGroup, and the result can be other
1176
+ # mode bits set.
1177
+ # Corresponds to the JSON property `mode`
1178
+ # @return [Fixnum]
1179
+ attr_accessor :mode
1180
+
1181
+ # Required. The relative path of the secret in the container.
1182
+ # Corresponds to the JSON property `path`
1183
+ # @return [String]
1184
+ attr_accessor :path
1185
+
1186
+ # The Cloud Secret Manager secret version. Can be 'latest' for the latest value
1187
+ # or an integer for a specific version.
1188
+ # Corresponds to the JSON property `version`
1189
+ # @return [String]
1190
+ attr_accessor :version
1191
+
1192
+ def initialize(**args)
1193
+ update!(**args)
1194
+ end
1195
+
1196
+ # Update properties of this object
1197
+ def update!(**args)
1198
+ @mode = args[:mode] if args.key?(:mode)
1199
+ @path = args[:path] if args.key?(:path)
1200
+ @version = args[:version] if args.key?(:version)
1201
+ end
1202
+ end
1203
+
1204
+ # Volume represents a named volume in a container.
1205
+ class GoogleCloudRunOpV2Volume
1206
+ include Google::Apis::Core::Hashable
1207
+
1208
+ # Represents a specific Cloud SQL instance.
1209
+ # Corresponds to the JSON property `cloudSqlInstance`
1210
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2CloudSqlInstance]
1211
+ attr_accessor :cloud_sql_instance
1212
+
1213
+ # Required. Volume's name.
1214
+ # Corresponds to the JSON property `name`
1215
+ # @return [String]
1216
+ attr_accessor :name
1217
+
1218
+ # The secret's value will be presented as the content of a file whose name is
1219
+ # defined in the item path. If no items are defined, the name of the file is the
1220
+ # secret.
1221
+ # Corresponds to the JSON property `secret`
1222
+ # @return [Google::Apis::RunV2::GoogleCloudRunOpV2SecretVolumeSource]
1223
+ attr_accessor :secret
1224
+
1225
+ def initialize(**args)
1226
+ update!(**args)
1227
+ end
1228
+
1229
+ # Update properties of this object
1230
+ def update!(**args)
1231
+ @cloud_sql_instance = args[:cloud_sql_instance] if args.key?(:cloud_sql_instance)
1232
+ @name = args[:name] if args.key?(:name)
1233
+ @secret = args[:secret] if args.key?(:secret)
1234
+ end
1235
+ end
1236
+
1237
+ # VolumeMount describes a mounting of a Volume within a container.
1238
+ class GoogleCloudRunOpV2VolumeMount
1239
+ include Google::Apis::Core::Hashable
1240
+
1241
+ # Required. Path within the container at which the volume should be mounted.
1242
+ # Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must
1243
+ # otherwise be `/cloudsql`. All instances defined in the Volume will be
1244
+ # available as `/cloudsql/[instance]`. For more information on Cloud SQL volumes,
1245
+ # visit https://cloud.google.com/sql/docs/mysql/connect-run
1246
+ # Corresponds to the JSON property `mountPath`
1247
+ # @return [String]
1248
+ attr_accessor :mount_path
1249
+
1250
+ # Required. This must match the Name of a Volume.
1251
+ # Corresponds to the JSON property `name`
1252
+ # @return [String]
1253
+ attr_accessor :name
1254
+
1255
+ def initialize(**args)
1256
+ update!(**args)
1257
+ end
1258
+
1259
+ # Update properties of this object
1260
+ def update!(**args)
1261
+ @mount_path = args[:mount_path] if args.key?(:mount_path)
1262
+ @name = args[:name] if args.key?(:name)
1263
+ end
1264
+ end
1265
+
1266
+ # VPC Access settings. For more information on creating a VPC Connector, visit
1267
+ # https://cloud.google.com/vpc/docs/configure-serverless-vpc-access For
1268
+ # information on how to configure Cloud Run with an existing VPC Connector,
1269
+ # visit https://cloud.google.com/run/docs/configuring/connecting-vpc
1270
+ class GoogleCloudRunOpV2VpcAccess
1271
+ include Google::Apis::Core::Hashable
1272
+
1273
+ # VPC Access connector name. Format: projects/`project`/locations/`location`/
1274
+ # connectors/`connector`
1275
+ # Corresponds to the JSON property `connector`
1276
+ # @return [String]
1277
+ attr_accessor :connector
1278
+
1279
+ # Traffic VPC egress settings.
1280
+ # Corresponds to the JSON property `egress`
1281
+ # @return [String]
1282
+ attr_accessor :egress
1283
+
1284
+ def initialize(**args)
1285
+ update!(**args)
1286
+ end
1287
+
1288
+ # Update properties of this object
1289
+ def update!(**args)
1290
+ @connector = args[:connector] if args.key?(:connector)
1291
+ @egress = args[:egress] if args.key?(:egress)
1292
+ end
1293
+ end
1294
+
1295
+ # Specifies the audit configuration for a service. The configuration determines
1296
+ # which permission types are logged, and what identities, if any, are exempted
1297
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
1298
+ # are AuditConfigs for both `allServices` and a specific service, the union of
1299
+ # the two AuditConfigs is used for that service: the log_types specified in each
1300
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
1301
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
1302
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
1303
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
1304
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
1305
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
1306
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
1307
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
1308
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
1309
+ # DATA_WRITE logging.
1310
+ class GoogleIamV1AuditConfig
1311
+ include Google::Apis::Core::Hashable
1312
+
1313
+ # The configuration for logging of each type of permission.
1314
+ # Corresponds to the JSON property `auditLogConfigs`
1315
+ # @return [Array<Google::Apis::RunV2::GoogleIamV1AuditLogConfig>]
1316
+ attr_accessor :audit_log_configs
1317
+
1318
+ # Specifies a service that will be enabled for audit logging. For example, `
1319
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
1320
+ # value that covers all services.
1321
+ # Corresponds to the JSON property `service`
1322
+ # @return [String]
1323
+ attr_accessor :service
1324
+
1325
+ def initialize(**args)
1326
+ update!(**args)
1327
+ end
1328
+
1329
+ # Update properties of this object
1330
+ def update!(**args)
1331
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
1332
+ @service = args[:service] if args.key?(:service)
1333
+ end
1334
+ end
1335
+
1336
+ # Provides the configuration for logging a type of permissions. Example: ` "
1337
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
1338
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
1339
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
1340
+ # DATA_READ logging.
1341
+ class GoogleIamV1AuditLogConfig
1342
+ include Google::Apis::Core::Hashable
1343
+
1344
+ # Specifies the identities that do not cause logging for this type of permission.
1345
+ # Follows the same format of Binding.members.
1346
+ # Corresponds to the JSON property `exemptedMembers`
1347
+ # @return [Array<String>]
1348
+ attr_accessor :exempted_members
1349
+
1350
+ # The log type that this config enables.
1351
+ # Corresponds to the JSON property `logType`
1352
+ # @return [String]
1353
+ attr_accessor :log_type
1354
+
1355
+ def initialize(**args)
1356
+ update!(**args)
1357
+ end
1358
+
1359
+ # Update properties of this object
1360
+ def update!(**args)
1361
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
1362
+ @log_type = args[:log_type] if args.key?(:log_type)
1363
+ end
1364
+ end
1365
+
1366
+ # Associates `members`, or principals, with a `role`.
1367
+ class GoogleIamV1Binding
1368
+ include Google::Apis::Core::Hashable
1369
+
1370
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1371
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1372
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1373
+ # "Summary size limit" description: "Determines if a summary is less than 100
1374
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1375
+ # Requestor is owner" description: "Determines if requestor is the document
1376
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1377
+ # Logic): title: "Public documents" description: "Determine whether the document
1378
+ # should be publicly visible" expression: "document.type != 'private' &&
1379
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1380
+ # string" description: "Create a notification string with a timestamp."
1381
+ # expression: "'New message received at ' + string(document.create_time)" The
1382
+ # exact variables and functions that may be referenced within an expression are
1383
+ # determined by the service that evaluates it. See the service documentation for
1384
+ # additional information.
1385
+ # Corresponds to the JSON property `condition`
1386
+ # @return [Google::Apis::RunV2::GoogleTypeExpr]
1387
+ attr_accessor :condition
1388
+
1389
+ # Specifies the principals requesting access for a Cloud Platform resource. `
1390
+ # members` can have the following values: * `allUsers`: A special identifier
1391
+ # that represents anyone who is on the internet; with or without a Google
1392
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
1393
+ # anyone who is authenticated with a Google account or a service account. * `
1394
+ # user:`emailid``: An email address that represents a specific Google account.
1395
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
1396
+ # address that represents a service account. For example, `my-other-app@appspot.
1397
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
1398
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
1399
+ # `uniqueid``: An email address (plus unique identifier) representing a user
1400
+ # that has been recently deleted. For example, `alice@example.com?uid=
1401
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
1402
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
1403
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
1404
+ # identifier) representing a service account that has been recently deleted. For
1405
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
1406
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
1407
+ # emailid`` and the undeleted service account retains the role in the binding. *
1408
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
1409
+ # identifier) representing a Google group that has been recently deleted. For
1410
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
1411
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
1412
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
1413
+ # primary) that represents all the users of that domain. For example, `google.
1414
+ # com` or `example.com`.
1415
+ # Corresponds to the JSON property `members`
1416
+ # @return [Array<String>]
1417
+ attr_accessor :members
1418
+
1419
+ # Role that is assigned to the list of `members`, or principals. For example, `
1420
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
1421
+ # Corresponds to the JSON property `role`
1422
+ # @return [String]
1423
+ attr_accessor :role
1424
+
1425
+ def initialize(**args)
1426
+ update!(**args)
1427
+ end
1428
+
1429
+ # Update properties of this object
1430
+ def update!(**args)
1431
+ @condition = args[:condition] if args.key?(:condition)
1432
+ @members = args[:members] if args.key?(:members)
1433
+ @role = args[:role] if args.key?(:role)
1434
+ end
1435
+ end
1436
+
1437
+ # An Identity and Access Management (IAM) policy, which specifies access
1438
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1439
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1440
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1441
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1442
+ # an IAM predefined role or a user-created custom role. For some types of Google
1443
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1444
+ # logical expression that allows access to a resource only if the expression
1445
+ # evaluates to `true`. A condition can add constraints based on attributes of
1446
+ # the request, the resource, or both. To learn which resources support
1447
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1448
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1449
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1450
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1451
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1452
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1453
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1454
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1455
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1456
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1457
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1458
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1459
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1460
+ # access description: Does not grant access after Sep 2020 expression: request.
1461
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1462
+ # a description of IAM and its features, see the [IAM documentation](https://
1463
+ # cloud.google.com/iam/docs/).
1464
+ class GoogleIamV1Policy
1465
+ include Google::Apis::Core::Hashable
1466
+
1467
+ # Specifies cloud audit logging configuration for this policy.
1468
+ # Corresponds to the JSON property `auditConfigs`
1469
+ # @return [Array<Google::Apis::RunV2::GoogleIamV1AuditConfig>]
1470
+ attr_accessor :audit_configs
1471
+
1472
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1473
+ # specify a `condition` that determines how and when the `bindings` are applied.
1474
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1475
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1476
+ # can be Google groups. Each occurrence of a principal counts towards these
1477
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1478
+ # example.com`, and not to any other principal, then you can add another 1,450
1479
+ # principals to the `bindings` in the `Policy`.
1480
+ # Corresponds to the JSON property `bindings`
1481
+ # @return [Array<Google::Apis::RunV2::GoogleIamV1Binding>]
1482
+ attr_accessor :bindings
1483
+
1484
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1485
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1486
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1487
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1488
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1489
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1490
+ # applied to the same version of the policy. **Important:** If you use IAM
1491
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1492
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1493
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1494
+ # are lost.
1495
+ # Corresponds to the JSON property `etag`
1496
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1497
+ # @return [String]
1498
+ attr_accessor :etag
1499
+
1500
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1501
+ # Requests that specify an invalid value are rejected. Any operation that
1502
+ # affects conditional role bindings must specify version `3`. This requirement
1503
+ # applies to the following operations: * Getting a policy that includes a
1504
+ # conditional role binding * Adding a conditional role binding to a policy *
1505
+ # Changing a conditional role binding in a policy * Removing any role binding,
1506
+ # with or without a condition, from a policy that includes conditions **
1507
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1508
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1509
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1510
+ # conditions in the version `3` policy are lost. If a policy does not include
1511
+ # any conditions, operations on that policy may specify any valid version or
1512
+ # leave the field unset. To learn which resources support conditions in their
1513
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1514
+ # conditions/resource-policies).
1515
+ # Corresponds to the JSON property `version`
1516
+ # @return [Fixnum]
1517
+ attr_accessor :version
1518
+
1519
+ def initialize(**args)
1520
+ update!(**args)
1521
+ end
1522
+
1523
+ # Update properties of this object
1524
+ def update!(**args)
1525
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1526
+ @bindings = args[:bindings] if args.key?(:bindings)
1527
+ @etag = args[:etag] if args.key?(:etag)
1528
+ @version = args[:version] if args.key?(:version)
1529
+ end
1530
+ end
1531
+
1532
+ # Request message for `SetIamPolicy` method.
1533
+ class GoogleIamV1SetIamPolicyRequest
1534
+ include Google::Apis::Core::Hashable
1535
+
1536
+ # An Identity and Access Management (IAM) policy, which specifies access
1537
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1538
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1539
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1540
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1541
+ # an IAM predefined role or a user-created custom role. For some types of Google
1542
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1543
+ # logical expression that allows access to a resource only if the expression
1544
+ # evaluates to `true`. A condition can add constraints based on attributes of
1545
+ # the request, the resource, or both. To learn which resources support
1546
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1547
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1548
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1549
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1550
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1551
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1552
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1553
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1554
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1555
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1556
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1557
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1558
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1559
+ # access description: Does not grant access after Sep 2020 expression: request.
1560
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1561
+ # a description of IAM and its features, see the [IAM documentation](https://
1562
+ # cloud.google.com/iam/docs/).
1563
+ # Corresponds to the JSON property `policy`
1564
+ # @return [Google::Apis::RunV2::GoogleIamV1Policy]
1565
+ attr_accessor :policy
1566
+
1567
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1568
+ # the fields in the mask will be modified. If no mask is provided, the following
1569
+ # default mask is used: `paths: "bindings, etag"`
1570
+ # Corresponds to the JSON property `updateMask`
1571
+ # @return [String]
1572
+ attr_accessor :update_mask
1573
+
1574
+ def initialize(**args)
1575
+ update!(**args)
1576
+ end
1577
+
1578
+ # Update properties of this object
1579
+ def update!(**args)
1580
+ @policy = args[:policy] if args.key?(:policy)
1581
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1582
+ end
1583
+ end
1584
+
1585
+ # Request message for `TestIamPermissions` method.
1586
+ class GoogleIamV1TestIamPermissionsRequest
1587
+ include Google::Apis::Core::Hashable
1588
+
1589
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1590
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
1591
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1592
+ # Corresponds to the JSON property `permissions`
1593
+ # @return [Array<String>]
1594
+ attr_accessor :permissions
1595
+
1596
+ def initialize(**args)
1597
+ update!(**args)
1598
+ end
1599
+
1600
+ # Update properties of this object
1601
+ def update!(**args)
1602
+ @permissions = args[:permissions] if args.key?(:permissions)
1603
+ end
1604
+ end
1605
+
1606
+ # Response message for `TestIamPermissions` method.
1607
+ class GoogleIamV1TestIamPermissionsResponse
1608
+ include Google::Apis::Core::Hashable
1609
+
1610
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1611
+ # Corresponds to the JSON property `permissions`
1612
+ # @return [Array<String>]
1613
+ attr_accessor :permissions
1614
+
1615
+ def initialize(**args)
1616
+ update!(**args)
1617
+ end
1618
+
1619
+ # Update properties of this object
1620
+ def update!(**args)
1621
+ @permissions = args[:permissions] if args.key?(:permissions)
1622
+ end
1623
+ end
1624
+
1625
+ # The response message for Operations.ListOperations.
1626
+ class GoogleLongrunningListOperationsResponse
1627
+ include Google::Apis::Core::Hashable
1628
+
1629
+ # The standard List next-page token.
1630
+ # Corresponds to the JSON property `nextPageToken`
1631
+ # @return [String]
1632
+ attr_accessor :next_page_token
1633
+
1634
+ # A list of operations that matches the specified filter in the request.
1635
+ # Corresponds to the JSON property `operations`
1636
+ # @return [Array<Google::Apis::RunV2::GoogleLongrunningOperation>]
1637
+ attr_accessor :operations
1638
+
1639
+ def initialize(**args)
1640
+ update!(**args)
1641
+ end
1642
+
1643
+ # Update properties of this object
1644
+ def update!(**args)
1645
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1646
+ @operations = args[:operations] if args.key?(:operations)
1647
+ end
1648
+ end
1649
+
1650
+ # This resource represents a long-running operation that is the result of a
1651
+ # network API call.
1652
+ class GoogleLongrunningOperation
1653
+ include Google::Apis::Core::Hashable
1654
+
1655
+ # If the value is `false`, it means the operation is still in progress. If `true`
1656
+ # , the operation is completed, and either `error` or `response` is available.
1657
+ # Corresponds to the JSON property `done`
1658
+ # @return [Boolean]
1659
+ attr_accessor :done
1660
+ alias_method :done?, :done
1661
+
1662
+ # The `Status` type defines a logical error model that is suitable for different
1663
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1664
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1665
+ # data: error code, error message, and error details. You can find out more
1666
+ # about this error model and how to work with it in the [API Design Guide](https:
1667
+ # //cloud.google.com/apis/design/errors).
1668
+ # Corresponds to the JSON property `error`
1669
+ # @return [Google::Apis::RunV2::GoogleRpcStatus]
1670
+ attr_accessor :error
1671
+
1672
+ # Service-specific metadata associated with the operation. It typically contains
1673
+ # progress information and common metadata such as create time. Some services
1674
+ # might not provide such metadata. Any method that returns a long-running
1675
+ # operation should document the metadata type, if any.
1676
+ # Corresponds to the JSON property `metadata`
1677
+ # @return [Hash<String,Object>]
1678
+ attr_accessor :metadata
1679
+
1680
+ # The server-assigned name, which is only unique within the same service that
1681
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1682
+ # be a resource name ending with `operations/`unique_id``.
1683
+ # Corresponds to the JSON property `name`
1684
+ # @return [String]
1685
+ attr_accessor :name
1686
+
1687
+ # The normal response of the operation in case of success. If the original
1688
+ # method returns no data on success, such as `Delete`, the response is `google.
1689
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1690
+ # the response should be the resource. For other methods, the response should
1691
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1692
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1693
+ # response type is `TakeSnapshotResponse`.
1694
+ # Corresponds to the JSON property `response`
1695
+ # @return [Hash<String,Object>]
1696
+ attr_accessor :response
1697
+
1698
+ def initialize(**args)
1699
+ update!(**args)
1700
+ end
1701
+
1702
+ # Update properties of this object
1703
+ def update!(**args)
1704
+ @done = args[:done] if args.key?(:done)
1705
+ @error = args[:error] if args.key?(:error)
1706
+ @metadata = args[:metadata] if args.key?(:metadata)
1707
+ @name = args[:name] if args.key?(:name)
1708
+ @response = args[:response] if args.key?(:response)
1709
+ end
1710
+ end
1711
+
1712
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1713
+ # messages in your APIs. A typical example is to use it as the request or the
1714
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1715
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
1716
+ # `Empty` is empty JSON object ````.
1717
+ class GoogleProtobufEmpty
1718
+ include Google::Apis::Core::Hashable
1719
+
1720
+ def initialize(**args)
1721
+ update!(**args)
1722
+ end
1723
+
1724
+ # Update properties of this object
1725
+ def update!(**args)
1726
+ end
1727
+ end
1728
+
1729
+ # The `Status` type defines a logical error model that is suitable for different
1730
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1731
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1732
+ # data: error code, error message, and error details. You can find out more
1733
+ # about this error model and how to work with it in the [API Design Guide](https:
1734
+ # //cloud.google.com/apis/design/errors).
1735
+ class GoogleRpcStatus
1736
+ include Google::Apis::Core::Hashable
1737
+
1738
+ # The status code, which should be an enum value of google.rpc.Code.
1739
+ # Corresponds to the JSON property `code`
1740
+ # @return [Fixnum]
1741
+ attr_accessor :code
1742
+
1743
+ # A list of messages that carry the error details. There is a common set of
1744
+ # message types for APIs to use.
1745
+ # Corresponds to the JSON property `details`
1746
+ # @return [Array<Hash<String,Object>>]
1747
+ attr_accessor :details
1748
+
1749
+ # A developer-facing error message, which should be in English. Any user-facing
1750
+ # error message should be localized and sent in the google.rpc.Status.details
1751
+ # field, or localized by the client.
1752
+ # Corresponds to the JSON property `message`
1753
+ # @return [String]
1754
+ attr_accessor :message
1755
+
1756
+ def initialize(**args)
1757
+ update!(**args)
1758
+ end
1759
+
1760
+ # Update properties of this object
1761
+ def update!(**args)
1762
+ @code = args[:code] if args.key?(:code)
1763
+ @details = args[:details] if args.key?(:details)
1764
+ @message = args[:message] if args.key?(:message)
1765
+ end
1766
+ end
1767
+
1768
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1769
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1770
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1771
+ # "Summary size limit" description: "Determines if a summary is less than 100
1772
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1773
+ # Requestor is owner" description: "Determines if requestor is the document
1774
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1775
+ # Logic): title: "Public documents" description: "Determine whether the document
1776
+ # should be publicly visible" expression: "document.type != 'private' &&
1777
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1778
+ # string" description: "Create a notification string with a timestamp."
1779
+ # expression: "'New message received at ' + string(document.create_time)" The
1780
+ # exact variables and functions that may be referenced within an expression are
1781
+ # determined by the service that evaluates it. See the service documentation for
1782
+ # additional information.
1783
+ class GoogleTypeExpr
1784
+ include Google::Apis::Core::Hashable
1785
+
1786
+ # Optional. Description of the expression. This is a longer text which describes
1787
+ # the expression, e.g. when hovered over it in a UI.
1788
+ # Corresponds to the JSON property `description`
1789
+ # @return [String]
1790
+ attr_accessor :description
1791
+
1792
+ # Textual representation of an expression in Common Expression Language syntax.
1793
+ # Corresponds to the JSON property `expression`
1794
+ # @return [String]
1795
+ attr_accessor :expression
1796
+
1797
+ # Optional. String indicating the location of the expression for error reporting,
1798
+ # e.g. a file name and a position in the file.
1799
+ # Corresponds to the JSON property `location`
1800
+ # @return [String]
1801
+ attr_accessor :location
1802
+
1803
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
1804
+ # This can be used e.g. in UIs which allow to enter the expression.
1805
+ # Corresponds to the JSON property `title`
1806
+ # @return [String]
1807
+ attr_accessor :title
1808
+
1809
+ def initialize(**args)
1810
+ update!(**args)
1811
+ end
1812
+
1813
+ # Update properties of this object
1814
+ def update!(**args)
1815
+ @description = args[:description] if args.key?(:description)
1816
+ @expression = args[:expression] if args.key?(:expression)
1817
+ @location = args[:location] if args.key?(:location)
1818
+ @title = args[:title] if args.key?(:title)
1819
+ end
1820
+ end
1821
+ end
1822
+ end
1823
+ end