# frozen_string_literal: true # Copyright 2022 Google LLC # # 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 # # https://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. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module Firestore module Admin module V1 # A Cloud Firestore Database. # Currently only one database is allowed per cloud project; this database # must have a `database_id` of '(default)'. # @!attribute [rw] name # @return [::String] # The resource name of the Database. # Format: `projects/{project}/databases/{database}` # @!attribute [rw] location_id # @return [::String] # The location of the database. Available locations are listed at # https://cloud.google.com/firestore/docs/locations. # @!attribute [rw] type # @return [::Google::Cloud::Firestore::Admin::V1::Database::DatabaseType] # The type of the database. # See https://cloud.google.com/datastore/docs/firestore-or-datastore for # information about how to choose. # @!attribute [rw] concurrency_mode # @return [::Google::Cloud::Firestore::Admin::V1::Database::ConcurrencyMode] # The concurrency control mode to use for this database. # @!attribute [r] version_retention_period # @return [::Google::Protobuf::Duration] # Output only. The period during which past versions of data are retained in # the database. # # Any [read][google.firestore.v1.GetDocumentRequest.read_time] # or [query][google.firestore.v1.ListDocumentsRequest.read_time] can specify # a `read_time` within this window, and will read the state of the database # at that time. # # If the PITR feature is enabled, the retention period is 7 days. Otherwise, # the retention period is 1 hour. # @!attribute [r] earliest_version_time # @return [::Google::Protobuf::Timestamp] # Output only. The earliest timestamp at which older versions of the data can # be read from the database. See [version_retention_period] above; this field # is populated with `now - version_retention_period`. # # This value is continuously updated, and becomes stale the moment it is # queried. If you are using this value to recover data, make sure to account # for the time from the moment when the value is queried to the moment when # you initiate the recovery. # @!attribute [rw] point_in_time_recovery_enablement # @return [::Google::Cloud::Firestore::Admin::V1::Database::PointInTimeRecoveryEnablement] # Whether to enable the PITR feature on this database. # @!attribute [rw] app_engine_integration_mode # @return [::Google::Cloud::Firestore::Admin::V1::Database::AppEngineIntegrationMode] # The App Engine integration mode to use for this database. # @!attribute [r] key_prefix # @return [::String] # Output only. The key_prefix for this database. This key_prefix is used, in # combination with the project id ("~") to construct # the application id that is returned from the Cloud Datastore APIs in Google # App Engine first generation runtimes. # # This value may be empty in which case the appid to use for URL-encoded keys # is the project_id (eg: foo instead of v~foo). # @!attribute [rw] etag # @return [::String] # This checksum is computed by the server based on the value of other # fields, and may be sent on update and delete requests to ensure the # client has an up-to-date value before proceeding. class Database include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The type of the database. # See https://cloud.google.com/datastore/docs/firestore-or-datastore for # information about how to choose. # # Mode changes are only allowed if the database is empty. module DatabaseType # The default value. This value is used if the database type is omitted. DATABASE_TYPE_UNSPECIFIED = 0 # Firestore Native Mode FIRESTORE_NATIVE = 1 # Firestore in Datastore Mode. DATASTORE_MODE = 2 end # The type of concurrency control mode for transactions. module ConcurrencyMode # Not used. CONCURRENCY_MODE_UNSPECIFIED = 0 # Use optimistic concurrency control by default. This mode is available # for Cloud Firestore databases. OPTIMISTIC = 1 # Use pessimistic concurrency control by default. This mode is available # for Cloud Firestore databases. # # This is the default setting for Cloud Firestore. PESSIMISTIC = 2 # Use optimistic concurrency control with entity groups by default. # # This is the only available mode for Cloud Datastore. # # This mode is also available for Cloud Firestore with Datastore Mode but # is not recommended. OPTIMISTIC_WITH_ENTITY_GROUPS = 3 end # Point In Time Recovery feature enablement. module PointInTimeRecoveryEnablement # Not used. POINT_IN_TIME_RECOVERY_ENABLEMENT_UNSPECIFIED = 0 # Reads are supported on selected versions of the data from within the past # 7 days: # # * Reads against any timestamp within the past hour # * Reads against 1-minute snapshots beyond 1 hour and within 7 days # # `version_retention_period` and `earliest_version_time` can be # used to determine the supported versions. POINT_IN_TIME_RECOVERY_ENABLED = 1 # Reads are supported on any version of the data from within the past 1 # hour. POINT_IN_TIME_RECOVERY_DISABLED = 2 end # The type of App Engine integration mode. module AppEngineIntegrationMode # Not used. APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED = 0 # If an App Engine application exists in the same region as this database, # App Engine configuration will impact this database. This includes # disabling of the application & database, as well as disabling writes to # the database. ENABLED = 1 # App Engine has no effect on the ability of this database to serve # requests. # # This is the default setting for databases created with the Firestore API. DISABLED = 2 end end end end end end end