google-apis-firebaseapphosting_v1 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,1877 @@
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 FirebaseapphostingV1
24
+
25
+ # A backend is the primary resource of App Hosting.
26
+ class Backend
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Optional. Unstructured key value map that may be set by external tools to
30
+ # store and arbitrary metadata. They are not queryable and should be preserved
31
+ # when modifying objects.
32
+ # Corresponds to the JSON property `annotations`
33
+ # @return [Hash<String,String>]
34
+ attr_accessor :annotations
35
+
36
+ # Optional. The [ID of a Web App](https://firebase.google.com/docs/reference/
37
+ # firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id)
38
+ # associated with the backend.
39
+ # Corresponds to the JSON property `appId`
40
+ # @return [String]
41
+ attr_accessor :app_id
42
+
43
+ # The connection to an external source repository to watch for event-driven
44
+ # updates to the backend.
45
+ # Corresponds to the JSON property `codebase`
46
+ # @return [Google::Apis::FirebaseapphostingV1::Codebase]
47
+ attr_accessor :codebase
48
+
49
+ # Output only. Time at which the backend was created.
50
+ # Corresponds to the JSON property `createTime`
51
+ # @return [String]
52
+ attr_accessor :create_time
53
+
54
+ # Output only. Time at which the backend was deleted.
55
+ # Corresponds to the JSON property `deleteTime`
56
+ # @return [String]
57
+ attr_accessor :delete_time
58
+
59
+ # Optional. Human-readable name. 63 character limit.
60
+ # Corresponds to the JSON property `displayName`
61
+ # @return [String]
62
+ attr_accessor :display_name
63
+
64
+ # Optional. The environment name of the backend, used to load environment
65
+ # variables from environment specific configuration.
66
+ # Corresponds to the JSON property `environment`
67
+ # @return [String]
68
+ attr_accessor :environment
69
+
70
+ # Output only. Server-computed checksum based on other values; may be sent on
71
+ # update or delete to ensure operation is done on expected resource.
72
+ # Corresponds to the JSON property `etag`
73
+ # @return [String]
74
+ attr_accessor :etag
75
+
76
+ # Optional. Unstructured key value map that can be used to organize and
77
+ # categorize objects.
78
+ # Corresponds to the JSON property `labels`
79
+ # @return [Hash<String,String>]
80
+ attr_accessor :labels
81
+
82
+ # Output only. A list of the resources managed by this backend.
83
+ # Corresponds to the JSON property `managedResources`
84
+ # @return [Array<Google::Apis::FirebaseapphostingV1::ManagedResource>]
85
+ attr_accessor :managed_resources
86
+
87
+ # Optional. Deprecated: Use `environment` instead.
88
+ # Corresponds to the JSON property `mode`
89
+ # @return [String]
90
+ attr_accessor :mode
91
+
92
+ # Identifier. The resource name of the backend. Format: `projects/`project`/
93
+ # locations/`locationId`/backends/`backendId``.
94
+ # Corresponds to the JSON property `name`
95
+ # @return [String]
96
+ attr_accessor :name
97
+
98
+ # Output only. A field that, if true, indicates that the system is working to
99
+ # make adjustments to the backend during a LRO.
100
+ # Corresponds to the JSON property `reconciling`
101
+ # @return [Boolean]
102
+ attr_accessor :reconciling
103
+ alias_method :reconciling?, :reconciling
104
+
105
+ # Required. The name of the service account used for Cloud Build and Cloud Run.
106
+ # Should have the role roles/firebaseapphosting.computeRunner or equivalent
107
+ # permissions.
108
+ # Corresponds to the JSON property `serviceAccount`
109
+ # @return [String]
110
+ attr_accessor :service_account
111
+
112
+ # Required. Immutable. Specifies how App Hosting will serve the content for this
113
+ # backend. It will either be contained to a single region (REGIONAL_STRICT) or
114
+ # allowed to use App Hosting's global-replicated serving infrastructure (
115
+ # GLOBAL_ACCESS).
116
+ # Corresponds to the JSON property `servingLocality`
117
+ # @return [String]
118
+ attr_accessor :serving_locality
119
+
120
+ # Output only. System-assigned, unique identifier.
121
+ # Corresponds to the JSON property `uid`
122
+ # @return [String]
123
+ attr_accessor :uid
124
+
125
+ # Output only. Time at which the backend was last updated.
126
+ # Corresponds to the JSON property `updateTime`
127
+ # @return [String]
128
+ attr_accessor :update_time
129
+
130
+ # Output only. The primary URI to communicate with the backend.
131
+ # Corresponds to the JSON property `uri`
132
+ # @return [String]
133
+ attr_accessor :uri
134
+
135
+ def initialize(**args)
136
+ update!(**args)
137
+ end
138
+
139
+ # Update properties of this object
140
+ def update!(**args)
141
+ @annotations = args[:annotations] if args.key?(:annotations)
142
+ @app_id = args[:app_id] if args.key?(:app_id)
143
+ @codebase = args[:codebase] if args.key?(:codebase)
144
+ @create_time = args[:create_time] if args.key?(:create_time)
145
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
146
+ @display_name = args[:display_name] if args.key?(:display_name)
147
+ @environment = args[:environment] if args.key?(:environment)
148
+ @etag = args[:etag] if args.key?(:etag)
149
+ @labels = args[:labels] if args.key?(:labels)
150
+ @managed_resources = args[:managed_resources] if args.key?(:managed_resources)
151
+ @mode = args[:mode] if args.key?(:mode)
152
+ @name = args[:name] if args.key?(:name)
153
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
154
+ @service_account = args[:service_account] if args.key?(:service_account)
155
+ @serving_locality = args[:serving_locality] if args.key?(:serving_locality)
156
+ @uid = args[:uid] if args.key?(:uid)
157
+ @update_time = args[:update_time] if args.key?(:update_time)
158
+ @uri = args[:uri] if args.key?(:uri)
159
+ end
160
+ end
161
+
162
+ # A single build for a backend, at a specific point codebase reference tag and
163
+ # point in time. Encapsulates several resources, including an Artifact Registry
164
+ # container image, a Cloud Build invocation that built the image, and the Cloud
165
+ # Run revision that uses that image.
166
+ class Build
167
+ include Google::Apis::Core::Hashable
168
+
169
+ # Optional. Unstructured key value map that may be set by external tools to
170
+ # store and arbitrary metadata. They are not queryable and should be preserved
171
+ # when modifying objects.
172
+ # Corresponds to the JSON property `annotations`
173
+ # @return [Hash<String,String>]
174
+ attr_accessor :annotations
175
+
176
+ # Output only. The location of the [Cloud Build logs](https://cloud.google.com/
177
+ # build/docs/view-build-results) for the build process.
178
+ # Corresponds to the JSON property `buildLogsUri`
179
+ # @return [String]
180
+ attr_accessor :build_logs_uri
181
+
182
+ # Additional configuration of the backend for this build.
183
+ # Corresponds to the JSON property `config`
184
+ # @return [Google::Apis::FirebaseapphostingV1::Config]
185
+ attr_accessor :config
186
+
187
+ # Output only. Time at which the build was created.
188
+ # Corresponds to the JSON property `createTime`
189
+ # @return [String]
190
+ attr_accessor :create_time
191
+
192
+ # Output only. Time at which the build was deleted.
193
+ # Corresponds to the JSON property `deleteTime`
194
+ # @return [String]
195
+ attr_accessor :delete_time
196
+
197
+ # Optional. Human-readable name. 63 character limit.
198
+ # Corresponds to the JSON property `displayName`
199
+ # @return [String]
200
+ attr_accessor :display_name
201
+
202
+ # Output only. The environment name of the backend when this build was created.
203
+ # Corresponds to the JSON property `environment`
204
+ # @return [String]
205
+ attr_accessor :environment
206
+
207
+ # Output only. A list of all errors that occurred during an App Hosting build.
208
+ # Corresponds to the JSON property `errors`
209
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Error>]
210
+ attr_accessor :errors
211
+
212
+ # Output only. Server-computed checksum based on other values; may be sent on
213
+ # update or delete to ensure operation is done on expected resource.
214
+ # Corresponds to the JSON property `etag`
215
+ # @return [String]
216
+ attr_accessor :etag
217
+
218
+ # Output only. The Artifact Registry [container image](https://cloud.google.com/
219
+ # artifact-registry/docs/reference/rest/v1/projects.locations.repositories.
220
+ # dockerImages) URI, used by the Cloud Run [`revision`](https://cloud.google.com/
221
+ # run/docs/reference/rest/v2/projects.locations.services.revisions) for this
222
+ # build.
223
+ # Corresponds to the JSON property `image`
224
+ # @return [String]
225
+ attr_accessor :image
226
+
227
+ # Optional. Unstructured key value map that can be used to organize and
228
+ # categorize objects.
229
+ # Corresponds to the JSON property `labels`
230
+ # @return [Hash<String,String>]
231
+ attr_accessor :labels
232
+
233
+ # Identifier. The resource name of the build. Format: `projects/`project`/
234
+ # locations/`locationId`/backends/`backendId`/builds/`buildId``.
235
+ # Corresponds to the JSON property `name`
236
+ # @return [String]
237
+ attr_accessor :name
238
+
239
+ # Output only. A field that, if true, indicates that the build has an ongoing
240
+ # LRO.
241
+ # Corresponds to the JSON property `reconciling`
242
+ # @return [Boolean]
243
+ attr_accessor :reconciling
244
+ alias_method :reconciling?, :reconciling
245
+
246
+ # The source for the build.
247
+ # Corresponds to the JSON property `source`
248
+ # @return [Google::Apis::FirebaseapphostingV1::BuildSource]
249
+ attr_accessor :source
250
+
251
+ # Output only. The state of the build.
252
+ # Corresponds to the JSON property `state`
253
+ # @return [String]
254
+ attr_accessor :state
255
+
256
+ # Output only. System-assigned, unique identifier.
257
+ # Corresponds to the JSON property `uid`
258
+ # @return [String]
259
+ attr_accessor :uid
260
+
261
+ # Output only. Time at which the build was last updated.
262
+ # Corresponds to the JSON property `updateTime`
263
+ # @return [String]
264
+ attr_accessor :update_time
265
+
266
+ def initialize(**args)
267
+ update!(**args)
268
+ end
269
+
270
+ # Update properties of this object
271
+ def update!(**args)
272
+ @annotations = args[:annotations] if args.key?(:annotations)
273
+ @build_logs_uri = args[:build_logs_uri] if args.key?(:build_logs_uri)
274
+ @config = args[:config] if args.key?(:config)
275
+ @create_time = args[:create_time] if args.key?(:create_time)
276
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
277
+ @display_name = args[:display_name] if args.key?(:display_name)
278
+ @environment = args[:environment] if args.key?(:environment)
279
+ @errors = args[:errors] if args.key?(:errors)
280
+ @etag = args[:etag] if args.key?(:etag)
281
+ @image = args[:image] if args.key?(:image)
282
+ @labels = args[:labels] if args.key?(:labels)
283
+ @name = args[:name] if args.key?(:name)
284
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
285
+ @source = args[:source] if args.key?(:source)
286
+ @state = args[:state] if args.key?(:state)
287
+ @uid = args[:uid] if args.key?(:uid)
288
+ @update_time = args[:update_time] if args.key?(:update_time)
289
+ end
290
+ end
291
+
292
+ # The source for the build.
293
+ class BuildSource
294
+ include Google::Apis::Core::Hashable
295
+
296
+ # A codebase source, representing the state of the codebase that the build will
297
+ # be created at.
298
+ # Corresponds to the JSON property `codebase`
299
+ # @return [Google::Apis::FirebaseapphostingV1::CodebaseSource]
300
+ attr_accessor :codebase
301
+
302
+ # The URI of an Artifact Registry [container image](https://cloud.google.com/
303
+ # artifact-registry/docs/reference/rest/v1/projects.locations.repositories.
304
+ # dockerImages) to use as the build source.
305
+ # Corresponds to the JSON property `container`
306
+ # @return [Google::Apis::FirebaseapphostingV1::ContainerSource]
307
+ attr_accessor :container
308
+
309
+ def initialize(**args)
310
+ update!(**args)
311
+ end
312
+
313
+ # Update properties of this object
314
+ def update!(**args)
315
+ @codebase = args[:codebase] if args.key?(:codebase)
316
+ @container = args[:container] if args.key?(:container)
317
+ end
318
+ end
319
+
320
+ # The request message for Operations.CancelOperation.
321
+ class CancelOperationRequest
322
+ include Google::Apis::Core::Hashable
323
+
324
+ def initialize(**args)
325
+ update!(**args)
326
+ end
327
+
328
+ # Update properties of this object
329
+ def update!(**args)
330
+ end
331
+ end
332
+
333
+ # The connection to an external source repository to watch for event-driven
334
+ # updates to the backend.
335
+ class Codebase
336
+ include Google::Apis::Core::Hashable
337
+
338
+ # Required. The resource name for the Developer Connect [`gitRepositoryLink`](
339
+ # https://cloud.google.com/developer-connect/docs/api/reference/rest/v1/projects.
340
+ # locations.connections.gitRepositoryLinks) connected to this backend, in the
341
+ # format: `projects/`project`/locations/`location`/connections/`connection`/
342
+ # gitRepositoryLinks/`repositoryLink`` The connection for the `gitRepositoryLink`
343
+ # must made be using the Firebase App Hosting GitHub App via the Firebase
344
+ # Console.
345
+ # Corresponds to the JSON property `repository`
346
+ # @return [String]
347
+ attr_accessor :repository
348
+
349
+ # Optional. If `repository` is provided, the directory relative to the root of
350
+ # the repository to use as the root for the deployed web app.
351
+ # Corresponds to the JSON property `rootDirectory`
352
+ # @return [String]
353
+ attr_accessor :root_directory
354
+
355
+ def initialize(**args)
356
+ update!(**args)
357
+ end
358
+
359
+ # Update properties of this object
360
+ def update!(**args)
361
+ @repository = args[:repository] if args.key?(:repository)
362
+ @root_directory = args[:root_directory] if args.key?(:root_directory)
363
+ end
364
+ end
365
+
366
+ # A codebase source, representing the state of the codebase that the build will
367
+ # be created at.
368
+ class CodebaseSource
369
+ include Google::Apis::Core::Hashable
370
+
371
+ # Version control metadata for a user associated with a resolved codebase.
372
+ # Currently assumes a Git user.
373
+ # Corresponds to the JSON property `author`
374
+ # @return [Google::Apis::FirebaseapphostingV1::UserMetadata]
375
+ attr_accessor :author
376
+
377
+ # The branch in the codebase to build from, using the latest commit.
378
+ # Corresponds to the JSON property `branch`
379
+ # @return [String]
380
+ attr_accessor :branch
381
+
382
+ # The commit in the codebase to build from.
383
+ # Corresponds to the JSON property `commit`
384
+ # @return [String]
385
+ attr_accessor :commit
386
+
387
+ # Output only. The message of a codebase change.
388
+ # Corresponds to the JSON property `commitMessage`
389
+ # @return [String]
390
+ attr_accessor :commit_message
391
+
392
+ # Output only. The time the change was made.
393
+ # Corresponds to the JSON property `commitTime`
394
+ # @return [String]
395
+ attr_accessor :commit_time
396
+
397
+ # Output only. The human-friendly name to use for this Codebase when displaying
398
+ # a build. We use the first eight characters of the SHA-1 hash for GitHub.com.
399
+ # Corresponds to the JSON property `displayName`
400
+ # @return [String]
401
+ attr_accessor :display_name
402
+
403
+ # Output only. The full SHA-1 hash of a Git commit, if available.
404
+ # Corresponds to the JSON property `hash`
405
+ # @return [String]
406
+ attr_accessor :hash_prop
407
+
408
+ # Output only. A URI linking to the codebase on an hosting provider's website.
409
+ # May not be valid if the commit has been rebased or force-pushed out of
410
+ # existence in the linked repository.
411
+ # Corresponds to the JSON property `uri`
412
+ # @return [String]
413
+ attr_accessor :uri
414
+
415
+ def initialize(**args)
416
+ update!(**args)
417
+ end
418
+
419
+ # Update properties of this object
420
+ def update!(**args)
421
+ @author = args[:author] if args.key?(:author)
422
+ @branch = args[:branch] if args.key?(:branch)
423
+ @commit = args[:commit] if args.key?(:commit)
424
+ @commit_message = args[:commit_message] if args.key?(:commit_message)
425
+ @commit_time = args[:commit_time] if args.key?(:commit_time)
426
+ @display_name = args[:display_name] if args.key?(:display_name)
427
+ @hash_prop = args[:hash_prop] if args.key?(:hash_prop)
428
+ @uri = args[:uri] if args.key?(:uri)
429
+ end
430
+ end
431
+
432
+ # Additional configuration of the backend for this build.
433
+ class Config
434
+ include Google::Apis::Core::Hashable
435
+
436
+ # Optional. Environment variables for this build.
437
+ # Corresponds to the JSON property `env`
438
+ # @return [Array<Google::Apis::FirebaseapphostingV1::EnvironmentVariable>]
439
+ attr_accessor :env
440
+
441
+ # Additional configuration to apply to the Cloud Run [`service`](https://cloud.
442
+ # google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-
443
+ # service).
444
+ # Corresponds to the JSON property `runConfig`
445
+ # @return [Google::Apis::FirebaseapphostingV1::RunConfig]
446
+ attr_accessor :run_config
447
+
448
+ def initialize(**args)
449
+ update!(**args)
450
+ end
451
+
452
+ # Update properties of this object
453
+ def update!(**args)
454
+ @env = args[:env] if args.key?(:env)
455
+ @run_config = args[:run_config] if args.key?(:run_config)
456
+ end
457
+ end
458
+
459
+ # The URI of an Artifact Registry [container image](https://cloud.google.com/
460
+ # artifact-registry/docs/reference/rest/v1/projects.locations.repositories.
461
+ # dockerImages) to use as the build source.
462
+ class ContainerSource
463
+ include Google::Apis::Core::Hashable
464
+
465
+ # Required. A URI representing a container for the backend to use.
466
+ # Corresponds to the JSON property `image`
467
+ # @return [String]
468
+ attr_accessor :image
469
+
470
+ def initialize(**args)
471
+ update!(**args)
472
+ end
473
+
474
+ # Update properties of this object
475
+ def update!(**args)
476
+ @image = args[:image] if args.key?(:image)
477
+ end
478
+ end
479
+
480
+ # Additional metadata for operations on custom domains.
481
+ class CustomDomainOperationMetadata
482
+ include Google::Apis::Core::Hashable
483
+
484
+ # Output only. The custom domain's `CertState`, which must be `CERT_ACTIVE` for
485
+ # the create operations to complete.
486
+ # Corresponds to the JSON property `certState`
487
+ # @return [String]
488
+ attr_accessor :cert_state
489
+
490
+ # Output only. The custom domain's `HostState`, which must be `HOST_ACTIVE` for
491
+ # Create operations of the domain name this `CustomDomain` refers toto complete.
492
+ # Corresponds to the JSON property `hostState`
493
+ # @return [String]
494
+ attr_accessor :host_state
495
+
496
+ # Output only. A list of issues that are currently preventing the operation from
497
+ # completing. These are generally DNS-related issues encountered when querying a
498
+ # domain's records or attempting to mint an SSL certificate.
499
+ # Corresponds to the JSON property `issues`
500
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Status>]
501
+ attr_accessor :issues
502
+
503
+ # Output only. A list of steps that the user must complete to migrate their
504
+ # domain to App Hosting without downtime.
505
+ # Corresponds to the JSON property `liveMigrationSteps`
506
+ # @return [Array<Google::Apis::FirebaseapphostingV1::LiveMigrationStep>]
507
+ attr_accessor :live_migration_steps
508
+
509
+ # Output only. The custom domain's `OwnershipState`, which must be `
510
+ # OWNERSHIP_ACTIVE` for the create operations to complete.
511
+ # Corresponds to the JSON property `ownershipState`
512
+ # @return [String]
513
+ attr_accessor :ownership_state
514
+
515
+ # Output only. A set of DNS record updates to perform, to allow App Hosting to
516
+ # serve secure content on the domain.
517
+ # Corresponds to the JSON property `quickSetupUpdates`
518
+ # @return [Array<Google::Apis::FirebaseapphostingV1::DnsUpdates>]
519
+ attr_accessor :quick_setup_updates
520
+
521
+ def initialize(**args)
522
+ update!(**args)
523
+ end
524
+
525
+ # Update properties of this object
526
+ def update!(**args)
527
+ @cert_state = args[:cert_state] if args.key?(:cert_state)
528
+ @host_state = args[:host_state] if args.key?(:host_state)
529
+ @issues = args[:issues] if args.key?(:issues)
530
+ @live_migration_steps = args[:live_migration_steps] if args.key?(:live_migration_steps)
531
+ @ownership_state = args[:ownership_state] if args.key?(:ownership_state)
532
+ @quick_setup_updates = args[:quick_setup_updates] if args.key?(:quick_setup_updates)
533
+ end
534
+ end
535
+
536
+ # The status of a custom domain's linkage to a backend.
537
+ class CustomDomainStatus
538
+ include Google::Apis::Core::Hashable
539
+
540
+ # Output only. Tracks SSL certificate status for the domain.
541
+ # Corresponds to the JSON property `certState`
542
+ # @return [String]
543
+ attr_accessor :cert_state
544
+
545
+ # Output only. Tracks whether a custom domain is detected as appropriately
546
+ # directing traffic to App Hosting.
547
+ # Corresponds to the JSON property `hostState`
548
+ # @return [String]
549
+ attr_accessor :host_state
550
+
551
+ # Output only. A list of issues with domain configuration. Allows users to self-
552
+ # correct problems with DNS records.
553
+ # Corresponds to the JSON property `issues`
554
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Status>]
555
+ attr_accessor :issues
556
+
557
+ # Output only. Tracks whether the backend is permitted to serve content on the
558
+ # domain, based off the domain's DNS records.
559
+ # Corresponds to the JSON property `ownershipState`
560
+ # @return [String]
561
+ attr_accessor :ownership_state
562
+
563
+ # Output only. Lists the records that must added or removed to a custom domain's
564
+ # DNS in order to finish setup and start serving content. Field is present
565
+ # during onboarding. Also present after onboarding if one or more of the above
566
+ # states is not *_ACTIVE, indicating the domain's DNS records are in a bad state.
567
+ # Corresponds to the JSON property `requiredDnsUpdates`
568
+ # @return [Array<Google::Apis::FirebaseapphostingV1::DnsUpdates>]
569
+ attr_accessor :required_dns_updates
570
+
571
+ def initialize(**args)
572
+ update!(**args)
573
+ end
574
+
575
+ # Update properties of this object
576
+ def update!(**args)
577
+ @cert_state = args[:cert_state] if args.key?(:cert_state)
578
+ @host_state = args[:host_state] if args.key?(:host_state)
579
+ @issues = args[:issues] if args.key?(:issues)
580
+ @ownership_state = args[:ownership_state] if args.key?(:ownership_state)
581
+ @required_dns_updates = args[:required_dns_updates] if args.key?(:required_dns_updates)
582
+ end
583
+ end
584
+
585
+ # A representation of a DNS records for a domain. DNS records are resource
586
+ # records that define how systems and services should behave when handling
587
+ # requests for a domain. For example, when you add `A` records to your domain's
588
+ # DNS records, you're informing other systems (such as your users' web browsers)
589
+ # to contact those IPv4 addresses to retrieve resources relevant to your domain (
590
+ # such as your App Hosting files).
591
+ class DnsRecord
592
+ include Google::Apis::Core::Hashable
593
+
594
+ # Output only. The domain the record pertains to, e.g. `foo.bar.com.`.
595
+ # Corresponds to the JSON property `domainName`
596
+ # @return [String]
597
+ attr_accessor :domain_name
598
+
599
+ # Output only. The data of the record. The meaning of the value depends on
600
+ # record type: - A and AAAA: IP addresses for the domain. - CNAME: Another
601
+ # domain to check for records. - TXT: Arbitrary text strings associated with the
602
+ # domain. App Hosting uses TXT records to determine which Firebase projects have
603
+ # permission to act on the domain's behalf. - CAA: The record's flags, tag, and
604
+ # value, e.g. `0 issue "pki.goog"`.
605
+ # Corresponds to the JSON property `rdata`
606
+ # @return [String]
607
+ attr_accessor :rdata
608
+
609
+ # Output only. An enum that indicates which state(s) this DNS record applies to.
610
+ # Populated for all records with an `ADD` or `REMOVE` required action.
611
+ # Corresponds to the JSON property `relevantState`
612
+ # @return [Array<String>]
613
+ attr_accessor :relevant_state
614
+
615
+ # Output only. An enum that indicates the a required action for this record.
616
+ # Populated when the record is part of a required change in a `DnsUpdates` `
617
+ # discovered` or `desired` record set.
618
+ # Corresponds to the JSON property `requiredAction`
619
+ # @return [String]
620
+ attr_accessor :required_action
621
+
622
+ # Output only. The record's type, which determines what data the record contains.
623
+ # Corresponds to the JSON property `type`
624
+ # @return [String]
625
+ attr_accessor :type
626
+
627
+ def initialize(**args)
628
+ update!(**args)
629
+ end
630
+
631
+ # Update properties of this object
632
+ def update!(**args)
633
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
634
+ @rdata = args[:rdata] if args.key?(:rdata)
635
+ @relevant_state = args[:relevant_state] if args.key?(:relevant_state)
636
+ @required_action = args[:required_action] if args.key?(:required_action)
637
+ @type = args[:type] if args.key?(:type)
638
+ end
639
+ end
640
+
641
+ # A set of DNS records relevant to the setup and maintenance of a custom domain
642
+ # in App Hosting.
643
+ class DnsRecordSet
644
+ include Google::Apis::Core::Hashable
645
+
646
+ # The `Status` type defines a logical error model that is suitable for different
647
+ # programming environments, including REST APIs and RPC APIs. It is used by [
648
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
649
+ # data: error code, error message, and error details. You can find out more
650
+ # about this error model and how to work with it in the [API Design Guide](https:
651
+ # //cloud.google.com/apis/design/errors).
652
+ # Corresponds to the JSON property `checkError`
653
+ # @return [Google::Apis::FirebaseapphostingV1::Status]
654
+ attr_accessor :check_error
655
+
656
+ # Output only. The domain name the record set pertains to.
657
+ # Corresponds to the JSON property `domainName`
658
+ # @return [String]
659
+ attr_accessor :domain_name
660
+
661
+ # Output only. Records on the domain.
662
+ # Corresponds to the JSON property `records`
663
+ # @return [Array<Google::Apis::FirebaseapphostingV1::DnsRecord>]
664
+ attr_accessor :records
665
+
666
+ def initialize(**args)
667
+ update!(**args)
668
+ end
669
+
670
+ # Update properties of this object
671
+ def update!(**args)
672
+ @check_error = args[:check_error] if args.key?(:check_error)
673
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
674
+ @records = args[:records] if args.key?(:records)
675
+ end
676
+ end
677
+
678
+ # A set of DNS record updates that you should make to allow App Hosting to serve
679
+ # secure content in response to requests against your domain. These updates
680
+ # present the current state of your domain's and related subdomains' DNS records
681
+ # when App Hosting last queried them, and the desired set of records that App
682
+ # Hosting needs to see before your custom domain can be fully active.
683
+ class DnsUpdates
684
+ include Google::Apis::Core::Hashable
685
+
686
+ # Output only. The last time App Hosting checked your custom domain's DNS
687
+ # records.
688
+ # Corresponds to the JSON property `checkTime`
689
+ # @return [String]
690
+ attr_accessor :check_time
691
+
692
+ # Output only. The set of DNS records App Hosting needs in order to be able to
693
+ # serve secure content on the domain.
694
+ # Corresponds to the JSON property `desired`
695
+ # @return [Array<Google::Apis::FirebaseapphostingV1::DnsRecordSet>]
696
+ attr_accessor :desired
697
+
698
+ # Output only. The set of DNS records App Hosting discovered when inspecting a
699
+ # domain.
700
+ # Corresponds to the JSON property `discovered`
701
+ # @return [Array<Google::Apis::FirebaseapphostingV1::DnsRecordSet>]
702
+ attr_accessor :discovered
703
+
704
+ # Output only. The domain name the DNS updates pertain to.
705
+ # Corresponds to the JSON property `domainName`
706
+ # @return [String]
707
+ attr_accessor :domain_name
708
+
709
+ def initialize(**args)
710
+ update!(**args)
711
+ end
712
+
713
+ # Update properties of this object
714
+ def update!(**args)
715
+ @check_time = args[:check_time] if args.key?(:check_time)
716
+ @desired = args[:desired] if args.key?(:desired)
717
+ @discovered = args[:discovered] if args.key?(:discovered)
718
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
719
+ end
720
+ end
721
+
722
+ # A domain name that is associated with a backend.
723
+ class Domain
724
+ include Google::Apis::Core::Hashable
725
+
726
+ # Optional. Annotations as key value pairs.
727
+ # Corresponds to the JSON property `annotations`
728
+ # @return [Hash<String,String>]
729
+ attr_accessor :annotations
730
+
731
+ # Output only. Time at which the domain was created.
732
+ # Corresponds to the JSON property `createTime`
733
+ # @return [String]
734
+ attr_accessor :create_time
735
+
736
+ # The status of a custom domain's linkage to a backend.
737
+ # Corresponds to the JSON property `customDomainStatus`
738
+ # @return [Google::Apis::FirebaseapphostingV1::CustomDomainStatus]
739
+ attr_accessor :custom_domain_status
740
+
741
+ # Output only. Time at which the domain was deleted.
742
+ # Corresponds to the JSON property `deleteTime`
743
+ # @return [String]
744
+ attr_accessor :delete_time
745
+
746
+ # Optional. Whether the domain is disabled. Defaults to false.
747
+ # Corresponds to the JSON property `disabled`
748
+ # @return [Boolean]
749
+ attr_accessor :disabled
750
+ alias_method :disabled?, :disabled
751
+
752
+ # Optional. Mutable human-readable name for the domain. 63 character limit. e.g.
753
+ # `prod domain`.
754
+ # Corresponds to the JSON property `displayName`
755
+ # @return [String]
756
+ attr_accessor :display_name
757
+
758
+ # Output only. Server-computed checksum based on other values; may be sent on
759
+ # update or delete to ensure operation is done on expected resource.
760
+ # Corresponds to the JSON property `etag`
761
+ # @return [String]
762
+ attr_accessor :etag
763
+
764
+ # Optional. Labels as key value pairs.
765
+ # Corresponds to the JSON property `labels`
766
+ # @return [Hash<String,String>]
767
+ attr_accessor :labels
768
+
769
+ # Identifier. The resource name of the domain, e.g. `/projects/p/locations/l/
770
+ # backends/b/domains/foo.com`
771
+ # Corresponds to the JSON property `name`
772
+ # @return [String]
773
+ attr_accessor :name
774
+
775
+ # Output only. A field that, if true, indicates that the build has an ongoing
776
+ # LRO.
777
+ # Corresponds to the JSON property `reconciling`
778
+ # @return [Boolean]
779
+ attr_accessor :reconciling
780
+ alias_method :reconciling?, :reconciling
781
+
782
+ # Indicates whether App Hosting will serve content on the domain.
783
+ # Corresponds to the JSON property `serve`
784
+ # @return [Google::Apis::FirebaseapphostingV1::ServingBehavior]
785
+ attr_accessor :serve
786
+
787
+ # Output only. The type of the domain.
788
+ # Corresponds to the JSON property `type`
789
+ # @return [String]
790
+ attr_accessor :type
791
+
792
+ # Output only. System-assigned, unique identifier.
793
+ # Corresponds to the JSON property `uid`
794
+ # @return [String]
795
+ attr_accessor :uid
796
+
797
+ # Output only. Time at which the domain was last updated.
798
+ # Corresponds to the JSON property `updateTime`
799
+ # @return [String]
800
+ attr_accessor :update_time
801
+
802
+ def initialize(**args)
803
+ update!(**args)
804
+ end
805
+
806
+ # Update properties of this object
807
+ def update!(**args)
808
+ @annotations = args[:annotations] if args.key?(:annotations)
809
+ @create_time = args[:create_time] if args.key?(:create_time)
810
+ @custom_domain_status = args[:custom_domain_status] if args.key?(:custom_domain_status)
811
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
812
+ @disabled = args[:disabled] if args.key?(:disabled)
813
+ @display_name = args[:display_name] if args.key?(:display_name)
814
+ @etag = args[:etag] if args.key?(:etag)
815
+ @labels = args[:labels] if args.key?(:labels)
816
+ @name = args[:name] if args.key?(:name)
817
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
818
+ @serve = args[:serve] if args.key?(:serve)
819
+ @type = args[:type] if args.key?(:type)
820
+ @uid = args[:uid] if args.key?(:uid)
821
+ @update_time = args[:update_time] if args.key?(:update_time)
822
+ end
823
+ end
824
+
825
+ # Represents the metadata of a long-running operation on domains.
826
+ class DomainOperationMetadata
827
+ include Google::Apis::Core::Hashable
828
+
829
+ # Output only. API version used to start the operation.
830
+ # Corresponds to the JSON property `apiVersion`
831
+ # @return [String]
832
+ attr_accessor :api_version
833
+
834
+ # Output only. The time the operation was created.
835
+ # Corresponds to the JSON property `createTime`
836
+ # @return [String]
837
+ attr_accessor :create_time
838
+
839
+ # Additional metadata for operations on custom domains.
840
+ # Corresponds to the JSON property `customDomainOperationMetadata`
841
+ # @return [Google::Apis::FirebaseapphostingV1::CustomDomainOperationMetadata]
842
+ attr_accessor :custom_domain_operation_metadata
843
+
844
+ # Output only. The time the operation finished running.
845
+ # Corresponds to the JSON property `endTime`
846
+ # @return [String]
847
+ attr_accessor :end_time
848
+
849
+ # Output only. Identifies whether the user has requested cancellation of the
850
+ # operation. Operations that have been cancelled successfully have Operation.
851
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
852
+ # CANCELLED`.
853
+ # Corresponds to the JSON property `requestedCancellation`
854
+ # @return [Boolean]
855
+ attr_accessor :requested_cancellation
856
+ alias_method :requested_cancellation?, :requested_cancellation
857
+
858
+ # Output only. Human-readable status of the operation, if any.
859
+ # Corresponds to the JSON property `statusMessage`
860
+ # @return [String]
861
+ attr_accessor :status_message
862
+
863
+ # Output only. Server-defined resource path for the target of the operation.
864
+ # Corresponds to the JSON property `target`
865
+ # @return [String]
866
+ attr_accessor :target
867
+
868
+ # Output only. Name of the verb executed by the operation.
869
+ # Corresponds to the JSON property `verb`
870
+ # @return [String]
871
+ attr_accessor :verb
872
+
873
+ def initialize(**args)
874
+ update!(**args)
875
+ end
876
+
877
+ # Update properties of this object
878
+ def update!(**args)
879
+ @api_version = args[:api_version] if args.key?(:api_version)
880
+ @create_time = args[:create_time] if args.key?(:create_time)
881
+ @custom_domain_operation_metadata = args[:custom_domain_operation_metadata] if args.key?(:custom_domain_operation_metadata)
882
+ @end_time = args[:end_time] if args.key?(:end_time)
883
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
884
+ @status_message = args[:status_message] if args.key?(:status_message)
885
+ @target = args[:target] if args.key?(:target)
886
+ @verb = args[:verb] if args.key?(:verb)
887
+ end
888
+ end
889
+
890
+ # A generic empty message that you can re-use to avoid defining duplicated empty
891
+ # messages in your APIs. A typical example is to use it as the request or the
892
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
893
+ # protobuf.Empty) returns (google.protobuf.Empty); `
894
+ class Empty
895
+ include Google::Apis::Core::Hashable
896
+
897
+ def initialize(**args)
898
+ update!(**args)
899
+ end
900
+
901
+ # Update properties of this object
902
+ def update!(**args)
903
+ end
904
+ end
905
+
906
+ # Environment variables for this build.
907
+ class EnvironmentVariable
908
+ include Google::Apis::Core::Hashable
909
+
910
+ # Optional. Where this variable should be made available. If left unspecified,
911
+ # will be available in both BUILD and BACKEND.
912
+ # Corresponds to the JSON property `availability`
913
+ # @return [Array<String>]
914
+ attr_accessor :availability
915
+
916
+ # A fully qualified secret version. The value of the secret will be accessed
917
+ # once while building the application and once per cold start of the container
918
+ # at runtime. The service account used by Cloud Build and by Cloud Run must each
919
+ # have the `secretmanager.versions.access` permission on the secret.
920
+ # Corresponds to the JSON property `secret`
921
+ # @return [String]
922
+ attr_accessor :secret
923
+
924
+ # A plaintext value. This value is encrypted at rest, but all project readers
925
+ # can view the value when reading your backend configuration.
926
+ # Corresponds to the JSON property `value`
927
+ # @return [String]
928
+ attr_accessor :value
929
+
930
+ # Required. The name of the environment variable. - Must be a valid environment
931
+ # variable name (e.g. A-Z or underscores). - May not start with "FIREBASE" or "
932
+ # GOOGLE". - May not be a reserved environment variable for KNative/Cloud Run
933
+ # Corresponds to the JSON property `variable`
934
+ # @return [String]
935
+ attr_accessor :variable
936
+
937
+ def initialize(**args)
938
+ update!(**args)
939
+ end
940
+
941
+ # Update properties of this object
942
+ def update!(**args)
943
+ @availability = args[:availability] if args.key?(:availability)
944
+ @secret = args[:secret] if args.key?(:secret)
945
+ @value = args[:value] if args.key?(:value)
946
+ @variable = args[:variable] if args.key?(:variable)
947
+ end
948
+ end
949
+
950
+ # The container for the rpc status and source for any errors found during the
951
+ # build process.
952
+ class Error
953
+ include Google::Apis::Core::Hashable
954
+
955
+ # Output only. Resource link
956
+ # Corresponds to the JSON property `cloudResource`
957
+ # @return [String]
958
+ attr_accessor :cloud_resource
959
+
960
+ # The `Status` type defines a logical error model that is suitable for different
961
+ # programming environments, including REST APIs and RPC APIs. It is used by [
962
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
963
+ # data: error code, error message, and error details. You can find out more
964
+ # about this error model and how to work with it in the [API Design Guide](https:
965
+ # //cloud.google.com/apis/design/errors).
966
+ # Corresponds to the JSON property `error`
967
+ # @return [Google::Apis::FirebaseapphostingV1::Status]
968
+ attr_accessor :error
969
+
970
+ # Output only. The source of the error for the build, if in a `FAILED` state.
971
+ # Corresponds to the JSON property `errorSource`
972
+ # @return [String]
973
+ attr_accessor :error_source
974
+
975
+ def initialize(**args)
976
+ update!(**args)
977
+ end
978
+
979
+ # Update properties of this object
980
+ def update!(**args)
981
+ @cloud_resource = args[:cloud_resource] if args.key?(:cloud_resource)
982
+ @error = args[:error] if args.key?(:error)
983
+ @error_source = args[:error_source] if args.key?(:error_source)
984
+ end
985
+ end
986
+
987
+ # Message for response to list backends
988
+ class ListBackendsResponse
989
+ include Google::Apis::Core::Hashable
990
+
991
+ # The list of backends
992
+ # Corresponds to the JSON property `backends`
993
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Backend>]
994
+ attr_accessor :backends
995
+
996
+ # A token identifying the next page of results the server should return.
997
+ # Corresponds to the JSON property `nextPageToken`
998
+ # @return [String]
999
+ attr_accessor :next_page_token
1000
+
1001
+ # Locations that could not be reached.
1002
+ # Corresponds to the JSON property `unreachable`
1003
+ # @return [Array<String>]
1004
+ attr_accessor :unreachable
1005
+
1006
+ def initialize(**args)
1007
+ update!(**args)
1008
+ end
1009
+
1010
+ # Update properties of this object
1011
+ def update!(**args)
1012
+ @backends = args[:backends] if args.key?(:backends)
1013
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1014
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1015
+ end
1016
+ end
1017
+
1018
+ # Message for response to list builds.
1019
+ class ListBuildsResponse
1020
+ include Google::Apis::Core::Hashable
1021
+
1022
+ # The list of builds.
1023
+ # Corresponds to the JSON property `builds`
1024
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Build>]
1025
+ attr_accessor :builds
1026
+
1027
+ # A token identifying the next page of results the server should return.
1028
+ # Corresponds to the JSON property `nextPageToken`
1029
+ # @return [String]
1030
+ attr_accessor :next_page_token
1031
+
1032
+ # Locations that could not be reached.
1033
+ # Corresponds to the JSON property `unreachable`
1034
+ # @return [Array<String>]
1035
+ attr_accessor :unreachable
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @builds = args[:builds] if args.key?(:builds)
1044
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1045
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1046
+ end
1047
+ end
1048
+
1049
+ # Message for response to list domains.
1050
+ class ListDomainsResponse
1051
+ include Google::Apis::Core::Hashable
1052
+
1053
+ # Output only. The list of domains.
1054
+ # Corresponds to the JSON property `domains`
1055
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Domain>]
1056
+ attr_accessor :domains
1057
+
1058
+ # Output only. A token identifying the next page of results the server should
1059
+ # return.
1060
+ # Corresponds to the JSON property `nextPageToken`
1061
+ # @return [String]
1062
+ attr_accessor :next_page_token
1063
+
1064
+ # Output only. Locations that could not be reached.
1065
+ # Corresponds to the JSON property `unreachable`
1066
+ # @return [Array<String>]
1067
+ attr_accessor :unreachable
1068
+
1069
+ def initialize(**args)
1070
+ update!(**args)
1071
+ end
1072
+
1073
+ # Update properties of this object
1074
+ def update!(**args)
1075
+ @domains = args[:domains] if args.key?(:domains)
1076
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1077
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1078
+ end
1079
+ end
1080
+
1081
+ # The response message for Locations.ListLocations.
1082
+ class ListLocationsResponse
1083
+ include Google::Apis::Core::Hashable
1084
+
1085
+ # A list of locations that matches the specified filter in the request.
1086
+ # Corresponds to the JSON property `locations`
1087
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Location>]
1088
+ attr_accessor :locations
1089
+
1090
+ # The standard List next-page token.
1091
+ # Corresponds to the JSON property `nextPageToken`
1092
+ # @return [String]
1093
+ attr_accessor :next_page_token
1094
+
1095
+ def initialize(**args)
1096
+ update!(**args)
1097
+ end
1098
+
1099
+ # Update properties of this object
1100
+ def update!(**args)
1101
+ @locations = args[:locations] if args.key?(:locations)
1102
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1103
+ end
1104
+ end
1105
+
1106
+ # The response message for Operations.ListOperations.
1107
+ class ListOperationsResponse
1108
+ include Google::Apis::Core::Hashable
1109
+
1110
+ # The standard List next-page token.
1111
+ # Corresponds to the JSON property `nextPageToken`
1112
+ # @return [String]
1113
+ attr_accessor :next_page_token
1114
+
1115
+ # A list of operations that matches the specified filter in the request.
1116
+ # Corresponds to the JSON property `operations`
1117
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Operation>]
1118
+ attr_accessor :operations
1119
+
1120
+ def initialize(**args)
1121
+ update!(**args)
1122
+ end
1123
+
1124
+ # Update properties of this object
1125
+ def update!(**args)
1126
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1127
+ @operations = args[:operations] if args.key?(:operations)
1128
+ end
1129
+ end
1130
+
1131
+ # Message for response to list rollouts.
1132
+ class ListRolloutsResponse
1133
+ include Google::Apis::Core::Hashable
1134
+
1135
+ # A token identifying the next page of results the server should return.
1136
+ # Corresponds to the JSON property `nextPageToken`
1137
+ # @return [String]
1138
+ attr_accessor :next_page_token
1139
+
1140
+ # The list of rollouts.
1141
+ # Corresponds to the JSON property `rollouts`
1142
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Rollout>]
1143
+ attr_accessor :rollouts
1144
+
1145
+ # Locations that could not be reached.
1146
+ # Corresponds to the JSON property `unreachable`
1147
+ # @return [Array<String>]
1148
+ attr_accessor :unreachable
1149
+
1150
+ def initialize(**args)
1151
+ update!(**args)
1152
+ end
1153
+
1154
+ # Update properties of this object
1155
+ def update!(**args)
1156
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1157
+ @rollouts = args[:rollouts] if args.key?(:rollouts)
1158
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1159
+ end
1160
+ end
1161
+
1162
+ # A set of updates including ACME challenges and DNS records that allow App
1163
+ # Hosting to create an SSL certificate and establish project ownership for your
1164
+ # domain name before you direct traffic to App Hosting servers. Use these
1165
+ # updates to facilitate zero downtime migrations to App Hosting from other
1166
+ # services. After you've made the recommended updates, check your custom domain'
1167
+ # s `ownershipState` and `certState`. To avoid downtime, they should be `
1168
+ # OWNERSHIP_ACTIVE` and `CERT_ACTIVE`, respectively, before you update your `A`
1169
+ # and `AAAA` records.
1170
+ class LiveMigrationStep
1171
+ include Google::Apis::Core::Hashable
1172
+
1173
+ # Output only. DNS updates to facilitate your domain's zero-downtime migration
1174
+ # to App Hosting.
1175
+ # Corresponds to the JSON property `dnsUpdates`
1176
+ # @return [Array<Google::Apis::FirebaseapphostingV1::DnsUpdates>]
1177
+ attr_accessor :dns_updates
1178
+
1179
+ # Output only. Issues that prevent the current step from completing.
1180
+ # Corresponds to the JSON property `issues`
1181
+ # @return [Array<Google::Apis::FirebaseapphostingV1::Status>]
1182
+ attr_accessor :issues
1183
+
1184
+ # Output only. One or more states from the `CustomDomainStatus` of the migrating
1185
+ # domain that this step is attempting to make ACTIVE. For example, if the step
1186
+ # is attempting to mint an SSL certificate, this field will include `CERT_STATE`.
1187
+ # Corresponds to the JSON property `relevantDomainStates`
1188
+ # @return [Array<String>]
1189
+ attr_accessor :relevant_domain_states
1190
+
1191
+ # Output only. The state of the live migration step, indicates whether you
1192
+ # should work to complete the step now, in the future, or have already completed
1193
+ # it.
1194
+ # Corresponds to the JSON property `stepState`
1195
+ # @return [String]
1196
+ attr_accessor :step_state
1197
+
1198
+ def initialize(**args)
1199
+ update!(**args)
1200
+ end
1201
+
1202
+ # Update properties of this object
1203
+ def update!(**args)
1204
+ @dns_updates = args[:dns_updates] if args.key?(:dns_updates)
1205
+ @issues = args[:issues] if args.key?(:issues)
1206
+ @relevant_domain_states = args[:relevant_domain_states] if args.key?(:relevant_domain_states)
1207
+ @step_state = args[:step_state] if args.key?(:step_state)
1208
+ end
1209
+ end
1210
+
1211
+ # A resource that represents a Google Cloud location.
1212
+ class Location
1213
+ include Google::Apis::Core::Hashable
1214
+
1215
+ # The friendly name for this location, typically a nearby city name. For example,
1216
+ # "Tokyo".
1217
+ # Corresponds to the JSON property `displayName`
1218
+ # @return [String]
1219
+ attr_accessor :display_name
1220
+
1221
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1222
+ # region": "us-east1"`
1223
+ # Corresponds to the JSON property `labels`
1224
+ # @return [Hash<String,String>]
1225
+ attr_accessor :labels
1226
+
1227
+ # The canonical id for this location. For example: `"us-east1"`.
1228
+ # Corresponds to the JSON property `locationId`
1229
+ # @return [String]
1230
+ attr_accessor :location_id
1231
+
1232
+ # Service-specific metadata. For example the available capacity at the given
1233
+ # location.
1234
+ # Corresponds to the JSON property `metadata`
1235
+ # @return [Hash<String,Object>]
1236
+ attr_accessor :metadata
1237
+
1238
+ # Resource name for the location, which may vary between implementations. For
1239
+ # example: `"projects/example-project/locations/us-east1"`
1240
+ # Corresponds to the JSON property `name`
1241
+ # @return [String]
1242
+ attr_accessor :name
1243
+
1244
+ def initialize(**args)
1245
+ update!(**args)
1246
+ end
1247
+
1248
+ # Update properties of this object
1249
+ def update!(**args)
1250
+ @display_name = args[:display_name] if args.key?(:display_name)
1251
+ @labels = args[:labels] if args.key?(:labels)
1252
+ @location_id = args[:location_id] if args.key?(:location_id)
1253
+ @metadata = args[:metadata] if args.key?(:metadata)
1254
+ @name = args[:name] if args.key?(:name)
1255
+ end
1256
+ end
1257
+
1258
+ # An external resource managed by App Hosting on the project.
1259
+ class ManagedResource
1260
+ include Google::Apis::Core::Hashable
1261
+
1262
+ # A managed Cloud Run [`service`](https://cloud.google.com/run/docs/reference/
1263
+ # rest/v2/projects.locations.services#resource:-service).
1264
+ # Corresponds to the JSON property `runService`
1265
+ # @return [Google::Apis::FirebaseapphostingV1::RunService]
1266
+ attr_accessor :run_service
1267
+
1268
+ def initialize(**args)
1269
+ update!(**args)
1270
+ end
1271
+
1272
+ # Update properties of this object
1273
+ def update!(**args)
1274
+ @run_service = args[:run_service] if args.key?(:run_service)
1275
+ end
1276
+ end
1277
+
1278
+ # This resource represents a long-running operation that is the result of a
1279
+ # network API call.
1280
+ class Operation
1281
+ include Google::Apis::Core::Hashable
1282
+
1283
+ # If the value is `false`, it means the operation is still in progress. If `true`
1284
+ # , the operation is completed, and either `error` or `response` is available.
1285
+ # Corresponds to the JSON property `done`
1286
+ # @return [Boolean]
1287
+ attr_accessor :done
1288
+ alias_method :done?, :done
1289
+
1290
+ # The `Status` type defines a logical error model that is suitable for different
1291
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1292
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1293
+ # data: error code, error message, and error details. You can find out more
1294
+ # about this error model and how to work with it in the [API Design Guide](https:
1295
+ # //cloud.google.com/apis/design/errors).
1296
+ # Corresponds to the JSON property `error`
1297
+ # @return [Google::Apis::FirebaseapphostingV1::Status]
1298
+ attr_accessor :error
1299
+
1300
+ # Service-specific metadata associated with the operation. It typically contains
1301
+ # progress information and common metadata such as create time. Some services
1302
+ # might not provide such metadata. Any method that returns a long-running
1303
+ # operation should document the metadata type, if any.
1304
+ # Corresponds to the JSON property `metadata`
1305
+ # @return [Hash<String,Object>]
1306
+ attr_accessor :metadata
1307
+
1308
+ # The server-assigned name, which is only unique within the same service that
1309
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1310
+ # be a resource name ending with `operations/`unique_id``.
1311
+ # Corresponds to the JSON property `name`
1312
+ # @return [String]
1313
+ attr_accessor :name
1314
+
1315
+ # The normal, successful response of the operation. If the original method
1316
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
1317
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
1318
+ # response should be the resource. For other methods, the response should have
1319
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
1320
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
1321
+ # `TakeSnapshotResponse`.
1322
+ # Corresponds to the JSON property `response`
1323
+ # @return [Hash<String,Object>]
1324
+ attr_accessor :response
1325
+
1326
+ def initialize(**args)
1327
+ update!(**args)
1328
+ end
1329
+
1330
+ # Update properties of this object
1331
+ def update!(**args)
1332
+ @done = args[:done] if args.key?(:done)
1333
+ @error = args[:error] if args.key?(:error)
1334
+ @metadata = args[:metadata] if args.key?(:metadata)
1335
+ @name = args[:name] if args.key?(:name)
1336
+ @response = args[:response] if args.key?(:response)
1337
+ end
1338
+ end
1339
+
1340
+ # Represents the metadata of a long-running operation.
1341
+ class OperationMetadata
1342
+ include Google::Apis::Core::Hashable
1343
+
1344
+ # Output only. API version used to start the operation.
1345
+ # Corresponds to the JSON property `apiVersion`
1346
+ # @return [String]
1347
+ attr_accessor :api_version
1348
+
1349
+ # Output only. The time the operation was created.
1350
+ # Corresponds to the JSON property `createTime`
1351
+ # @return [String]
1352
+ attr_accessor :create_time
1353
+
1354
+ # Output only. The time the operation finished running.
1355
+ # Corresponds to the JSON property `endTime`
1356
+ # @return [String]
1357
+ attr_accessor :end_time
1358
+
1359
+ # Output only. Identifies whether the user has requested cancellation of the
1360
+ # operation. Operations that have been cancelled successfully have Operation.
1361
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
1362
+ # CANCELLED`.
1363
+ # Corresponds to the JSON property `requestedCancellation`
1364
+ # @return [Boolean]
1365
+ attr_accessor :requested_cancellation
1366
+ alias_method :requested_cancellation?, :requested_cancellation
1367
+
1368
+ # Output only. Human-readable status of the operation, if any.
1369
+ # Corresponds to the JSON property `statusMessage`
1370
+ # @return [String]
1371
+ attr_accessor :status_message
1372
+
1373
+ # Output only. Server-defined resource path for the target of the operation.
1374
+ # Corresponds to the JSON property `target`
1375
+ # @return [String]
1376
+ attr_accessor :target
1377
+
1378
+ # Output only. Name of the verb executed by the operation.
1379
+ # Corresponds to the JSON property `verb`
1380
+ # @return [String]
1381
+ attr_accessor :verb
1382
+
1383
+ def initialize(**args)
1384
+ update!(**args)
1385
+ end
1386
+
1387
+ # Update properties of this object
1388
+ def update!(**args)
1389
+ @api_version = args[:api_version] if args.key?(:api_version)
1390
+ @create_time = args[:create_time] if args.key?(:create_time)
1391
+ @end_time = args[:end_time] if args.key?(:end_time)
1392
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1393
+ @status_message = args[:status_message] if args.key?(:status_message)
1394
+ @target = args[:target] if args.key?(:target)
1395
+ @verb = args[:verb] if args.key?(:verb)
1396
+ end
1397
+ end
1398
+
1399
+ # Specifies redirect behavior for a domain.
1400
+ class Redirect
1401
+ include Google::Apis::Core::Hashable
1402
+
1403
+ # Optional. The status code to use in a redirect response. Must be a valid HTTP
1404
+ # 3XX status code. Defaults to 302 if not present.
1405
+ # Corresponds to the JSON property `status`
1406
+ # @return [Fixnum]
1407
+ attr_accessor :status
1408
+
1409
+ # Required. The URI of the redirect's intended destination. This URI will be
1410
+ # prepended to the original request path. URI without a scheme are assumed to be
1411
+ # HTTPS.
1412
+ # Corresponds to the JSON property `uri`
1413
+ # @return [String]
1414
+ attr_accessor :uri
1415
+
1416
+ def initialize(**args)
1417
+ update!(**args)
1418
+ end
1419
+
1420
+ # Update properties of this object
1421
+ def update!(**args)
1422
+ @status = args[:status] if args.key?(:status)
1423
+ @uri = args[:uri] if args.key?(:uri)
1424
+ end
1425
+ end
1426
+
1427
+ # A single rollout of a build for a backend.
1428
+ class Rollout
1429
+ include Google::Apis::Core::Hashable
1430
+
1431
+ # Optional. Unstructured key value map that may be set by external tools to
1432
+ # store and arbitrary metadata. They are not queryable and should be preserved
1433
+ # when modifying objects.
1434
+ # Corresponds to the JSON property `annotations`
1435
+ # @return [Hash<String,String>]
1436
+ attr_accessor :annotations
1437
+
1438
+ # Immutable. The name of a build that already exists. It doesn't have to be
1439
+ # built; a rollout will wait for a build to be ready before updating traffic.
1440
+ # Corresponds to the JSON property `build`
1441
+ # @return [String]
1442
+ attr_accessor :build
1443
+
1444
+ # Output only. Time at which the rollout was created.
1445
+ # Corresponds to the JSON property `createTime`
1446
+ # @return [String]
1447
+ attr_accessor :create_time
1448
+
1449
+ # Output only. Time at which the rollout was deleted.
1450
+ # Corresponds to the JSON property `deleteTime`
1451
+ # @return [String]
1452
+ attr_accessor :delete_time
1453
+
1454
+ # Optional. Human-readable name. 63 character limit.
1455
+ # Corresponds to the JSON property `displayName`
1456
+ # @return [String]
1457
+ attr_accessor :display_name
1458
+
1459
+ # The `Status` type defines a logical error model that is suitable for different
1460
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1461
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1462
+ # data: error code, error message, and error details. You can find out more
1463
+ # about this error model and how to work with it in the [API Design Guide](https:
1464
+ # //cloud.google.com/apis/design/errors).
1465
+ # Corresponds to the JSON property `error`
1466
+ # @return [Google::Apis::FirebaseapphostingV1::Status]
1467
+ attr_accessor :error
1468
+
1469
+ # Output only. Server-computed checksum based on other values; may be sent on
1470
+ # update or delete to ensure operation is done on expected resource.
1471
+ # Corresponds to the JSON property `etag`
1472
+ # @return [String]
1473
+ attr_accessor :etag
1474
+
1475
+ # Optional. Unstructured key value map that can be used to organize and
1476
+ # categorize objects.
1477
+ # Corresponds to the JSON property `labels`
1478
+ # @return [Hash<String,String>]
1479
+ attr_accessor :labels
1480
+
1481
+ # Identifier. The resource name of the rollout. Format: `projects/`project`/
1482
+ # locations/`locationId`/backends/`backendId`/rollouts/`rolloutId``.
1483
+ # Corresponds to the JSON property `name`
1484
+ # @return [String]
1485
+ attr_accessor :name
1486
+
1487
+ # Output only. A field that, if true, indicates that the Rollout currently has
1488
+ # an LRO.
1489
+ # Corresponds to the JSON property `reconciling`
1490
+ # @return [Boolean]
1491
+ attr_accessor :reconciling
1492
+ alias_method :reconciling?, :reconciling
1493
+
1494
+ # Output only. The state of the rollout.
1495
+ # Corresponds to the JSON property `state`
1496
+ # @return [String]
1497
+ attr_accessor :state
1498
+
1499
+ # Output only. System-assigned, unique identifier.
1500
+ # Corresponds to the JSON property `uid`
1501
+ # @return [String]
1502
+ attr_accessor :uid
1503
+
1504
+ # Output only. Time at which the rollout was last updated.
1505
+ # Corresponds to the JSON property `updateTime`
1506
+ # @return [String]
1507
+ attr_accessor :update_time
1508
+
1509
+ def initialize(**args)
1510
+ update!(**args)
1511
+ end
1512
+
1513
+ # Update properties of this object
1514
+ def update!(**args)
1515
+ @annotations = args[:annotations] if args.key?(:annotations)
1516
+ @build = args[:build] if args.key?(:build)
1517
+ @create_time = args[:create_time] if args.key?(:create_time)
1518
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
1519
+ @display_name = args[:display_name] if args.key?(:display_name)
1520
+ @error = args[:error] if args.key?(:error)
1521
+ @etag = args[:etag] if args.key?(:etag)
1522
+ @labels = args[:labels] if args.key?(:labels)
1523
+ @name = args[:name] if args.key?(:name)
1524
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
1525
+ @state = args[:state] if args.key?(:state)
1526
+ @uid = args[:uid] if args.key?(:uid)
1527
+ @update_time = args[:update_time] if args.key?(:update_time)
1528
+ end
1529
+ end
1530
+
1531
+ # The policy for how automatic builds and rollouts are triggered and rolled out.
1532
+ class RolloutPolicy
1533
+ include Google::Apis::Core::Hashable
1534
+
1535
+ # If set, specifies a branch that triggers a new build to be started with this
1536
+ # policy. Otherwise, no automatic rollouts will happen.
1537
+ # Corresponds to the JSON property `codebaseBranch`
1538
+ # @return [String]
1539
+ attr_accessor :codebase_branch
1540
+
1541
+ # Optional. A flag that, if true, prevents automatic rollouts from being created
1542
+ # via this RolloutPolicy.
1543
+ # Corresponds to the JSON property `disabled`
1544
+ # @return [Boolean]
1545
+ attr_accessor :disabled
1546
+ alias_method :disabled?, :disabled
1547
+
1548
+ # Output only. If `disabled` is set, the time at which the automatic rollouts
1549
+ # were disabled.
1550
+ # Corresponds to the JSON property `disabledTime`
1551
+ # @return [String]
1552
+ attr_accessor :disabled_time
1553
+
1554
+ def initialize(**args)
1555
+ update!(**args)
1556
+ end
1557
+
1558
+ # Update properties of this object
1559
+ def update!(**args)
1560
+ @codebase_branch = args[:codebase_branch] if args.key?(:codebase_branch)
1561
+ @disabled = args[:disabled] if args.key?(:disabled)
1562
+ @disabled_time = args[:disabled_time] if args.key?(:disabled_time)
1563
+ end
1564
+ end
1565
+
1566
+ # Additional configuration to apply to the Cloud Run [`service`](https://cloud.
1567
+ # google.com/run/docs/reference/rest/v2/projects.locations.services#resource:-
1568
+ # service).
1569
+ class RunConfig
1570
+ include Google::Apis::Core::Hashable
1571
+
1572
+ # Optional. Maximum number of requests that each Cloud Run instance can receive.
1573
+ # By default, each instance can receive Cloud Run's default of up to 80 requests
1574
+ # at the same time. Concurrency can be set to any integer value up to 1000.
1575
+ # Corresponds to the JSON property `concurrency`
1576
+ # @return [Fixnum]
1577
+ attr_accessor :concurrency
1578
+
1579
+ # Optional. Number of CPUs used for each serving instance. By default, cpu
1580
+ # defaults to the Cloud Run's default of 1.0. CPU can be set to value 1, 2, 4, 6,
1581
+ # or 8 CPUs, and for less than 1 CPU, a value from 0.08 to less than 1.00, in
1582
+ # increments of 0.01. If you set a value of less than 1 CPU, you must set
1583
+ # concurrency to 1, and CPU will only be allocated during request processing.
1584
+ # Increasing CPUs limit may require increase in memory limits: - 4 CPUs: at
1585
+ # least 2 GiB - 6 CPUs: at least 4 GiB - 8 CPUs: at least 4 GiB
1586
+ # Corresponds to the JSON property `cpu`
1587
+ # @return [Float]
1588
+ attr_accessor :cpu
1589
+
1590
+ # Optional. Number of Cloud Run instances to maintain at maximum for each
1591
+ # revision. By default, each Cloud Run [`service`](https://cloud.google.com/run/
1592
+ # docs/reference/rest/v2/projects.locations.services#resource:-service) scales
1593
+ # out to Cloud Run's default of a maximum of 100 instances. The maximum
1594
+ # max_instances limit is based on your quota. See https://cloud.google.com/run/
1595
+ # docs/configuring/max-instances#limits.
1596
+ # Corresponds to the JSON property `maxInstances`
1597
+ # @return [Fixnum]
1598
+ attr_accessor :max_instances
1599
+
1600
+ # Optional. Amount of memory allocated for each serving instance in MiB. By
1601
+ # default, memory defaults to the Cloud Run's default where each instance is
1602
+ # allocated 512 MiB of memory. Memory can be set to any integer value between
1603
+ # 128 to 32768. Increasing memory limit may require increase in CPUs limits: -
1604
+ # Over 4 GiB: at least 2 CPUs - Over 8 GiB: at least 4 CPUs - Over 16 GiB: at
1605
+ # least 6 CPUs - Over 24 GiB: at least 8 CPUs
1606
+ # Corresponds to the JSON property `memoryMib`
1607
+ # @return [Fixnum]
1608
+ attr_accessor :memory_mib
1609
+
1610
+ # Optional. Number of Cloud Run instances to maintain at minimum for each Cloud
1611
+ # Run Service. By default, there are no minimum. Even if the service splits
1612
+ # traffic across multiple revisions, the total number of instances for a service
1613
+ # will be capped at this value.
1614
+ # Corresponds to the JSON property `minInstances`
1615
+ # @return [Fixnum]
1616
+ attr_accessor :min_instances
1617
+
1618
+ def initialize(**args)
1619
+ update!(**args)
1620
+ end
1621
+
1622
+ # Update properties of this object
1623
+ def update!(**args)
1624
+ @concurrency = args[:concurrency] if args.key?(:concurrency)
1625
+ @cpu = args[:cpu] if args.key?(:cpu)
1626
+ @max_instances = args[:max_instances] if args.key?(:max_instances)
1627
+ @memory_mib = args[:memory_mib] if args.key?(:memory_mib)
1628
+ @min_instances = args[:min_instances] if args.key?(:min_instances)
1629
+ end
1630
+ end
1631
+
1632
+ # A managed Cloud Run [`service`](https://cloud.google.com/run/docs/reference/
1633
+ # rest/v2/projects.locations.services#resource:-service).
1634
+ class RunService
1635
+ include Google::Apis::Core::Hashable
1636
+
1637
+ # Optional. The name of the Cloud Run [`service`](https://cloud.google.com/run/
1638
+ # docs/reference/rest/v2/projects.locations.services#resource:-service), in the
1639
+ # format: `projects/`project`/locations/`location`/services/`serviceId``
1640
+ # Corresponds to the JSON property `service`
1641
+ # @return [String]
1642
+ attr_accessor :service
1643
+
1644
+ def initialize(**args)
1645
+ update!(**args)
1646
+ end
1647
+
1648
+ # Update properties of this object
1649
+ def update!(**args)
1650
+ @service = args[:service] if args.key?(:service)
1651
+ end
1652
+ end
1653
+
1654
+ # Indicates whether App Hosting will serve content on the domain.
1655
+ class ServingBehavior
1656
+ include Google::Apis::Core::Hashable
1657
+
1658
+ # Specifies redirect behavior for a domain.
1659
+ # Corresponds to the JSON property `redirect`
1660
+ # @return [Google::Apis::FirebaseapphostingV1::Redirect]
1661
+ attr_accessor :redirect
1662
+
1663
+ def initialize(**args)
1664
+ update!(**args)
1665
+ end
1666
+
1667
+ # Update properties of this object
1668
+ def update!(**args)
1669
+ @redirect = args[:redirect] if args.key?(:redirect)
1670
+ end
1671
+ end
1672
+
1673
+ # The `Status` type defines a logical error model that is suitable for different
1674
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1675
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1676
+ # data: error code, error message, and error details. You can find out more
1677
+ # about this error model and how to work with it in the [API Design Guide](https:
1678
+ # //cloud.google.com/apis/design/errors).
1679
+ class Status
1680
+ include Google::Apis::Core::Hashable
1681
+
1682
+ # The status code, which should be an enum value of google.rpc.Code.
1683
+ # Corresponds to the JSON property `code`
1684
+ # @return [Fixnum]
1685
+ attr_accessor :code
1686
+
1687
+ # A list of messages that carry the error details. There is a common set of
1688
+ # message types for APIs to use.
1689
+ # Corresponds to the JSON property `details`
1690
+ # @return [Array<Hash<String,Object>>]
1691
+ attr_accessor :details
1692
+
1693
+ # A developer-facing error message, which should be in English. Any user-facing
1694
+ # error message should be localized and sent in the google.rpc.Status.details
1695
+ # field, or localized by the client.
1696
+ # Corresponds to the JSON property `message`
1697
+ # @return [String]
1698
+ attr_accessor :message
1699
+
1700
+ def initialize(**args)
1701
+ update!(**args)
1702
+ end
1703
+
1704
+ # Update properties of this object
1705
+ def update!(**args)
1706
+ @code = args[:code] if args.key?(:code)
1707
+ @details = args[:details] if args.key?(:details)
1708
+ @message = args[:message] if args.key?(:message)
1709
+ end
1710
+ end
1711
+
1712
+ # Controls traffic configuration for the backend.
1713
+ class Traffic
1714
+ include Google::Apis::Core::Hashable
1715
+
1716
+ # Optional. Unstructured key value map that may be set by external tools to
1717
+ # store and arbitrary metadata. They are not queryable and should be preserved
1718
+ # when modifying objects.
1719
+ # Corresponds to the JSON property `annotations`
1720
+ # @return [Hash<String,String>]
1721
+ attr_accessor :annotations
1722
+
1723
+ # Output only. Time at which the backend was created.
1724
+ # Corresponds to the JSON property `createTime`
1725
+ # @return [String]
1726
+ attr_accessor :create_time
1727
+
1728
+ # A list of traffic splits that together represent where traffic is being routed.
1729
+ # Corresponds to the JSON property `current`
1730
+ # @return [Google::Apis::FirebaseapphostingV1::TrafficSet]
1731
+ attr_accessor :current
1732
+
1733
+ # Output only. Server-computed checksum based on other values; may be sent on
1734
+ # update or delete to ensure operation is done on expected resource.
1735
+ # Corresponds to the JSON property `etag`
1736
+ # @return [String]
1737
+ attr_accessor :etag
1738
+
1739
+ # Optional. Unstructured key value map that can be used to organize and
1740
+ # categorize objects.
1741
+ # Corresponds to the JSON property `labels`
1742
+ # @return [Hash<String,String>]
1743
+ attr_accessor :labels
1744
+
1745
+ # Identifier. The resource name of the backend's traffic. Format: `projects/`
1746
+ # project`/locations/`locationId`/backends/`backendId`/traffic`.
1747
+ # Corresponds to the JSON property `name`
1748
+ # @return [String]
1749
+ attr_accessor :name
1750
+
1751
+ # Output only. A field that, if true, indicates that the system is working to
1752
+ # make the backend's `current` match the requested `target` list.
1753
+ # Corresponds to the JSON property `reconciling`
1754
+ # @return [Boolean]
1755
+ attr_accessor :reconciling
1756
+ alias_method :reconciling?, :reconciling
1757
+
1758
+ # The policy for how automatic builds and rollouts are triggered and rolled out.
1759
+ # Corresponds to the JSON property `rolloutPolicy`
1760
+ # @return [Google::Apis::FirebaseapphostingV1::RolloutPolicy]
1761
+ attr_accessor :rollout_policy
1762
+
1763
+ # A list of traffic splits that together represent where traffic is being routed.
1764
+ # Corresponds to the JSON property `target`
1765
+ # @return [Google::Apis::FirebaseapphostingV1::TrafficSet]
1766
+ attr_accessor :target
1767
+
1768
+ # Output only. System-assigned, unique identifier.
1769
+ # Corresponds to the JSON property `uid`
1770
+ # @return [String]
1771
+ attr_accessor :uid
1772
+
1773
+ # Output only. Time at which the backend was last updated.
1774
+ # Corresponds to the JSON property `updateTime`
1775
+ # @return [String]
1776
+ attr_accessor :update_time
1777
+
1778
+ def initialize(**args)
1779
+ update!(**args)
1780
+ end
1781
+
1782
+ # Update properties of this object
1783
+ def update!(**args)
1784
+ @annotations = args[:annotations] if args.key?(:annotations)
1785
+ @create_time = args[:create_time] if args.key?(:create_time)
1786
+ @current = args[:current] if args.key?(:current)
1787
+ @etag = args[:etag] if args.key?(:etag)
1788
+ @labels = args[:labels] if args.key?(:labels)
1789
+ @name = args[:name] if args.key?(:name)
1790
+ @reconciling = args[:reconciling] if args.key?(:reconciling)
1791
+ @rollout_policy = args[:rollout_policy] if args.key?(:rollout_policy)
1792
+ @target = args[:target] if args.key?(:target)
1793
+ @uid = args[:uid] if args.key?(:uid)
1794
+ @update_time = args[:update_time] if args.key?(:update_time)
1795
+ end
1796
+ end
1797
+
1798
+ # A list of traffic splits that together represent where traffic is being routed.
1799
+ class TrafficSet
1800
+ include Google::Apis::Core::Hashable
1801
+
1802
+ # Required. The list of traffic splits.
1803
+ # Corresponds to the JSON property `splits`
1804
+ # @return [Array<Google::Apis::FirebaseapphostingV1::TrafficSplit>]
1805
+ attr_accessor :splits
1806
+
1807
+ def initialize(**args)
1808
+ update!(**args)
1809
+ end
1810
+
1811
+ # Update properties of this object
1812
+ def update!(**args)
1813
+ @splits = args[:splits] if args.key?(:splits)
1814
+ end
1815
+ end
1816
+
1817
+ # The traffic allocation for the backend.
1818
+ class TrafficSplit
1819
+ include Google::Apis::Core::Hashable
1820
+
1821
+ # Required. The build that traffic is being routed to.
1822
+ # Corresponds to the JSON property `build`
1823
+ # @return [String]
1824
+ attr_accessor :build
1825
+
1826
+ # Required. The percentage of traffic to send to the build. Currently must be
1827
+ # 100% or 0%.
1828
+ # Corresponds to the JSON property `percent`
1829
+ # @return [Fixnum]
1830
+ attr_accessor :percent
1831
+
1832
+ def initialize(**args)
1833
+ update!(**args)
1834
+ end
1835
+
1836
+ # Update properties of this object
1837
+ def update!(**args)
1838
+ @build = args[:build] if args.key?(:build)
1839
+ @percent = args[:percent] if args.key?(:percent)
1840
+ end
1841
+ end
1842
+
1843
+ # Version control metadata for a user associated with a resolved codebase.
1844
+ # Currently assumes a Git user.
1845
+ class UserMetadata
1846
+ include Google::Apis::Core::Hashable
1847
+
1848
+ # Output only. The 'name' field in a Git user's git.config. Required by Git.
1849
+ # Corresponds to the JSON property `displayName`
1850
+ # @return [String]
1851
+ attr_accessor :display_name
1852
+
1853
+ # Output only. The 'email' field in a Git user's git.config, if available.
1854
+ # Corresponds to the JSON property `email`
1855
+ # @return [String]
1856
+ attr_accessor :email
1857
+
1858
+ # Output only. The URI of an image file associated with the user's account in an
1859
+ # external source control provider, if available.
1860
+ # Corresponds to the JSON property `imageUri`
1861
+ # @return [String]
1862
+ attr_accessor :image_uri
1863
+
1864
+ def initialize(**args)
1865
+ update!(**args)
1866
+ end
1867
+
1868
+ # Update properties of this object
1869
+ def update!(**args)
1870
+ @display_name = args[:display_name] if args.key?(:display_name)
1871
+ @email = args[:email] if args.key?(:email)
1872
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
1873
+ end
1874
+ end
1875
+ end
1876
+ end
1877
+ end