google-apis-cloudfunctions_v2beta 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1724 @@
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 CloudfunctionsV2beta
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts jose@example.com from DATA_READ logging, and aliya@example.com from
39
+ # DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # Associates `members`, or principals, with a `role`.
97
+ class Binding
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
101
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
102
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
103
+ # "Summary size limit" description: "Determines if a summary is less than 100
104
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
105
+ # Requestor is owner" description: "Determines if requestor is the document
106
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
107
+ # Logic): title: "Public documents" description: "Determine whether the document
108
+ # should be publicly visible" expression: "document.type != 'private' &&
109
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
110
+ # string" description: "Create a notification string with a timestamp."
111
+ # expression: "'New message received at ' + string(document.create_time)" The
112
+ # exact variables and functions that may be referenced within an expression are
113
+ # determined by the service that evaluates it. See the service documentation for
114
+ # additional information.
115
+ # Corresponds to the JSON property `condition`
116
+ # @return [Google::Apis::CloudfunctionsV2beta::Expr]
117
+ attr_accessor :condition
118
+
119
+ # Specifies the principals requesting access for a Cloud Platform resource. `
120
+ # members` can have the following values: * `allUsers`: A special identifier
121
+ # that represents anyone who is on the internet; with or without a Google
122
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
123
+ # anyone who is authenticated with a Google account or a service account. * `
124
+ # user:`emailid``: An email address that represents a specific Google account.
125
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
126
+ # address that represents a service account. For example, `my-other-app@appspot.
127
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
128
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
129
+ # `uniqueid``: An email address (plus unique identifier) representing a user
130
+ # that has been recently deleted. For example, `alice@example.com?uid=
131
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
132
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
133
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
134
+ # identifier) representing a service account that has been recently deleted. For
135
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
136
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
137
+ # emailid`` and the undeleted service account retains the role in the binding. *
138
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
139
+ # identifier) representing a Google group that has been recently deleted. For
140
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
141
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
142
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
143
+ # primary) that represents all the users of that domain. For example, `google.
144
+ # com` or `example.com`.
145
+ # Corresponds to the JSON property `members`
146
+ # @return [Array<String>]
147
+ attr_accessor :members
148
+
149
+ # Role that is assigned to the list of `members`, or principals. For example, `
150
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
151
+ # Corresponds to the JSON property `role`
152
+ # @return [String]
153
+ attr_accessor :role
154
+
155
+ def initialize(**args)
156
+ update!(**args)
157
+ end
158
+
159
+ # Update properties of this object
160
+ def update!(**args)
161
+ @condition = args[:condition] if args.key?(:condition)
162
+ @members = args[:members] if args.key?(:members)
163
+ @role = args[:role] if args.key?(:role)
164
+ end
165
+ end
166
+
167
+ # Describes the Build step of the function that builds a container from the
168
+ # given source.
169
+ class BuildConfig
170
+ include Google::Apis::Core::Hashable
171
+
172
+ # Output only. The Cloud Build name of the latest successful deployment of the
173
+ # function.
174
+ # Corresponds to the JSON property `build`
175
+ # @return [String]
176
+ attr_accessor :build
177
+
178
+ # Optional. User managed repository created in Artifact Registry optionally with
179
+ # a customer managed encryption key. This is the repository to which the
180
+ # function docker image will be pushed after it is built by Cloud Build. If
181
+ # unspecified, GCF will create and use a repository named 'gcf-artifacts' for
182
+ # every deployed region. It must match the pattern `projects/`project`/locations/
183
+ # `location`/repositories/`repository``. Cross-project repositories are not
184
+ # supported. Cross-location repositories are not supported. Repository format
185
+ # must be 'DOCKER'.
186
+ # Corresponds to the JSON property `dockerRepository`
187
+ # @return [String]
188
+ attr_accessor :docker_repository
189
+
190
+ # The name of the function (as defined in source code) that will be executed.
191
+ # Defaults to the resource name suffix, if not specified. For backward
192
+ # compatibility, if function with given name is not found, then the system will
193
+ # try to use function named "function". For Node.js this is name of a function
194
+ # exported by the module specified in `source_location`.
195
+ # Corresponds to the JSON property `entryPoint`
196
+ # @return [String]
197
+ attr_accessor :entry_point
198
+
199
+ # User-provided build-time environment variables for the function
200
+ # Corresponds to the JSON property `environmentVariables`
201
+ # @return [Hash<String,String>]
202
+ attr_accessor :environment_variables
203
+
204
+ # The runtime in which to run the function. Required when deploying a new
205
+ # function, optional when updating an existing function. For a complete list of
206
+ # possible choices, see the [`gcloud` command reference](https://cloud.google.
207
+ # com/sdk/gcloud/reference/functions/deploy#--runtime).
208
+ # Corresponds to the JSON property `runtime`
209
+ # @return [String]
210
+ attr_accessor :runtime
211
+
212
+ # The location of the function source code.
213
+ # Corresponds to the JSON property `source`
214
+ # @return [Google::Apis::CloudfunctionsV2beta::Source]
215
+ attr_accessor :source
216
+
217
+ # Provenance of the source. Ways to find the original source, or verify that
218
+ # some source was used for this build.
219
+ # Corresponds to the JSON property `sourceProvenance`
220
+ # @return [Google::Apis::CloudfunctionsV2beta::SourceProvenance]
221
+ attr_accessor :source_provenance
222
+
223
+ # Name of the Cloud Build Custom Worker Pool that should be used to build the
224
+ # function. The format of this field is `projects/`project`/locations/`region`/
225
+ # workerPools/`workerPool`` where `project` and `region` are the project id and
226
+ # region respectively where the worker pool is defined and `workerPool` is the
227
+ # short name of the worker pool. If the project id is not the same as the
228
+ # function, then the Cloud Functions Service Agent (service-@gcf-admin-robot.iam.
229
+ # gserviceaccount.com) must be granted the role Cloud Build Custom Workers
230
+ # Builder (roles/cloudbuild.customworkers.builder) in the project.
231
+ # Corresponds to the JSON property `workerPool`
232
+ # @return [String]
233
+ attr_accessor :worker_pool
234
+
235
+ def initialize(**args)
236
+ update!(**args)
237
+ end
238
+
239
+ # Update properties of this object
240
+ def update!(**args)
241
+ @build = args[:build] if args.key?(:build)
242
+ @docker_repository = args[:docker_repository] if args.key?(:docker_repository)
243
+ @entry_point = args[:entry_point] if args.key?(:entry_point)
244
+ @environment_variables = args[:environment_variables] if args.key?(:environment_variables)
245
+ @runtime = args[:runtime] if args.key?(:runtime)
246
+ @source = args[:source] if args.key?(:source)
247
+ @source_provenance = args[:source_provenance] if args.key?(:source_provenance)
248
+ @worker_pool = args[:worker_pool] if args.key?(:worker_pool)
249
+ end
250
+ end
251
+
252
+ # Filters events based on exact matches on the CloudEvents attributes.
253
+ class EventFilter
254
+ include Google::Apis::Core::Hashable
255
+
256
+ # Required. The name of a CloudEvents attribute.
257
+ # Corresponds to the JSON property `attribute`
258
+ # @return [String]
259
+ attr_accessor :attribute
260
+
261
+ # Optional. The operator used for matching the events with the value of the
262
+ # filter. If not specified, only events that have an exact key-value pair
263
+ # specified in the filter are matched. The only allowed value is `match-path-
264
+ # pattern`.
265
+ # Corresponds to the JSON property `operator`
266
+ # @return [String]
267
+ attr_accessor :operator
268
+
269
+ # Required. The value for the attribute.
270
+ # Corresponds to the JSON property `value`
271
+ # @return [String]
272
+ attr_accessor :value
273
+
274
+ def initialize(**args)
275
+ update!(**args)
276
+ end
277
+
278
+ # Update properties of this object
279
+ def update!(**args)
280
+ @attribute = args[:attribute] if args.key?(:attribute)
281
+ @operator = args[:operator] if args.key?(:operator)
282
+ @value = args[:value] if args.key?(:value)
283
+ end
284
+ end
285
+
286
+ # Describes EventTrigger, used to request events to be sent from another service.
287
+ class EventTrigger
288
+ include Google::Apis::Core::Hashable
289
+
290
+ # Criteria used to filter events.
291
+ # Corresponds to the JSON property `eventFilters`
292
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::EventFilter>]
293
+ attr_accessor :event_filters
294
+
295
+ # Required. The type of event to observe. For example: `google.cloud.audit.log.
296
+ # v1.written` or `google.cloud.pubsub.topic.v1.messagePublished`.
297
+ # Corresponds to the JSON property `eventType`
298
+ # @return [String]
299
+ attr_accessor :event_type
300
+
301
+ # Optional. The name of a Pub/Sub topic in the same project that will be used as
302
+ # the transport topic for the event delivery. Format: `projects/`project`/topics/
303
+ # `topic``. This is only valid for events of type `google.cloud.pubsub.topic.v1.
304
+ # messagePublished`. The topic provided here will not be deleted at function
305
+ # deletion.
306
+ # Corresponds to the JSON property `pubsubTopic`
307
+ # @return [String]
308
+ attr_accessor :pubsub_topic
309
+
310
+ # Optional. If unset, then defaults to ignoring failures (i.e. not retrying them)
311
+ # .
312
+ # Corresponds to the JSON property `retryPolicy`
313
+ # @return [String]
314
+ attr_accessor :retry_policy
315
+
316
+ # Optional. The email of the trigger's service account. The service account must
317
+ # have permission to invoke Cloud Run services, the permission is `run.routes.
318
+ # invoke`. If empty, defaults to the Compute Engine default service account: ``
319
+ # project_number`-compute@developer.gserviceaccount.com`.
320
+ # Corresponds to the JSON property `serviceAccountEmail`
321
+ # @return [String]
322
+ attr_accessor :service_account_email
323
+
324
+ # Output only. The resource name of the Eventarc trigger. The format of this
325
+ # field is `projects/`project`/locations/`region`/triggers/`trigger``.
326
+ # Corresponds to the JSON property `trigger`
327
+ # @return [String]
328
+ attr_accessor :trigger
329
+
330
+ # The region that the trigger will be in. The trigger will only receive events
331
+ # originating in this region. It can be the same region as the function, a
332
+ # different region or multi-region, or the global region. If not provided,
333
+ # defaults to the same region as the function.
334
+ # Corresponds to the JSON property `triggerRegion`
335
+ # @return [String]
336
+ attr_accessor :trigger_region
337
+
338
+ def initialize(**args)
339
+ update!(**args)
340
+ end
341
+
342
+ # Update properties of this object
343
+ def update!(**args)
344
+ @event_filters = args[:event_filters] if args.key?(:event_filters)
345
+ @event_type = args[:event_type] if args.key?(:event_type)
346
+ @pubsub_topic = args[:pubsub_topic] if args.key?(:pubsub_topic)
347
+ @retry_policy = args[:retry_policy] if args.key?(:retry_policy)
348
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
349
+ @trigger = args[:trigger] if args.key?(:trigger)
350
+ @trigger_region = args[:trigger_region] if args.key?(:trigger_region)
351
+ end
352
+ end
353
+
354
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
355
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
356
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
357
+ # "Summary size limit" description: "Determines if a summary is less than 100
358
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
359
+ # Requestor is owner" description: "Determines if requestor is the document
360
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
361
+ # Logic): title: "Public documents" description: "Determine whether the document
362
+ # should be publicly visible" expression: "document.type != 'private' &&
363
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
364
+ # string" description: "Create a notification string with a timestamp."
365
+ # expression: "'New message received at ' + string(document.create_time)" The
366
+ # exact variables and functions that may be referenced within an expression are
367
+ # determined by the service that evaluates it. See the service documentation for
368
+ # additional information.
369
+ class Expr
370
+ include Google::Apis::Core::Hashable
371
+
372
+ # Optional. Description of the expression. This is a longer text which describes
373
+ # the expression, e.g. when hovered over it in a UI.
374
+ # Corresponds to the JSON property `description`
375
+ # @return [String]
376
+ attr_accessor :description
377
+
378
+ # Textual representation of an expression in Common Expression Language syntax.
379
+ # Corresponds to the JSON property `expression`
380
+ # @return [String]
381
+ attr_accessor :expression
382
+
383
+ # Optional. String indicating the location of the expression for error reporting,
384
+ # e.g. a file name and a position in the file.
385
+ # Corresponds to the JSON property `location`
386
+ # @return [String]
387
+ attr_accessor :location
388
+
389
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
390
+ # This can be used e.g. in UIs which allow to enter the expression.
391
+ # Corresponds to the JSON property `title`
392
+ # @return [String]
393
+ attr_accessor :title
394
+
395
+ def initialize(**args)
396
+ update!(**args)
397
+ end
398
+
399
+ # Update properties of this object
400
+ def update!(**args)
401
+ @description = args[:description] if args.key?(:description)
402
+ @expression = args[:expression] if args.key?(:expression)
403
+ @location = args[:location] if args.key?(:location)
404
+ @title = args[:title] if args.key?(:title)
405
+ end
406
+ end
407
+
408
+ # Describes a Cloud Function that contains user computation executed in response
409
+ # to an event. It encapsulate function and triggers configurations.
410
+ class Function
411
+ include Google::Apis::Core::Hashable
412
+
413
+ # Describes the Build step of the function that builds a container from the
414
+ # given source.
415
+ # Corresponds to the JSON property `buildConfig`
416
+ # @return [Google::Apis::CloudfunctionsV2beta::BuildConfig]
417
+ attr_accessor :build_config
418
+
419
+ # User-provided description of a function.
420
+ # Corresponds to the JSON property `description`
421
+ # @return [String]
422
+ attr_accessor :description
423
+
424
+ # Describe whether the function is gen1 or gen2.
425
+ # Corresponds to the JSON property `environment`
426
+ # @return [String]
427
+ attr_accessor :environment
428
+
429
+ # Describes EventTrigger, used to request events to be sent from another service.
430
+ # Corresponds to the JSON property `eventTrigger`
431
+ # @return [Google::Apis::CloudfunctionsV2beta::EventTrigger]
432
+ attr_accessor :event_trigger
433
+
434
+ # Labels associated with this Cloud Function.
435
+ # Corresponds to the JSON property `labels`
436
+ # @return [Hash<String,String>]
437
+ attr_accessor :labels
438
+
439
+ # A user-defined name of the function. Function names must be unique globally
440
+ # and match pattern `projects/*/locations/*/functions/*`
441
+ # Corresponds to the JSON property `name`
442
+ # @return [String]
443
+ attr_accessor :name
444
+
445
+ # Describes the Service being deployed. Currently Supported : Cloud Run (fully
446
+ # managed).
447
+ # Corresponds to the JSON property `serviceConfig`
448
+ # @return [Google::Apis::CloudfunctionsV2beta::ServiceConfig]
449
+ attr_accessor :service_config
450
+
451
+ # Output only. State of the function.
452
+ # Corresponds to the JSON property `state`
453
+ # @return [String]
454
+ attr_accessor :state
455
+
456
+ # Output only. State Messages for this Cloud Function.
457
+ # Corresponds to the JSON property `stateMessages`
458
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::GoogleCloudFunctionsV2betaStateMessage>]
459
+ attr_accessor :state_messages
460
+
461
+ # Output only. The last update timestamp of a Cloud Function.
462
+ # Corresponds to the JSON property `updateTime`
463
+ # @return [String]
464
+ attr_accessor :update_time
465
+
466
+ def initialize(**args)
467
+ update!(**args)
468
+ end
469
+
470
+ # Update properties of this object
471
+ def update!(**args)
472
+ @build_config = args[:build_config] if args.key?(:build_config)
473
+ @description = args[:description] if args.key?(:description)
474
+ @environment = args[:environment] if args.key?(:environment)
475
+ @event_trigger = args[:event_trigger] if args.key?(:event_trigger)
476
+ @labels = args[:labels] if args.key?(:labels)
477
+ @name = args[:name] if args.key?(:name)
478
+ @service_config = args[:service_config] if args.key?(:service_config)
479
+ @state = args[:state] if args.key?(:state)
480
+ @state_messages = args[:state_messages] if args.key?(:state_messages)
481
+ @update_time = args[:update_time] if args.key?(:update_time)
482
+ end
483
+ end
484
+
485
+ # Request of `GenerateDownloadUrl` method.
486
+ class GenerateDownloadUrlRequest
487
+ include Google::Apis::Core::Hashable
488
+
489
+ def initialize(**args)
490
+ update!(**args)
491
+ end
492
+
493
+ # Update properties of this object
494
+ def update!(**args)
495
+ end
496
+ end
497
+
498
+ # Response of `GenerateDownloadUrl` method.
499
+ class GenerateDownloadUrlResponse
500
+ include Google::Apis::Core::Hashable
501
+
502
+ # The generated Google Cloud Storage signed URL that should be used for function
503
+ # source code download.
504
+ # Corresponds to the JSON property `downloadUrl`
505
+ # @return [String]
506
+ attr_accessor :download_url
507
+
508
+ def initialize(**args)
509
+ update!(**args)
510
+ end
511
+
512
+ # Update properties of this object
513
+ def update!(**args)
514
+ @download_url = args[:download_url] if args.key?(:download_url)
515
+ end
516
+ end
517
+
518
+ # Request of `GenerateSourceUploadUrl` method.
519
+ class GenerateUploadUrlRequest
520
+ include Google::Apis::Core::Hashable
521
+
522
+ def initialize(**args)
523
+ update!(**args)
524
+ end
525
+
526
+ # Update properties of this object
527
+ def update!(**args)
528
+ end
529
+ end
530
+
531
+ # Response of `GenerateSourceUploadUrl` method.
532
+ class GenerateUploadUrlResponse
533
+ include Google::Apis::Core::Hashable
534
+
535
+ # Location of the source in an archive file in Google Cloud Storage.
536
+ # Corresponds to the JSON property `storageSource`
537
+ # @return [Google::Apis::CloudfunctionsV2beta::StorageSource]
538
+ attr_accessor :storage_source
539
+
540
+ # The generated Google Cloud Storage signed URL that should be used for a
541
+ # function source code upload. The uploaded file should be a zip archive which
542
+ # contains a function.
543
+ # Corresponds to the JSON property `uploadUrl`
544
+ # @return [String]
545
+ attr_accessor :upload_url
546
+
547
+ def initialize(**args)
548
+ update!(**args)
549
+ end
550
+
551
+ # Update properties of this object
552
+ def update!(**args)
553
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
554
+ @upload_url = args[:upload_url] if args.key?(:upload_url)
555
+ end
556
+ end
557
+
558
+ # Represents the metadata of the long-running operation.
559
+ class GoogleCloudFunctionsV2alphaOperationMetadata
560
+ include Google::Apis::Core::Hashable
561
+
562
+ # API version used to start the operation.
563
+ # Corresponds to the JSON property `apiVersion`
564
+ # @return [String]
565
+ attr_accessor :api_version
566
+
567
+ # Identifies whether the user has requested cancellation of the operation.
568
+ # Operations that have successfully been cancelled have Operation.error value
569
+ # with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
570
+ # Corresponds to the JSON property `cancelRequested`
571
+ # @return [Boolean]
572
+ attr_accessor :cancel_requested
573
+ alias_method :cancel_requested?, :cancel_requested
574
+
575
+ # The time the operation was created.
576
+ # Corresponds to the JSON property `createTime`
577
+ # @return [String]
578
+ attr_accessor :create_time
579
+
580
+ # The time the operation finished running.
581
+ # Corresponds to the JSON property `endTime`
582
+ # @return [String]
583
+ attr_accessor :end_time
584
+
585
+ # The original request that started the operation.
586
+ # Corresponds to the JSON property `requestResource`
587
+ # @return [Hash<String,Object>]
588
+ attr_accessor :request_resource
589
+
590
+ # Mechanism for reporting in-progress stages
591
+ # Corresponds to the JSON property `stages`
592
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::GoogleCloudFunctionsV2alphaStage>]
593
+ attr_accessor :stages
594
+
595
+ # Human-readable status of the operation, if any.
596
+ # Corresponds to the JSON property `statusDetail`
597
+ # @return [String]
598
+ attr_accessor :status_detail
599
+
600
+ # Server-defined resource path for the target of the operation.
601
+ # Corresponds to the JSON property `target`
602
+ # @return [String]
603
+ attr_accessor :target
604
+
605
+ # Name of the verb executed by the operation.
606
+ # Corresponds to the JSON property `verb`
607
+ # @return [String]
608
+ attr_accessor :verb
609
+
610
+ def initialize(**args)
611
+ update!(**args)
612
+ end
613
+
614
+ # Update properties of this object
615
+ def update!(**args)
616
+ @api_version = args[:api_version] if args.key?(:api_version)
617
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
618
+ @create_time = args[:create_time] if args.key?(:create_time)
619
+ @end_time = args[:end_time] if args.key?(:end_time)
620
+ @request_resource = args[:request_resource] if args.key?(:request_resource)
621
+ @stages = args[:stages] if args.key?(:stages)
622
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
623
+ @target = args[:target] if args.key?(:target)
624
+ @verb = args[:verb] if args.key?(:verb)
625
+ end
626
+ end
627
+
628
+ # Each Stage of the deployment process
629
+ class GoogleCloudFunctionsV2alphaStage
630
+ include Google::Apis::Core::Hashable
631
+
632
+ # Message describing the Stage
633
+ # Corresponds to the JSON property `message`
634
+ # @return [String]
635
+ attr_accessor :message
636
+
637
+ # Name of the Stage. This will be unique for each Stage.
638
+ # Corresponds to the JSON property `name`
639
+ # @return [String]
640
+ attr_accessor :name
641
+
642
+ # Resource of the Stage
643
+ # Corresponds to the JSON property `resource`
644
+ # @return [String]
645
+ attr_accessor :resource
646
+
647
+ # Link to the current Stage resource
648
+ # Corresponds to the JSON property `resourceUri`
649
+ # @return [String]
650
+ attr_accessor :resource_uri
651
+
652
+ # Current state of the Stage
653
+ # Corresponds to the JSON property `state`
654
+ # @return [String]
655
+ attr_accessor :state
656
+
657
+ # State messages from the current Stage.
658
+ # Corresponds to the JSON property `stateMessages`
659
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::GoogleCloudFunctionsV2alphaStateMessage>]
660
+ attr_accessor :state_messages
661
+
662
+ def initialize(**args)
663
+ update!(**args)
664
+ end
665
+
666
+ # Update properties of this object
667
+ def update!(**args)
668
+ @message = args[:message] if args.key?(:message)
669
+ @name = args[:name] if args.key?(:name)
670
+ @resource = args[:resource] if args.key?(:resource)
671
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
672
+ @state = args[:state] if args.key?(:state)
673
+ @state_messages = args[:state_messages] if args.key?(:state_messages)
674
+ end
675
+ end
676
+
677
+ # Informational messages about the state of the Cloud Function or Operation.
678
+ class GoogleCloudFunctionsV2alphaStateMessage
679
+ include Google::Apis::Core::Hashable
680
+
681
+ # The message.
682
+ # Corresponds to the JSON property `message`
683
+ # @return [String]
684
+ attr_accessor :message
685
+
686
+ # Severity of the state message.
687
+ # Corresponds to the JSON property `severity`
688
+ # @return [String]
689
+ attr_accessor :severity
690
+
691
+ # One-word CamelCase type of the state message.
692
+ # Corresponds to the JSON property `type`
693
+ # @return [String]
694
+ attr_accessor :type
695
+
696
+ def initialize(**args)
697
+ update!(**args)
698
+ end
699
+
700
+ # Update properties of this object
701
+ def update!(**args)
702
+ @message = args[:message] if args.key?(:message)
703
+ @severity = args[:severity] if args.key?(:severity)
704
+ @type = args[:type] if args.key?(:type)
705
+ end
706
+ end
707
+
708
+ # Represents the metadata of the long-running operation.
709
+ class GoogleCloudFunctionsV2betaOperationMetadata
710
+ include Google::Apis::Core::Hashable
711
+
712
+ # API version used to start the operation.
713
+ # Corresponds to the JSON property `apiVersion`
714
+ # @return [String]
715
+ attr_accessor :api_version
716
+
717
+ # Identifies whether the user has requested cancellation of the operation.
718
+ # Operations that have successfully been cancelled have Operation.error value
719
+ # with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
720
+ # Corresponds to the JSON property `cancelRequested`
721
+ # @return [Boolean]
722
+ attr_accessor :cancel_requested
723
+ alias_method :cancel_requested?, :cancel_requested
724
+
725
+ # The time the operation was created.
726
+ # Corresponds to the JSON property `createTime`
727
+ # @return [String]
728
+ attr_accessor :create_time
729
+
730
+ # The time the operation finished running.
731
+ # Corresponds to the JSON property `endTime`
732
+ # @return [String]
733
+ attr_accessor :end_time
734
+
735
+ # The original request that started the operation.
736
+ # Corresponds to the JSON property `requestResource`
737
+ # @return [Hash<String,Object>]
738
+ attr_accessor :request_resource
739
+
740
+ # Mechanism for reporting in-progress stages
741
+ # Corresponds to the JSON property `stages`
742
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::GoogleCloudFunctionsV2betaStage>]
743
+ attr_accessor :stages
744
+
745
+ # Human-readable status of the operation, if any.
746
+ # Corresponds to the JSON property `statusDetail`
747
+ # @return [String]
748
+ attr_accessor :status_detail
749
+
750
+ # Server-defined resource path for the target of the operation.
751
+ # Corresponds to the JSON property `target`
752
+ # @return [String]
753
+ attr_accessor :target
754
+
755
+ # Name of the verb executed by the operation.
756
+ # Corresponds to the JSON property `verb`
757
+ # @return [String]
758
+ attr_accessor :verb
759
+
760
+ def initialize(**args)
761
+ update!(**args)
762
+ end
763
+
764
+ # Update properties of this object
765
+ def update!(**args)
766
+ @api_version = args[:api_version] if args.key?(:api_version)
767
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
768
+ @create_time = args[:create_time] if args.key?(:create_time)
769
+ @end_time = args[:end_time] if args.key?(:end_time)
770
+ @request_resource = args[:request_resource] if args.key?(:request_resource)
771
+ @stages = args[:stages] if args.key?(:stages)
772
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
773
+ @target = args[:target] if args.key?(:target)
774
+ @verb = args[:verb] if args.key?(:verb)
775
+ end
776
+ end
777
+
778
+ # Each Stage of the deployment process
779
+ class GoogleCloudFunctionsV2betaStage
780
+ include Google::Apis::Core::Hashable
781
+
782
+ # Message describing the Stage
783
+ # Corresponds to the JSON property `message`
784
+ # @return [String]
785
+ attr_accessor :message
786
+
787
+ # Name of the Stage. This will be unique for each Stage.
788
+ # Corresponds to the JSON property `name`
789
+ # @return [String]
790
+ attr_accessor :name
791
+
792
+ # Resource of the Stage
793
+ # Corresponds to the JSON property `resource`
794
+ # @return [String]
795
+ attr_accessor :resource
796
+
797
+ # Link to the current Stage resource
798
+ # Corresponds to the JSON property `resourceUri`
799
+ # @return [String]
800
+ attr_accessor :resource_uri
801
+
802
+ # Current state of the Stage
803
+ # Corresponds to the JSON property `state`
804
+ # @return [String]
805
+ attr_accessor :state
806
+
807
+ # State messages from the current Stage.
808
+ # Corresponds to the JSON property `stateMessages`
809
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::GoogleCloudFunctionsV2betaStateMessage>]
810
+ attr_accessor :state_messages
811
+
812
+ def initialize(**args)
813
+ update!(**args)
814
+ end
815
+
816
+ # Update properties of this object
817
+ def update!(**args)
818
+ @message = args[:message] if args.key?(:message)
819
+ @name = args[:name] if args.key?(:name)
820
+ @resource = args[:resource] if args.key?(:resource)
821
+ @resource_uri = args[:resource_uri] if args.key?(:resource_uri)
822
+ @state = args[:state] if args.key?(:state)
823
+ @state_messages = args[:state_messages] if args.key?(:state_messages)
824
+ end
825
+ end
826
+
827
+ # Informational messages about the state of the Cloud Function or Operation.
828
+ class GoogleCloudFunctionsV2betaStateMessage
829
+ include Google::Apis::Core::Hashable
830
+
831
+ # The message.
832
+ # Corresponds to the JSON property `message`
833
+ # @return [String]
834
+ attr_accessor :message
835
+
836
+ # Severity of the state message.
837
+ # Corresponds to the JSON property `severity`
838
+ # @return [String]
839
+ attr_accessor :severity
840
+
841
+ # One-word CamelCase type of the state message.
842
+ # Corresponds to the JSON property `type`
843
+ # @return [String]
844
+ attr_accessor :type
845
+
846
+ def initialize(**args)
847
+ update!(**args)
848
+ end
849
+
850
+ # Update properties of this object
851
+ def update!(**args)
852
+ @message = args[:message] if args.key?(:message)
853
+ @severity = args[:severity] if args.key?(:severity)
854
+ @type = args[:type] if args.key?(:type)
855
+ end
856
+ end
857
+
858
+ # Response for the `ListFunctions` method.
859
+ class ListFunctionsResponse
860
+ include Google::Apis::Core::Hashable
861
+
862
+ # The functions that match the request.
863
+ # Corresponds to the JSON property `functions`
864
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::Function>]
865
+ attr_accessor :functions
866
+
867
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
868
+ # field is omitted, there are no subsequent pages.
869
+ # Corresponds to the JSON property `nextPageToken`
870
+ # @return [String]
871
+ attr_accessor :next_page_token
872
+
873
+ # Locations that could not be reached. The response does not include any
874
+ # functions from these locations.
875
+ # Corresponds to the JSON property `unreachable`
876
+ # @return [Array<String>]
877
+ attr_accessor :unreachable
878
+
879
+ def initialize(**args)
880
+ update!(**args)
881
+ end
882
+
883
+ # Update properties of this object
884
+ def update!(**args)
885
+ @functions = args[:functions] if args.key?(:functions)
886
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
887
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
888
+ end
889
+ end
890
+
891
+ # The response message for Locations.ListLocations.
892
+ class ListLocationsResponse
893
+ include Google::Apis::Core::Hashable
894
+
895
+ # A list of locations that matches the specified filter in the request.
896
+ # Corresponds to the JSON property `locations`
897
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::Location>]
898
+ attr_accessor :locations
899
+
900
+ # The standard List next-page token.
901
+ # Corresponds to the JSON property `nextPageToken`
902
+ # @return [String]
903
+ attr_accessor :next_page_token
904
+
905
+ def initialize(**args)
906
+ update!(**args)
907
+ end
908
+
909
+ # Update properties of this object
910
+ def update!(**args)
911
+ @locations = args[:locations] if args.key?(:locations)
912
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
913
+ end
914
+ end
915
+
916
+ # The response message for Operations.ListOperations.
917
+ class ListOperationsResponse
918
+ include Google::Apis::Core::Hashable
919
+
920
+ # The standard List next-page token.
921
+ # Corresponds to the JSON property `nextPageToken`
922
+ # @return [String]
923
+ attr_accessor :next_page_token
924
+
925
+ # A list of operations that matches the specified filter in the request.
926
+ # Corresponds to the JSON property `operations`
927
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::Operation>]
928
+ attr_accessor :operations
929
+
930
+ def initialize(**args)
931
+ update!(**args)
932
+ end
933
+
934
+ # Update properties of this object
935
+ def update!(**args)
936
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
937
+ @operations = args[:operations] if args.key?(:operations)
938
+ end
939
+ end
940
+
941
+ # Response for the `ListRuntimes` method.
942
+ class ListRuntimesResponse
943
+ include Google::Apis::Core::Hashable
944
+
945
+ # The runtimes that match the request.
946
+ # Corresponds to the JSON property `runtimes`
947
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::Runtime>]
948
+ attr_accessor :runtimes
949
+
950
+ def initialize(**args)
951
+ update!(**args)
952
+ end
953
+
954
+ # Update properties of this object
955
+ def update!(**args)
956
+ @runtimes = args[:runtimes] if args.key?(:runtimes)
957
+ end
958
+ end
959
+
960
+ # A resource that represents Google Cloud Platform location.
961
+ class Location
962
+ include Google::Apis::Core::Hashable
963
+
964
+ # The friendly name for this location, typically a nearby city name. For example,
965
+ # "Tokyo".
966
+ # Corresponds to the JSON property `displayName`
967
+ # @return [String]
968
+ attr_accessor :display_name
969
+
970
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
971
+ # region": "us-east1"`
972
+ # Corresponds to the JSON property `labels`
973
+ # @return [Hash<String,String>]
974
+ attr_accessor :labels
975
+
976
+ # The canonical id for this location. For example: `"us-east1"`.
977
+ # Corresponds to the JSON property `locationId`
978
+ # @return [String]
979
+ attr_accessor :location_id
980
+
981
+ # Service-specific metadata. For example the available capacity at the given
982
+ # location.
983
+ # Corresponds to the JSON property `metadata`
984
+ # @return [Hash<String,Object>]
985
+ attr_accessor :metadata
986
+
987
+ # Resource name for the location, which may vary between implementations. For
988
+ # example: `"projects/example-project/locations/us-east1"`
989
+ # Corresponds to the JSON property `name`
990
+ # @return [String]
991
+ attr_accessor :name
992
+
993
+ def initialize(**args)
994
+ update!(**args)
995
+ end
996
+
997
+ # Update properties of this object
998
+ def update!(**args)
999
+ @display_name = args[:display_name] if args.key?(:display_name)
1000
+ @labels = args[:labels] if args.key?(:labels)
1001
+ @location_id = args[:location_id] if args.key?(:location_id)
1002
+ @metadata = args[:metadata] if args.key?(:metadata)
1003
+ @name = args[:name] if args.key?(:name)
1004
+ end
1005
+ end
1006
+
1007
+ # This resource represents a long-running operation that is the result of a
1008
+ # network API call.
1009
+ class Operation
1010
+ include Google::Apis::Core::Hashable
1011
+
1012
+ # If the value is `false`, it means the operation is still in progress. If `true`
1013
+ # , the operation is completed, and either `error` or `response` is available.
1014
+ # Corresponds to the JSON property `done`
1015
+ # @return [Boolean]
1016
+ attr_accessor :done
1017
+ alias_method :done?, :done
1018
+
1019
+ # The `Status` type defines a logical error model that is suitable for different
1020
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1021
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1022
+ # data: error code, error message, and error details. You can find out more
1023
+ # about this error model and how to work with it in the [API Design Guide](https:
1024
+ # //cloud.google.com/apis/design/errors).
1025
+ # Corresponds to the JSON property `error`
1026
+ # @return [Google::Apis::CloudfunctionsV2beta::Status]
1027
+ attr_accessor :error
1028
+
1029
+ # Service-specific metadata associated with the operation. It typically contains
1030
+ # progress information and common metadata such as create time. Some services
1031
+ # might not provide such metadata. Any method that returns a long-running
1032
+ # operation should document the metadata type, if any.
1033
+ # Corresponds to the JSON property `metadata`
1034
+ # @return [Hash<String,Object>]
1035
+ attr_accessor :metadata
1036
+
1037
+ # The server-assigned name, which is only unique within the same service that
1038
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1039
+ # be a resource name ending with `operations/`unique_id``.
1040
+ # Corresponds to the JSON property `name`
1041
+ # @return [String]
1042
+ attr_accessor :name
1043
+
1044
+ # The normal response of the operation in case of success. If the original
1045
+ # method returns no data on success, such as `Delete`, the response is `google.
1046
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1047
+ # the response should be the resource. For other methods, the response should
1048
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1049
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1050
+ # response type is `TakeSnapshotResponse`.
1051
+ # Corresponds to the JSON property `response`
1052
+ # @return [Hash<String,Object>]
1053
+ attr_accessor :response
1054
+
1055
+ def initialize(**args)
1056
+ update!(**args)
1057
+ end
1058
+
1059
+ # Update properties of this object
1060
+ def update!(**args)
1061
+ @done = args[:done] if args.key?(:done)
1062
+ @error = args[:error] if args.key?(:error)
1063
+ @metadata = args[:metadata] if args.key?(:metadata)
1064
+ @name = args[:name] if args.key?(:name)
1065
+ @response = args[:response] if args.key?(:response)
1066
+ end
1067
+ end
1068
+
1069
+ # Metadata describing an Operation
1070
+ class OperationMetadataV1
1071
+ include Google::Apis::Core::Hashable
1072
+
1073
+ # The Cloud Build ID of the function created or updated by an API call. This
1074
+ # field is only populated for Create and Update operations.
1075
+ # Corresponds to the JSON property `buildId`
1076
+ # @return [String]
1077
+ attr_accessor :build_id
1078
+
1079
+ # The Cloud Build Name of the function deployment. This field is only populated
1080
+ # for Create and Update operations. `projects//locations//builds/`.
1081
+ # Corresponds to the JSON property `buildName`
1082
+ # @return [String]
1083
+ attr_accessor :build_name
1084
+
1085
+ # The original request that started the operation.
1086
+ # Corresponds to the JSON property `request`
1087
+ # @return [Hash<String,Object>]
1088
+ attr_accessor :request
1089
+
1090
+ # An identifier for Firebase function sources. Disclaimer: This field is only
1091
+ # supported for Firebase function deployments.
1092
+ # Corresponds to the JSON property `sourceToken`
1093
+ # @return [String]
1094
+ attr_accessor :source_token
1095
+
1096
+ # Target of the operation - for example `projects/project-1/locations/region-1/
1097
+ # functions/function-1`
1098
+ # Corresponds to the JSON property `target`
1099
+ # @return [String]
1100
+ attr_accessor :target
1101
+
1102
+ # Type of operation.
1103
+ # Corresponds to the JSON property `type`
1104
+ # @return [String]
1105
+ attr_accessor :type
1106
+
1107
+ # The last update timestamp of the operation.
1108
+ # Corresponds to the JSON property `updateTime`
1109
+ # @return [String]
1110
+ attr_accessor :update_time
1111
+
1112
+ # Version id of the function created or updated by an API call. This field is
1113
+ # only populated for Create and Update operations.
1114
+ # Corresponds to the JSON property `versionId`
1115
+ # @return [Fixnum]
1116
+ attr_accessor :version_id
1117
+
1118
+ def initialize(**args)
1119
+ update!(**args)
1120
+ end
1121
+
1122
+ # Update properties of this object
1123
+ def update!(**args)
1124
+ @build_id = args[:build_id] if args.key?(:build_id)
1125
+ @build_name = args[:build_name] if args.key?(:build_name)
1126
+ @request = args[:request] if args.key?(:request)
1127
+ @source_token = args[:source_token] if args.key?(:source_token)
1128
+ @target = args[:target] if args.key?(:target)
1129
+ @type = args[:type] if args.key?(:type)
1130
+ @update_time = args[:update_time] if args.key?(:update_time)
1131
+ @version_id = args[:version_id] if args.key?(:version_id)
1132
+ end
1133
+ end
1134
+
1135
+ # An Identity and Access Management (IAM) policy, which specifies access
1136
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1137
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1138
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1139
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1140
+ # an IAM predefined role or a user-created custom role. For some types of Google
1141
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1142
+ # logical expression that allows access to a resource only if the expression
1143
+ # evaluates to `true`. A condition can add constraints based on attributes of
1144
+ # the request, the resource, or both. To learn which resources support
1145
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1146
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1147
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1148
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1149
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1150
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1151
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1152
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1153
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1154
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1155
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1156
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1157
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1158
+ # access description: Does not grant access after Sep 2020 expression: request.
1159
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1160
+ # a description of IAM and its features, see the [IAM documentation](https://
1161
+ # cloud.google.com/iam/docs/).
1162
+ class Policy
1163
+ include Google::Apis::Core::Hashable
1164
+
1165
+ # Specifies cloud audit logging configuration for this policy.
1166
+ # Corresponds to the JSON property `auditConfigs`
1167
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::AuditConfig>]
1168
+ attr_accessor :audit_configs
1169
+
1170
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1171
+ # specify a `condition` that determines how and when the `bindings` are applied.
1172
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1173
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1174
+ # can be Google groups. Each occurrence of a principal counts towards these
1175
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1176
+ # example.com`, and not to any other principal, then you can add another 1,450
1177
+ # principals to the `bindings` in the `Policy`.
1178
+ # Corresponds to the JSON property `bindings`
1179
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::Binding>]
1180
+ attr_accessor :bindings
1181
+
1182
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1183
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1184
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1185
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1186
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1187
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1188
+ # applied to the same version of the policy. **Important:** If you use IAM
1189
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1190
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1191
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1192
+ # are lost.
1193
+ # Corresponds to the JSON property `etag`
1194
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1195
+ # @return [String]
1196
+ attr_accessor :etag
1197
+
1198
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1199
+ # Requests that specify an invalid value are rejected. Any operation that
1200
+ # affects conditional role bindings must specify version `3`. This requirement
1201
+ # applies to the following operations: * Getting a policy that includes a
1202
+ # conditional role binding * Adding a conditional role binding to a policy *
1203
+ # Changing a conditional role binding in a policy * Removing any role binding,
1204
+ # with or without a condition, from a policy that includes conditions **
1205
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1206
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1207
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1208
+ # conditions in the version `3` policy are lost. If a policy does not include
1209
+ # any conditions, operations on that policy may specify any valid version or
1210
+ # leave the field unset. To learn which resources support conditions in their
1211
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1212
+ # conditions/resource-policies).
1213
+ # Corresponds to the JSON property `version`
1214
+ # @return [Fixnum]
1215
+ attr_accessor :version
1216
+
1217
+ def initialize(**args)
1218
+ update!(**args)
1219
+ end
1220
+
1221
+ # Update properties of this object
1222
+ def update!(**args)
1223
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1224
+ @bindings = args[:bindings] if args.key?(:bindings)
1225
+ @etag = args[:etag] if args.key?(:etag)
1226
+ @version = args[:version] if args.key?(:version)
1227
+ end
1228
+ end
1229
+
1230
+ # Location of the source in a Google Cloud Source Repository.
1231
+ class RepoSource
1232
+ include Google::Apis::Core::Hashable
1233
+
1234
+ # Regex matching branches to build. The syntax of the regular expressions
1235
+ # accepted is the syntax accepted by RE2 and described at https://github.com/
1236
+ # google/re2/wiki/Syntax
1237
+ # Corresponds to the JSON property `branchName`
1238
+ # @return [String]
1239
+ attr_accessor :branch_name
1240
+
1241
+ # Explicit commit SHA to build.
1242
+ # Corresponds to the JSON property `commitSha`
1243
+ # @return [String]
1244
+ attr_accessor :commit_sha
1245
+
1246
+ # Directory, relative to the source root, in which to run the build. This must
1247
+ # be a relative path. If a step's `dir` is specified and is an absolute path,
1248
+ # this value is ignored for that step's execution. eg. helloworld (no leading
1249
+ # slash allowed)
1250
+ # Corresponds to the JSON property `dir`
1251
+ # @return [String]
1252
+ attr_accessor :dir
1253
+
1254
+ # Only trigger a build if the revision regex does NOT match the revision regex.
1255
+ # Corresponds to the JSON property `invertRegex`
1256
+ # @return [Boolean]
1257
+ attr_accessor :invert_regex
1258
+ alias_method :invert_regex?, :invert_regex
1259
+
1260
+ # ID of the project that owns the Cloud Source Repository. If omitted, the
1261
+ # project ID requesting the build is assumed.
1262
+ # Corresponds to the JSON property `projectId`
1263
+ # @return [String]
1264
+ attr_accessor :project_id
1265
+
1266
+ # Name of the Cloud Source Repository.
1267
+ # Corresponds to the JSON property `repoName`
1268
+ # @return [String]
1269
+ attr_accessor :repo_name
1270
+
1271
+ # Regex matching tags to build. The syntax of the regular expressions accepted
1272
+ # is the syntax accepted by RE2 and described at https://github.com/google/re2/
1273
+ # wiki/Syntax
1274
+ # Corresponds to the JSON property `tagName`
1275
+ # @return [String]
1276
+ attr_accessor :tag_name
1277
+
1278
+ def initialize(**args)
1279
+ update!(**args)
1280
+ end
1281
+
1282
+ # Update properties of this object
1283
+ def update!(**args)
1284
+ @branch_name = args[:branch_name] if args.key?(:branch_name)
1285
+ @commit_sha = args[:commit_sha] if args.key?(:commit_sha)
1286
+ @dir = args[:dir] if args.key?(:dir)
1287
+ @invert_regex = args[:invert_regex] if args.key?(:invert_regex)
1288
+ @project_id = args[:project_id] if args.key?(:project_id)
1289
+ @repo_name = args[:repo_name] if args.key?(:repo_name)
1290
+ @tag_name = args[:tag_name] if args.key?(:tag_name)
1291
+ end
1292
+ end
1293
+
1294
+ # Describes a runtime and any special information (e.g., deprecation status)
1295
+ # related to it.
1296
+ class Runtime
1297
+ include Google::Apis::Core::Hashable
1298
+
1299
+ # The user facing name, eg 'Go 1.13', 'Node.js 12', etc.
1300
+ # Corresponds to the JSON property `displayName`
1301
+ # @return [String]
1302
+ attr_accessor :display_name
1303
+
1304
+ # The environment for the runtime.
1305
+ # Corresponds to the JSON property `environment`
1306
+ # @return [String]
1307
+ attr_accessor :environment
1308
+
1309
+ # The name of the runtime, e.g., 'go113', 'nodejs12', etc.
1310
+ # Corresponds to the JSON property `name`
1311
+ # @return [String]
1312
+ attr_accessor :name
1313
+
1314
+ # The stage of life this runtime is in, e.g., BETA, GA, etc.
1315
+ # Corresponds to the JSON property `stage`
1316
+ # @return [String]
1317
+ attr_accessor :stage
1318
+
1319
+ # Warning messages, e.g., a deprecation warning.
1320
+ # Corresponds to the JSON property `warnings`
1321
+ # @return [Array<String>]
1322
+ attr_accessor :warnings
1323
+
1324
+ def initialize(**args)
1325
+ update!(**args)
1326
+ end
1327
+
1328
+ # Update properties of this object
1329
+ def update!(**args)
1330
+ @display_name = args[:display_name] if args.key?(:display_name)
1331
+ @environment = args[:environment] if args.key?(:environment)
1332
+ @name = args[:name] if args.key?(:name)
1333
+ @stage = args[:stage] if args.key?(:stage)
1334
+ @warnings = args[:warnings] if args.key?(:warnings)
1335
+ end
1336
+ end
1337
+
1338
+ # Configuration for a secret environment variable. It has the information
1339
+ # necessary to fetch the secret value from secret manager and expose it as an
1340
+ # environment variable.
1341
+ class SecretEnvVar
1342
+ include Google::Apis::Core::Hashable
1343
+
1344
+ # Name of the environment variable.
1345
+ # Corresponds to the JSON property `key`
1346
+ # @return [String]
1347
+ attr_accessor :key
1348
+
1349
+ # Project identifier (preferably project number but can also be the project ID)
1350
+ # of the project that contains the secret. If not set, it will be populated with
1351
+ # the function's project assuming that the secret exists in the same project as
1352
+ # of the function.
1353
+ # Corresponds to the JSON property `projectId`
1354
+ # @return [String]
1355
+ attr_accessor :project_id
1356
+
1357
+ # Name of the secret in secret manager (not the full resource name).
1358
+ # Corresponds to the JSON property `secret`
1359
+ # @return [String]
1360
+ attr_accessor :secret
1361
+
1362
+ # Version of the secret (version number or the string 'latest'). It is
1363
+ # recommended to use a numeric version for secret environment variables as any
1364
+ # updates to the secret value is not reflected until new instances start.
1365
+ # Corresponds to the JSON property `version`
1366
+ # @return [String]
1367
+ attr_accessor :version
1368
+
1369
+ def initialize(**args)
1370
+ update!(**args)
1371
+ end
1372
+
1373
+ # Update properties of this object
1374
+ def update!(**args)
1375
+ @key = args[:key] if args.key?(:key)
1376
+ @project_id = args[:project_id] if args.key?(:project_id)
1377
+ @secret = args[:secret] if args.key?(:secret)
1378
+ @version = args[:version] if args.key?(:version)
1379
+ end
1380
+ end
1381
+
1382
+ # Describes the Service being deployed. Currently Supported : Cloud Run (fully
1383
+ # managed).
1384
+ class ServiceConfig
1385
+ include Google::Apis::Core::Hashable
1386
+
1387
+ # Whether 100% of traffic is routed to the latest revision. On CreateFunction
1388
+ # and UpdateFunction, when set to true, the revision being deployed will serve
1389
+ # 100% of traffic, ignoring any traffic split settings, if any. On GetFunction,
1390
+ # true will be returned if the latest revision is serving 100% of traffic.
1391
+ # Corresponds to the JSON property `allTrafficOnLatestRevision`
1392
+ # @return [Boolean]
1393
+ attr_accessor :all_traffic_on_latest_revision
1394
+ alias_method :all_traffic_on_latest_revision?, :all_traffic_on_latest_revision
1395
+
1396
+ # The amount of memory available for a function. Defaults to 256M. Supported
1397
+ # units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as
1398
+ # bytes. See https://github.com/kubernetes/kubernetes/blob/master/staging/src/
1399
+ # k8s.io/apimachinery/pkg/api/resource/quantity.go a full description.
1400
+ # Corresponds to the JSON property `availableMemory`
1401
+ # @return [String]
1402
+ attr_accessor :available_memory
1403
+
1404
+ # Environment variables that shall be available during function execution.
1405
+ # Corresponds to the JSON property `environmentVariables`
1406
+ # @return [Hash<String,String>]
1407
+ attr_accessor :environment_variables
1408
+
1409
+ # The ingress settings for the function, controlling what traffic can reach it.
1410
+ # Corresponds to the JSON property `ingressSettings`
1411
+ # @return [String]
1412
+ attr_accessor :ingress_settings
1413
+
1414
+ # The limit on the maximum number of function instances that may coexist at a
1415
+ # given time. In some cases, such as rapid traffic surges, Cloud Functions may,
1416
+ # for a short period of time, create more instances than the specified max
1417
+ # instances limit. If your function cannot tolerate this temporary behavior, you
1418
+ # may want to factor in a safety margin and set a lower max instances value than
1419
+ # your function can tolerate. See the [Max Instances](https://cloud.google.com/
1420
+ # functions/docs/max-instances) Guide for more details.
1421
+ # Corresponds to the JSON property `maxInstanceCount`
1422
+ # @return [Fixnum]
1423
+ attr_accessor :max_instance_count
1424
+
1425
+ # The limit on the minimum number of function instances that may coexist at a
1426
+ # given time. Function instances are kept in idle state for a short period after
1427
+ # they finished executing the request to reduce cold start time for subsequent
1428
+ # requests. Setting a minimum instance count will ensure that the given number
1429
+ # of instances are kept running in idle state always. This can help with cold
1430
+ # start times when jump in incoming request count occurs after the idle instance
1431
+ # would have been stopped in the default case.
1432
+ # Corresponds to the JSON property `minInstanceCount`
1433
+ # @return [Fixnum]
1434
+ attr_accessor :min_instance_count
1435
+
1436
+ # Output only. The name of service revision.
1437
+ # Corresponds to the JSON property `revision`
1438
+ # @return [String]
1439
+ attr_accessor :revision
1440
+
1441
+ # Secret environment variables configuration.
1442
+ # Corresponds to the JSON property `secretEnvironmentVariables`
1443
+ # @return [Array<Google::Apis::CloudfunctionsV2beta::SecretEnvVar>]
1444
+ attr_accessor :secret_environment_variables
1445
+
1446
+ # Output only. Name of the service associated with a Function. The format of
1447
+ # this field is `projects/`project`/locations/`region`/services/`service``
1448
+ # Corresponds to the JSON property `service`
1449
+ # @return [String]
1450
+ attr_accessor :service
1451
+
1452
+ # The email of the service's service account. If empty, defaults to ``
1453
+ # project_number`-compute@developer.gserviceaccount.com`.
1454
+ # Corresponds to the JSON property `serviceAccountEmail`
1455
+ # @return [String]
1456
+ attr_accessor :service_account_email
1457
+
1458
+ # The function execution timeout. Execution is considered failed and can be
1459
+ # terminated if the function is not completed at the end of the timeout period.
1460
+ # Defaults to 60 seconds.
1461
+ # Corresponds to the JSON property `timeoutSeconds`
1462
+ # @return [Fixnum]
1463
+ attr_accessor :timeout_seconds
1464
+
1465
+ # Output only. URI of the Service deployed.
1466
+ # Corresponds to the JSON property `uri`
1467
+ # @return [String]
1468
+ attr_accessor :uri
1469
+
1470
+ # The Serverless VPC Access connector that this cloud function can connect to.
1471
+ # The format of this field is `projects/*/locations/*/connectors/*`.
1472
+ # Corresponds to the JSON property `vpcConnector`
1473
+ # @return [String]
1474
+ attr_accessor :vpc_connector
1475
+
1476
+ # The egress settings for the connector, controlling what traffic is diverted
1477
+ # through it.
1478
+ # Corresponds to the JSON property `vpcConnectorEgressSettings`
1479
+ # @return [String]
1480
+ attr_accessor :vpc_connector_egress_settings
1481
+
1482
+ def initialize(**args)
1483
+ update!(**args)
1484
+ end
1485
+
1486
+ # Update properties of this object
1487
+ def update!(**args)
1488
+ @all_traffic_on_latest_revision = args[:all_traffic_on_latest_revision] if args.key?(:all_traffic_on_latest_revision)
1489
+ @available_memory = args[:available_memory] if args.key?(:available_memory)
1490
+ @environment_variables = args[:environment_variables] if args.key?(:environment_variables)
1491
+ @ingress_settings = args[:ingress_settings] if args.key?(:ingress_settings)
1492
+ @max_instance_count = args[:max_instance_count] if args.key?(:max_instance_count)
1493
+ @min_instance_count = args[:min_instance_count] if args.key?(:min_instance_count)
1494
+ @revision = args[:revision] if args.key?(:revision)
1495
+ @secret_environment_variables = args[:secret_environment_variables] if args.key?(:secret_environment_variables)
1496
+ @service = args[:service] if args.key?(:service)
1497
+ @service_account_email = args[:service_account_email] if args.key?(:service_account_email)
1498
+ @timeout_seconds = args[:timeout_seconds] if args.key?(:timeout_seconds)
1499
+ @uri = args[:uri] if args.key?(:uri)
1500
+ @vpc_connector = args[:vpc_connector] if args.key?(:vpc_connector)
1501
+ @vpc_connector_egress_settings = args[:vpc_connector_egress_settings] if args.key?(:vpc_connector_egress_settings)
1502
+ end
1503
+ end
1504
+
1505
+ # Request message for `SetIamPolicy` method.
1506
+ class SetIamPolicyRequest
1507
+ include Google::Apis::Core::Hashable
1508
+
1509
+ # An Identity and Access Management (IAM) policy, which specifies access
1510
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1511
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1512
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1513
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1514
+ # an IAM predefined role or a user-created custom role. For some types of Google
1515
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1516
+ # logical expression that allows access to a resource only if the expression
1517
+ # evaluates to `true`. A condition can add constraints based on attributes of
1518
+ # the request, the resource, or both. To learn which resources support
1519
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1520
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1521
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1522
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1523
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1524
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1525
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1526
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1527
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1528
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1529
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1530
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1531
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1532
+ # access description: Does not grant access after Sep 2020 expression: request.
1533
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1534
+ # a description of IAM and its features, see the [IAM documentation](https://
1535
+ # cloud.google.com/iam/docs/).
1536
+ # Corresponds to the JSON property `policy`
1537
+ # @return [Google::Apis::CloudfunctionsV2beta::Policy]
1538
+ attr_accessor :policy
1539
+
1540
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1541
+ # the fields in the mask will be modified. If no mask is provided, the following
1542
+ # default mask is used: `paths: "bindings, etag"`
1543
+ # Corresponds to the JSON property `updateMask`
1544
+ # @return [String]
1545
+ attr_accessor :update_mask
1546
+
1547
+ def initialize(**args)
1548
+ update!(**args)
1549
+ end
1550
+
1551
+ # Update properties of this object
1552
+ def update!(**args)
1553
+ @policy = args[:policy] if args.key?(:policy)
1554
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1555
+ end
1556
+ end
1557
+
1558
+ # The location of the function source code.
1559
+ class Source
1560
+ include Google::Apis::Core::Hashable
1561
+
1562
+ # Location of the source in a Google Cloud Source Repository.
1563
+ # Corresponds to the JSON property `repoSource`
1564
+ # @return [Google::Apis::CloudfunctionsV2beta::RepoSource]
1565
+ attr_accessor :repo_source
1566
+
1567
+ # Location of the source in an archive file in Google Cloud Storage.
1568
+ # Corresponds to the JSON property `storageSource`
1569
+ # @return [Google::Apis::CloudfunctionsV2beta::StorageSource]
1570
+ attr_accessor :storage_source
1571
+
1572
+ def initialize(**args)
1573
+ update!(**args)
1574
+ end
1575
+
1576
+ # Update properties of this object
1577
+ def update!(**args)
1578
+ @repo_source = args[:repo_source] if args.key?(:repo_source)
1579
+ @storage_source = args[:storage_source] if args.key?(:storage_source)
1580
+ end
1581
+ end
1582
+
1583
+ # Provenance of the source. Ways to find the original source, or verify that
1584
+ # some source was used for this build.
1585
+ class SourceProvenance
1586
+ include Google::Apis::Core::Hashable
1587
+
1588
+ # Location of the source in a Google Cloud Source Repository.
1589
+ # Corresponds to the JSON property `resolvedRepoSource`
1590
+ # @return [Google::Apis::CloudfunctionsV2beta::RepoSource]
1591
+ attr_accessor :resolved_repo_source
1592
+
1593
+ # Location of the source in an archive file in Google Cloud Storage.
1594
+ # Corresponds to the JSON property `resolvedStorageSource`
1595
+ # @return [Google::Apis::CloudfunctionsV2beta::StorageSource]
1596
+ attr_accessor :resolved_storage_source
1597
+
1598
+ def initialize(**args)
1599
+ update!(**args)
1600
+ end
1601
+
1602
+ # Update properties of this object
1603
+ def update!(**args)
1604
+ @resolved_repo_source = args[:resolved_repo_source] if args.key?(:resolved_repo_source)
1605
+ @resolved_storage_source = args[:resolved_storage_source] if args.key?(:resolved_storage_source)
1606
+ end
1607
+ end
1608
+
1609
+ # The `Status` type defines a logical error model that is suitable for different
1610
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1611
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1612
+ # data: error code, error message, and error details. You can find out more
1613
+ # about this error model and how to work with it in the [API Design Guide](https:
1614
+ # //cloud.google.com/apis/design/errors).
1615
+ class Status
1616
+ include Google::Apis::Core::Hashable
1617
+
1618
+ # The status code, which should be an enum value of google.rpc.Code.
1619
+ # Corresponds to the JSON property `code`
1620
+ # @return [Fixnum]
1621
+ attr_accessor :code
1622
+
1623
+ # A list of messages that carry the error details. There is a common set of
1624
+ # message types for APIs to use.
1625
+ # Corresponds to the JSON property `details`
1626
+ # @return [Array<Hash<String,Object>>]
1627
+ attr_accessor :details
1628
+
1629
+ # A developer-facing error message, which should be in English. Any user-facing
1630
+ # error message should be localized and sent in the google.rpc.Status.details
1631
+ # field, or localized by the client.
1632
+ # Corresponds to the JSON property `message`
1633
+ # @return [String]
1634
+ attr_accessor :message
1635
+
1636
+ def initialize(**args)
1637
+ update!(**args)
1638
+ end
1639
+
1640
+ # Update properties of this object
1641
+ def update!(**args)
1642
+ @code = args[:code] if args.key?(:code)
1643
+ @details = args[:details] if args.key?(:details)
1644
+ @message = args[:message] if args.key?(:message)
1645
+ end
1646
+ end
1647
+
1648
+ # Location of the source in an archive file in Google Cloud Storage.
1649
+ class StorageSource
1650
+ include Google::Apis::Core::Hashable
1651
+
1652
+ # Google Cloud Storage bucket containing the source (see [Bucket Name
1653
+ # Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)
1654
+ # ).
1655
+ # Corresponds to the JSON property `bucket`
1656
+ # @return [String]
1657
+ attr_accessor :bucket
1658
+
1659
+ # Google Cloud Storage generation for the object. If the generation is omitted,
1660
+ # the latest generation will be used.
1661
+ # Corresponds to the JSON property `generation`
1662
+ # @return [Fixnum]
1663
+ attr_accessor :generation
1664
+
1665
+ # Google Cloud Storage object containing the source. This object must be a
1666
+ # gzipped archive file (`.tar.gz`) containing source to build.
1667
+ # Corresponds to the JSON property `object`
1668
+ # @return [String]
1669
+ attr_accessor :object
1670
+
1671
+ def initialize(**args)
1672
+ update!(**args)
1673
+ end
1674
+
1675
+ # Update properties of this object
1676
+ def update!(**args)
1677
+ @bucket = args[:bucket] if args.key?(:bucket)
1678
+ @generation = args[:generation] if args.key?(:generation)
1679
+ @object = args[:object] if args.key?(:object)
1680
+ end
1681
+ end
1682
+
1683
+ # Request message for `TestIamPermissions` method.
1684
+ class TestIamPermissionsRequest
1685
+ include Google::Apis::Core::Hashable
1686
+
1687
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1688
+ # (such as '*' or 'storage.*') are not allowed. For more information see [IAM
1689
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1690
+ # Corresponds to the JSON property `permissions`
1691
+ # @return [Array<String>]
1692
+ attr_accessor :permissions
1693
+
1694
+ def initialize(**args)
1695
+ update!(**args)
1696
+ end
1697
+
1698
+ # Update properties of this object
1699
+ def update!(**args)
1700
+ @permissions = args[:permissions] if args.key?(:permissions)
1701
+ end
1702
+ end
1703
+
1704
+ # Response message for `TestIamPermissions` method.
1705
+ class TestIamPermissionsResponse
1706
+ include Google::Apis::Core::Hashable
1707
+
1708
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1709
+ # Corresponds to the JSON property `permissions`
1710
+ # @return [Array<String>]
1711
+ attr_accessor :permissions
1712
+
1713
+ def initialize(**args)
1714
+ update!(**args)
1715
+ end
1716
+
1717
+ # Update properties of this object
1718
+ def update!(**args)
1719
+ @permissions = args[:permissions] if args.key?(:permissions)
1720
+ end
1721
+ end
1722
+ end
1723
+ end
1724
+ end