Class: Google::Cloud::Firestore::Admin::V1::Database

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/firestore/admin/v1/database.rb

Overview

A Cloud Firestore Database.

Defined Under Namespace

Modules: AppEngineIntegrationMode, ConcurrencyMode, DatabaseType, DeleteProtectionState, PointInTimeRecoveryEnablement Classes: CmekConfig, EncryptionConfig, SourceInfo

Instance Attribute Summary collapse

Instance Attribute Details

#app_engine_integration_mode::Google::Cloud::Firestore::Admin::V1::Database::AppEngineIntegrationMode

Returns The App Engine integration mode to use for this database.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#cmek_config::Google::Cloud::Firestore::Admin::V1::Database::CmekConfig

Returns Optional. Presence indicates CMEK is enabled for this database.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#concurrency_mode::Google::Cloud::Firestore::Admin::V1::Database::ConcurrencyMode

Returns The concurrency control mode to use for this database.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#create_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The timestamp at which this database was created. Databases created before 2016 do not populate create_time.

Returns:

  • (::Google::Protobuf::Timestamp)

    Output only. The timestamp at which this database was created. Databases created before 2016 do not populate create_time.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#delete_protection_state::Google::Cloud::Firestore::Admin::V1::Database::DeleteProtectionState

Returns State of delete protection for the database.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#delete_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The timestamp at which this database was deleted. Only set if the database has been deleted.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#earliest_version_time::Google::Protobuf::Timestamp (readonly)

Returns 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.

Returns:

  • (::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.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#etag::String

Returns 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.

Returns:

  • (::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.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#key_prefix::String (readonly)

Returns 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).

Returns:

  • (::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).



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#location_id::String

Returns The location of the database. Available locations are listed at https://cloud.google.com/firestore/docs/locations.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#name::String

Returns The resource name of the Database. Format: projects/{project}/databases/{database}.

Returns:

  • (::String)

    The resource name of the Database. Format: projects/{project}/databases/{database}



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#point_in_time_recovery_enablement::Google::Cloud::Firestore::Admin::V1::Database::PointInTimeRecoveryEnablement

Returns Whether to enable the PITR feature on this database.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#previous_id::String (readonly)

Returns Output only. The database resource's prior database ID. This field is only populated for deleted databases.

Returns:

  • (::String)

    Output only. The database resource's prior database ID. This field is only populated for deleted databases.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#source_info::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo (readonly)

Returns Output only. Information about the provenance of this database.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#type::Google::Cloud::Firestore::Admin::V1::Database::DatabaseType

Returns The type of the database. See https://cloud.google.com/datastore/docs/firestore-or-datastore for information about how to choose.

Returns:



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#uid::String (readonly)

Returns Output only. The system-generated UUID4 for this Database.

Returns:

  • (::String)

    Output only. The system-generated UUID4 for this Database.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#update_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The timestamp at which this database was most recently updated. Note this only includes updates to the database resource and not data contained by the database.

Returns:

  • (::Google::Protobuf::Timestamp)

    Output only. The timestamp at which this database was most recently updated. Note this only includes updates to the database resource and not data contained by the database.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end

#version_retention_period::Google::Protobuf::Duration (readonly)

Returns 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.

Returns:

  • (::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.



113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 113

class Database
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The CMEK (Customer Managed Encryption Key) configuration for a Firestore
  # database. If not present, the database is secured by the default Google
  # encryption key.
  # @!attribute [rw] kms_key_name
  #   @return [::String]
  #     Required. Only keys in the same location as this database are allowed to
  #     be used for encryption.
  #
  #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
  #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
  #     Cloud KMS multi-region europe. See
  #     https://cloud.google.com/kms/docs/locations.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
  # @!attribute [r] active_key_version
  #   @return [::Array<::String>]
  #     Output only. Currently in-use [KMS key
  #     versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
  #     During [key rotation](https://cloud.google.com/kms/docs/key-rotation),
  #     there can be multiple in-use key versions.
  #
  #     The expected format is
  #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
  class CmekConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Information about the provenance of this database.
  # @!attribute [rw] backup
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::SourceInfo::BackupSource]
  #     If set, this database was restored from the specified backup (or a
  #     snapshot thereof).
  # @!attribute [rw] operation
  #   @return [::String]
  #     The associated long-running operation. This field may not be set after
  #     the operation has completed. Format:
  #     `projects/{project}/databases/{database}/operations/{operation}`.
  class SourceInfo
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Information about a backup that was used to restore a database.
    # @!attribute [rw] backup
    #   @return [::String]
    #     The resource name of the backup that was used to restore this
    #     database. Format:
    #     `projects/{project}/locations/{location}/backups/{backup}`.
    class BackupSource
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # Encryption configuration for a new database being created from another
  # source.
  #
  # The source could be a {::Google::Cloud::Firestore::Admin::V1::Backup Backup} .
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  # @!attribute [rw] use_source_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::SourceEncryptionOptions]
  #     The database will use the same encryption configuration as the source.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  class EncryptionConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # The configuration options for using Google default encryption.
    class GoogleDefaultEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using the same encryption method as the
    # source.
    class SourceEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The configuration options for using CMEK (Customer Managed Encryption
    # Key) encryption.
    # @!attribute [rw] kms_key_name
    #   @return [::String]
    #     Required. Only keys in the same location as the database are allowed to
    #     be used for encryption.
    #
    #     For Firestore's nam5 multi-region, this corresponds to Cloud KMS
    #     multi-region us. For Firestore's eur3 multi-region, this corresponds to
    #     Cloud KMS multi-region europe. See
    #     https://cloud.google.com/kms/docs/locations.
    #
    #     The expected format is
    #     `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
    class CustomerManagedEncryptionOptions
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # 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
    # Not used.
    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

  # The delete protection state of the database.
  module DeleteProtectionState
    # The default value. Delete protection type is not specified
    DELETE_PROTECTION_STATE_UNSPECIFIED = 0

    # Delete protection is disabled
    DELETE_PROTECTION_DISABLED = 1

    # Delete protection is enabled
    DELETE_PROTECTION_ENABLED = 2
  end
end