# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module FirebasehostingV1beta1 # Contains metadata about the user who performed an action, such as creating a # release or finalizing a version. class ActingUser include Google::Apis::Core::Hashable # The email address of the user when the user performed the action. # Corresponds to the JSON property `email` # @return [String] attr_accessor :email # A profile image URL for the user. May not be present if the user has changed # their email address or deleted their account. # Corresponds to the JSON property `imageUrl` # @return [String] attr_accessor :image_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @email = args[:email] if args.key?(:email) @image_url = args[:image_url] if args.key?(:image_url) end end # Represents a DNS certificate challenge. class CertDnsChallenge include Google::Apis::Core::Hashable # The domain name upon which the DNS challenge must be satisfied. # Corresponds to the JSON property `domainName` # @return [String] attr_accessor :domain_name # The value that must be present as a TXT record on the domain name to satisfy # the challenge. # Corresponds to the JSON property `token` # @return [String] attr_accessor :token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @domain_name = args[:domain_name] if args.key?(:domain_name) @token = args[:token] if args.key?(:token) end end # Represents an HTTP certificate challenge. class CertHttpChallenge include Google::Apis::Core::Hashable # The URL path on which to serve the specified token to satisfy the certificate # challenge. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path # The token to serve at the specified URL path to satisfy the certificate # challenge. # Corresponds to the JSON property `token` # @return [String] attr_accessor :token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @path = args[:path] if args.key?(:path) @token = args[:token] if args.key?(:token) end end # A `Channel` represents a stream of releases for a site. All sites have a # default `live` channel that serves content to the live Firebase-provided # domains and any connected custom domains. class Channel include Google::Apis::Core::Hashable # Output only. The time at which the channel was created. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # The time at which the channel will be automatically deleted. If null, the # channel will not be automatically deleted. This field is present in output # whether set directly or via the `ttl` field. # Corresponds to the JSON property `expireTime` # @return [String] attr_accessor :expire_time # Text labels used for extra metadata and/or filtering. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The fully-qualified identifier of the Channel. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # A `Release` is a particular [collection of configurations and files](sites. # versions) that is set to be public at a particular time. # Corresponds to the JSON property `release` # @return [Google::Apis::FirebasehostingV1beta1::Release] attr_accessor :release # The number of previous releases to retain on the channel for rollback or other # purposes. Must be a number between 1-100. Defaults to 10 for new channels. # Corresponds to the JSON property `retainedReleaseCount` # @return [Fixnum] attr_accessor :retained_release_count # Input only. A time-to-live for this channel. Sets `expire_time` to the # provided duration past the time of the request. # Corresponds to the JSON property `ttl` # @return [String] attr_accessor :ttl # Output only. The time at which the channel was last updated. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time # Output only. The URL at which the channel can be viewed. For the `live` # channel, the content of the current release may also be visible at other URLs. # Corresponds to the JSON property `url` # @return [String] attr_accessor :url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_time = args[:create_time] if args.key?(:create_time) @expire_time = args[:expire_time] if args.key?(:expire_time) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @release = args[:release] if args.key?(:release) @retained_release_count = args[:retained_release_count] if args.key?(:retained_release_count) @ttl = args[:ttl] if args.key?(:ttl) @update_time = args[:update_time] if args.key?(:update_time) @url = args[:url] if args.key?(:url) end end # The request sent to CloneVersion. class CloneVersionRequest include Google::Apis::Core::Hashable # A representation of filter path. # Corresponds to the JSON property `exclude` # @return [Google::Apis::FirebasehostingV1beta1::PathFilter] attr_accessor :exclude # If true, immediately finalize the version after cloning is complete. # Corresponds to the JSON property `finalize` # @return [Boolean] attr_accessor :finalize alias_method :finalize?, :finalize # A representation of filter path. # Corresponds to the JSON property `include` # @return [Google::Apis::FirebasehostingV1beta1::PathFilter] attr_accessor :include # Required. The name of the version to be cloned, in the format: `sites/`site`/ # versions/`version`` # Corresponds to the JSON property `sourceVersion` # @return [String] attr_accessor :source_version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @exclude = args[:exclude] if args.key?(:exclude) @finalize = args[:finalize] if args.key?(:finalize) @include = args[:include] if args.key?(:include) @source_version = args[:source_version] if args.key?(:source_version) end end # A configured rewrite that directs requests to a Cloud Run service. If the # Cloud Run service does not exist when setting or updating your Firebase # Hosting configuration, then the request fails. Any errors from the Cloud Run # service are passed to the end user (for example, if you delete a service, any # requests directed to that service receive a `404` error). class CloudRunRewrite include Google::Apis::Core::Hashable # Optional. User-provided region where the Cloud Run service is hosted. Defaults # to `us-central1` if not supplied. # Corresponds to the JSON property `region` # @return [String] attr_accessor :region # Required. User-defined ID of the Cloud Run service. # Corresponds to the JSON property `serviceId` # @return [String] attr_accessor :service_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @region = args[:region] if args.key?(:region) @service_id = args[:service_id] if args.key?(:service_id) end end # The intended behavior and status information of a domain. class Domain include Google::Apis::Core::Hashable # Required. The domain name of the association. # Corresponds to the JSON property `domainName` # @return [String] attr_accessor :domain_name # Defines the behavior of a domain-level redirect. Domain redirects preserve the # path of the redirect but replace the requested domain with the one specified # in the redirect configuration. # Corresponds to the JSON property `domainRedirect` # @return [Google::Apis::FirebasehostingV1beta1::DomainRedirect] attr_accessor :domain_redirect # The current certificate provisioning status information for a domain. # Corresponds to the JSON property `provisioning` # @return [Google::Apis::FirebasehostingV1beta1::DomainProvisioning] attr_accessor :provisioning # Required. The site name of the association. # Corresponds to the JSON property `site` # @return [String] attr_accessor :site # Output only. Additional status of the domain association. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Output only. The time at which the domain was last updated. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @domain_name = args[:domain_name] if args.key?(:domain_name) @domain_redirect = args[:domain_redirect] if args.key?(:domain_redirect) @provisioning = args[:provisioning] if args.key?(:provisioning) @site = args[:site] if args.key?(:site) @status = args[:status] if args.key?(:status) @update_time = args[:update_time] if args.key?(:update_time) end end # The current certificate provisioning status information for a domain. class DomainProvisioning include Google::Apis::Core::Hashable # The TXT records (for the certificate challenge) that were found at the last # DNS fetch. # Corresponds to the JSON property `certChallengeDiscoveredTxt` # @return [Array] attr_accessor :cert_challenge_discovered_txt # Represents a DNS certificate challenge. # Corresponds to the JSON property `certChallengeDns` # @return [Google::Apis::FirebasehostingV1beta1::CertDnsChallenge] attr_accessor :cert_challenge_dns # Represents an HTTP certificate challenge. # Corresponds to the JSON property `certChallengeHttp` # @return [Google::Apis::FirebasehostingV1beta1::CertHttpChallenge] attr_accessor :cert_challenge_http # The certificate provisioning status; updated when Firebase Hosting provisions # an SSL certificate for the domain. # Corresponds to the JSON property `certStatus` # @return [String] attr_accessor :cert_status # The IPs found at the last DNS fetch. # Corresponds to the JSON property `discoveredIps` # @return [Array] attr_accessor :discovered_ips # The time at which the last DNS fetch occurred. # Corresponds to the JSON property `dnsFetchTime` # @return [String] attr_accessor :dns_fetch_time # The DNS record match status as of the last DNS fetch. # Corresponds to the JSON property `dnsStatus` # @return [String] attr_accessor :dns_status # The list of IPs to which the domain is expected to resolve. # Corresponds to the JSON property `expectedIps` # @return [Array] attr_accessor :expected_ips def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cert_challenge_discovered_txt = args[:cert_challenge_discovered_txt] if args.key?(:cert_challenge_discovered_txt) @cert_challenge_dns = args[:cert_challenge_dns] if args.key?(:cert_challenge_dns) @cert_challenge_http = args[:cert_challenge_http] if args.key?(:cert_challenge_http) @cert_status = args[:cert_status] if args.key?(:cert_status) @discovered_ips = args[:discovered_ips] if args.key?(:discovered_ips) @dns_fetch_time = args[:dns_fetch_time] if args.key?(:dns_fetch_time) @dns_status = args[:dns_status] if args.key?(:dns_status) @expected_ips = args[:expected_ips] if args.key?(:expected_ips) end end # Defines the behavior of a domain-level redirect. Domain redirects preserve the # path of the redirect but replace the requested domain with the one specified # in the redirect configuration. class DomainRedirect include Google::Apis::Core::Hashable # Required. The domain name to redirect to. # Corresponds to the JSON property `domainName` # @return [String] attr_accessor :domain_name # Required. The redirect status code. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @domain_name = args[:domain_name] if args.key?(:domain_name) @type = args[:type] if args.key?(:type) end end # A generic empty message that you can re-use to avoid defining duplicated empty # messages in your APIs. A typical example is to use it as the request or the # response type of an API method. For instance: service Foo ` rpc Bar(google. # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for # `Empty` is empty JSON object ````. class Empty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # A [`header`](/docs/hosting/full-config#headers) is an object that specifies a # URL pattern that, if matched to the request URL path, triggers Hosting to # apply the specified custom response headers. class Header include Google::Apis::Core::Hashable # The user-supplied [glob](/docs/hosting/full-config#glob_pattern_matching) to # match against the request URL path. # Corresponds to the JSON property `glob` # @return [String] attr_accessor :glob # Required. The additional headers to add to the response. # Corresponds to the JSON property `headers` # @return [Hash] attr_accessor :headers # The user-supplied RE2 regular expression to match against the request URL path. # Corresponds to the JSON property `regex` # @return [String] attr_accessor :regex def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @glob = args[:glob] if args.key?(:glob) @headers = args[:headers] if args.key?(:headers) @regex = args[:regex] if args.key?(:regex) end end # If provided, i18n rewrites are enabled. class I18nConfig include Google::Apis::Core::Hashable # Required. The user-supplied path where country and language specific content # will be looked for within the public directory. # Corresponds to the JSON property `root` # @return [String] attr_accessor :root def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @root = args[:root] if args.key?(:root) end end # The response returned by ListChannels. class ListChannelsResponse include Google::Apis::Core::Hashable # The list of channels. # Corresponds to the JSON property `channels` # @return [Array] attr_accessor :channels # If there are additional releases remaining beyond the ones in this response, # then supply this token in the next [`list`](../sites.channels/list) call to # continue with the next set of releases. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @channels = args[:channels] if args.key?(:channels) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # The response to listing Domains. class ListDomainsResponse include Google::Apis::Core::Hashable # The list of domains, if any exist. # Corresponds to the JSON property `domains` # @return [Array] attr_accessor :domains # The pagination token, if more results exist. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @domains = args[:domains] if args.key?(:domains) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListReleasesResponse include Google::Apis::Core::Hashable # If there are additional releases remaining beyond the ones in this response, # then supply this token in the next [`list`](../sites.versions.files/list) call # to continue with the next set of releases. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of hashes of files that still need to be uploaded, if any exist. # Corresponds to the JSON property `releases` # @return [Array] attr_accessor :releases def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @releases = args[:releases] if args.key?(:releases) end end # class ListVersionFilesResponse include Google::Apis::Core::Hashable # The list path/hashes in the specified version. # Corresponds to the JSON property `files` # @return [Array] attr_accessor :files # The pagination token, if more results exist. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @files = args[:files] if args.key?(:files) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) end end # class ListVersionsResponse include Google::Apis::Core::Hashable # The pagination token, if more results exist # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of versions, if any exist. # Corresponds to the JSON property `versions` # @return [Array] attr_accessor :versions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @versions = args[:versions] if args.key?(:versions) end end # This resource represents a long-running operation that is the result of a # network API call. class Operation include Google::Apis::Core::Hashable # If the value is `false`, it means the operation is still in progress. If `true` # , the operation is completed, and either `error` or `response` is available. # Corresponds to the JSON property `done` # @return [Boolean] attr_accessor :done alias_method :done?, :done # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). # Corresponds to the JSON property `error` # @return [Google::Apis::FirebasehostingV1beta1::Status] attr_accessor :error # Service-specific metadata associated with the operation. It typically contains # progress information and common metadata such as create time. Some services # might not provide such metadata. Any method that returns a long-running # operation should document the metadata type, if any. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # The server-assigned name, which is only unique within the same service that # originally returns it. If you use the default HTTP mapping, the `name` should # be a resource name ending with `operations/`unique_id``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The normal response of the operation in case of success. If the original # method returns no data on success, such as `Delete`, the response is `google. # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, # the response should be the resource. For other methods, the response should # have the type `XxxResponse`, where `Xxx` is the original method name. For # example, if the original method name is `TakeSnapshot()`, the inferred # response type is `TakeSnapshotResponse`. # Corresponds to the JSON property `response` # @return [Hash] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @done = args[:done] if args.key?(:done) @error = args[:error] if args.key?(:error) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @response = args[:response] if args.key?(:response) end end # A representation of filter path. class PathFilter include Google::Apis::Core::Hashable # An array of regexes to filter by. # Corresponds to the JSON property `regexes` # @return [Array] attr_accessor :regexes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @regexes = args[:regexes] if args.key?(:regexes) end end # The request to populate a Version's Files. class PopulateVersionFilesRequest include Google::Apis::Core::Hashable # A set of file paths to the hashes corresponding to assets that should be added # to the version. Note that a file path to an empty hash will remove the path # from the version. Calculate a hash by Gzipping the file then taking the SHA256 # hash of the newly compressed file. # Corresponds to the JSON property `files` # @return [Hash] attr_accessor :files def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @files = args[:files] if args.key?(:files) end end # class PopulateVersionFilesResponse include Google::Apis::Core::Hashable # The content hashes of the specified files that need to be uploaded to the # specified endpoint. # Corresponds to the JSON property `uploadRequiredHashes` # @return [Array] attr_accessor :upload_required_hashes # The URL to which the files should be uploaded, in the format: "https://upload- # firebasehosting.googleapis.com/upload/sites/site-name /versions/versionID/ # files". Perform a multipart `POST` of the Gzipped file contents to the URL # using a forward slash and the hash of the file appended to the end. # Corresponds to the JSON property `uploadUrl` # @return [String] attr_accessor :upload_url def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @upload_required_hashes = args[:upload_required_hashes] if args.key?(:upload_required_hashes) @upload_url = args[:upload_url] if args.key?(:upload_url) end end # Version preview configuration. If active and unexpired, this version will be # accessible via a custom URL even if it is not the currently released version. # Deprecated in favor of site channels. class PreviewConfig include Google::Apis::Core::Hashable # If true, preview URLs are enabled for this version. # Corresponds to the JSON property `active` # @return [Boolean] attr_accessor :active alias_method :active?, :active # Indicates the expiration time for previewing this version; preview URL # requests received after this time will 404. # Corresponds to the JSON property `expireTime` # @return [String] attr_accessor :expire_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @active = args[:active] if args.key?(:active) @expire_time = args[:expire_time] if args.key?(:expire_time) end end # A [`redirect`](/docs/hosting/full-config#redirects) object specifies a URL # pattern that, if matched to the request URL path, triggers Hosting to respond # with a redirect to the specified destination path. class Redirect include Google::Apis::Core::Hashable # The user-supplied [glob](/docs/hosting/full-config#glob_pattern_matching) to # match against the request URL path. # Corresponds to the JSON property `glob` # @return [String] attr_accessor :glob # Required. The value to put in the HTTP location header of the response. The # location can contain capture group values from the pattern using a `:` prefix # to identify the segment and an optional `*` to capture the rest of the URL. # For example: "glob": "/:capture*", "statusCode": 301, "location": "https:// # example.com/foo/:capture" # Corresponds to the JSON property `location` # @return [String] attr_accessor :location # The user-supplied RE2 regular expression to match against the request URL path. # Corresponds to the JSON property `regex` # @return [String] attr_accessor :regex # Required. The status HTTP code to return in the response. It must be a valid # 3xx status code. # Corresponds to the JSON property `statusCode` # @return [Fixnum] attr_accessor :status_code def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @glob = args[:glob] if args.key?(:glob) @location = args[:location] if args.key?(:location) @regex = args[:regex] if args.key?(:regex) @status_code = args[:status_code] if args.key?(:status_code) end end # A `Release` is a particular [collection of configurations and files](sites. # versions) that is set to be public at a particular time. class Release include Google::Apis::Core::Hashable # The deploy description when the release was created. The value can be up to # 512 characters. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message # Output only. The unique identifier for the release, in the format: sites/ site- # name/releases/releaseID This name is provided in the response body when you # call the [`CreateRelease`](sites.releases/create) endpoint. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The time at which the version is set to be public. # Corresponds to the JSON property `releaseTime` # @return [String] attr_accessor :release_time # Contains metadata about the user who performed an action, such as creating a # release or finalizing a version. # Corresponds to the JSON property `releaseUser` # @return [Google::Apis::FirebasehostingV1beta1::ActingUser] attr_accessor :release_user # Explains the reason for the release. Specify a value for this field only when # creating a `SITE_DISABLE` type release. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type # A `Version` is the collection of configuration and [static files](sites. # versions.files) that determine how a site is displayed. # Corresponds to the JSON property `version` # @return [Google::Apis::FirebasehostingV1beta1::Version] attr_accessor :version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @message = args[:message] if args.key?(:message) @name = args[:name] if args.key?(:name) @release_time = args[:release_time] if args.key?(:release_time) @release_user = args[:release_user] if args.key?(:release_user) @type = args[:type] if args.key?(:type) @version = args[:version] if args.key?(:version) end end # A [`rewrite`](/docs/hosting/full-config#rewrites) object specifies a URL # pattern that, if matched to the request URL path, triggers Hosting to respond # as if the service were given the specified destination URL. class Rewrite include Google::Apis::Core::Hashable # The request will be forwarded to Firebase Dynamic Links. # Corresponds to the JSON property `dynamicLinks` # @return [Boolean] attr_accessor :dynamic_links alias_method :dynamic_links?, :dynamic_links # The function to proxy requests to. Must match the exported function name # exactly. # Corresponds to the JSON property `function` # @return [String] attr_accessor :function # The user-supplied [glob](/docs/hosting/full-config#glob_pattern_matching) to # match against the request URL path. # Corresponds to the JSON property `glob` # @return [String] attr_accessor :glob # The URL path to rewrite the request to. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path # The user-supplied RE2 regular expression to match against the request URL path. # Corresponds to the JSON property `regex` # @return [String] attr_accessor :regex # A configured rewrite that directs requests to a Cloud Run service. If the # Cloud Run service does not exist when setting or updating your Firebase # Hosting configuration, then the request fails. Any errors from the Cloud Run # service are passed to the end user (for example, if you delete a service, any # requests directed to that service receive a `404` error). # Corresponds to the JSON property `run` # @return [Google::Apis::FirebasehostingV1beta1::CloudRunRewrite] attr_accessor :run def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @dynamic_links = args[:dynamic_links] if args.key?(:dynamic_links) @function = args[:function] if args.key?(:function) @glob = args[:glob] if args.key?(:glob) @path = args[:path] if args.key?(:path) @regex = args[:regex] if args.key?(:regex) @run = args[:run] if args.key?(:run) end end # The configuration for how incoming requests to a site should be routed and # processed before serving content. The URL request paths are matched against # the specified URL patterns in the configuration, then Hosting applies the # applicable configuration according to a specific [priority order](/docs/ # hosting/full-config#hosting_priority_order). class ServingConfig include Google::Apis::Core::Hashable # How to handle well known App Association files. # Corresponds to the JSON property `appAssociation` # @return [String] attr_accessor :app_association # Defines whether to drop the file extension from uploaded files. # Corresponds to the JSON property `cleanUrls` # @return [Boolean] attr_accessor :clean_urls alias_method :clean_urls?, :clean_urls # An array of objects, where each object specifies a URL pattern that, if # matched to the request URL path, triggers Hosting to apply the specified # custom response headers. # Corresponds to the JSON property `headers` # @return [Array] attr_accessor :headers # If provided, i18n rewrites are enabled. # Corresponds to the JSON property `i18n` # @return [Google::Apis::FirebasehostingV1beta1::I18nConfig] attr_accessor :i18n # An array of objects (called redirect rules), where each rule specifies a URL # pattern that, if matched to the request URL path, triggers Hosting to respond # with a redirect to the specified destination path. # Corresponds to the JSON property `redirects` # @return [Array] attr_accessor :redirects # An array of objects (called rewrite rules), where each rule specifies a URL # pattern that, if matched to the request URL path, triggers Hosting to respond # as if the service were given the specified destination URL. # Corresponds to the JSON property `rewrites` # @return [Array] attr_accessor :rewrites # Defines how to handle a trailing slash in the URL path. # Corresponds to the JSON property `trailingSlashBehavior` # @return [String] attr_accessor :trailing_slash_behavior def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @app_association = args[:app_association] if args.key?(:app_association) @clean_urls = args[:clean_urls] if args.key?(:clean_urls) @headers = args[:headers] if args.key?(:headers) @i18n = args[:i18n] if args.key?(:i18n) @redirects = args[:redirects] if args.key?(:redirects) @rewrites = args[:rewrites] if args.key?(:rewrites) @trailing_slash_behavior = args[:trailing_slash_behavior] if args.key?(:trailing_slash_behavior) end end # A `SiteConfig` contains metadata associated with a specific site that controls # Firebase Hosting serving behavior class SiteConfig include Google::Apis::Core::Hashable # Whether or not web requests made by site visitors are logged via Cloud Logging. # Corresponds to the JSON property `cloudLoggingEnabled` # @return [Boolean] attr_accessor :cloud_logging_enabled alias_method :cloud_logging_enabled?, :cloud_logging_enabled # The number of FINALIZED versions that will be held for a site before automatic # deletion. When a new version is deployed, content for versions in storage in # excess of this number will be deleted, and will no longer be billed for # storage usage. Oldest versions will be deleted first; sites are created with # an unlimited number of max_versions by default. # Corresponds to the JSON property `maxVersions` # @return [Fixnum] attr_accessor :max_versions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cloud_logging_enabled = args[:cloud_logging_enabled] if args.key?(:cloud_logging_enabled) @max_versions = args[:max_versions] if args.key?(:max_versions) end end # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). class Status include Google::Apis::Core::Hashable # The status code, which should be an enum value of google.rpc.Code. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # A list of messages that carry the error details. There is a common set of # message types for APIs to use. # Corresponds to the JSON property `details` # @return [Array>] attr_accessor :details # A developer-facing error message, which should be in English. Any user-facing # error message should be localized and sent in the google.rpc.Status.details # field, or localized by the client. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @details = args[:details] if args.key?(:details) @message = args[:message] if args.key?(:message) end end # A `Version` is the collection of configuration and [static files](sites. # versions.files) that determine how a site is displayed. class Version include Google::Apis::Core::Hashable # The configuration for how incoming requests to a site should be routed and # processed before serving content. The URL request paths are matched against # the specified URL patterns in the configuration, then Hosting applies the # applicable configuration according to a specific [priority order](/docs/ # hosting/full-config#hosting_priority_order). # Corresponds to the JSON property `config` # @return [Google::Apis::FirebasehostingV1beta1::ServingConfig] attr_accessor :config # Output only. The time at which the version was created. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # Contains metadata about the user who performed an action, such as creating a # release or finalizing a version. # Corresponds to the JSON property `createUser` # @return [Google::Apis::FirebasehostingV1beta1::ActingUser] attr_accessor :create_user # Output only. The time at which the version was `DELETED`. # Corresponds to the JSON property `deleteTime` # @return [String] attr_accessor :delete_time # Contains metadata about the user who performed an action, such as creating a # release or finalizing a version. # Corresponds to the JSON property `deleteUser` # @return [Google::Apis::FirebasehostingV1beta1::ActingUser] attr_accessor :delete_user # Output only. The total number of files associated with the version. This value # is calculated after a version is `FINALIZED`. # Corresponds to the JSON property `fileCount` # @return [Fixnum] attr_accessor :file_count # Output only. The time at which the version was `FINALIZED`. # Corresponds to the JSON property `finalizeTime` # @return [String] attr_accessor :finalize_time # Contains metadata about the user who performed an action, such as creating a # release or finalizing a version. # Corresponds to the JSON property `finalizeUser` # @return [Google::Apis::FirebasehostingV1beta1::ActingUser] attr_accessor :finalize_user # The labels used for extra metadata and/or filtering. # Corresponds to the JSON property `labels` # @return [Hash] attr_accessor :labels # The unique identifier for a version, in the format: sites/site-name /versions/ # versionID This name is provided in the response body when you call the [` # CreateVersion`](../sites.versions/create) endpoint. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Version preview configuration. If active and unexpired, this version will be # accessible via a custom URL even if it is not the currently released version. # Deprecated in favor of site channels. # Corresponds to the JSON property `preview` # @return [Google::Apis::FirebasehostingV1beta1::PreviewConfig] attr_accessor :preview # The deploy status of a version. For a successful deploy, call the [` # CreateVersion`](sites.versions/create) endpoint to make a new version (` # CREATED` status), [upload all desired files](sites.versions/populateFiles) to # the version, then [update](sites.versions/patch) the version to the `FINALIZED` # status. Note that if you leave the version in the `CREATED` state for more # than 12 hours, the system will automatically mark the version as `ABANDONED`. # You can also change the status of a version to `DELETED` by calling the [` # DeleteVersion`](sites.versions/delete) endpoint. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status # Output only. The total stored bytesize of the version. This value is # calculated after a version is `FINALIZED`. # Corresponds to the JSON property `versionBytes` # @return [Fixnum] attr_accessor :version_bytes def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @config = args[:config] if args.key?(:config) @create_time = args[:create_time] if args.key?(:create_time) @create_user = args[:create_user] if args.key?(:create_user) @delete_time = args[:delete_time] if args.key?(:delete_time) @delete_user = args[:delete_user] if args.key?(:delete_user) @file_count = args[:file_count] if args.key?(:file_count) @finalize_time = args[:finalize_time] if args.key?(:finalize_time) @finalize_user = args[:finalize_user] if args.key?(:finalize_user) @labels = args[:labels] if args.key?(:labels) @name = args[:name] if args.key?(:name) @preview = args[:preview] if args.key?(:preview) @status = args[:status] if args.key?(:status) @version_bytes = args[:version_bytes] if args.key?(:version_bytes) end end # A static content file that is part of a version. class VersionFile include Google::Apis::Core::Hashable # The SHA256 content hash of the file. # Corresponds to the JSON property `hash` # @return [String] attr_accessor :hash_prop # The URI at which the file's content should display. # Corresponds to the JSON property `path` # @return [String] attr_accessor :path # Output only. The current status of a particular file in the specified version. # The value will be either `pending upload` or `uploaded`. # Corresponds to the JSON property `status` # @return [String] attr_accessor :status def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @hash_prop = args[:hash_prop] if args.key?(:hash_prop) @path = args[:path] if args.key?(:path) @status = args[:status] if args.key?(:status) end end end end end