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