google-apis-cloudfunctions_v2beta 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,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