google-apis-run_v2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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