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, DataAccessMode, DatabaseEdition, DatabaseType, DeleteProtectionState, PointInTimeRecoveryEnablement Classes: CmekConfig, EncryptionConfig, SourceInfo, TagsEntry

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:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

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

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

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

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

Returns The concurrency control mode to use for this database.

If unspecified in a CreateDatabase request, this will default based on the database edition: Optimistic for Enterprise and Pessimistic for all other databases.

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

#database_edition::Google::Cloud::Firestore::Admin::V1::Database::DatabaseEdition

Returns Immutable. The edition of the database.

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

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

Returns State of delete protection for the database.

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

#firestore_data_access_mode::Google::Cloud::Firestore::Admin::V1::Database::DataAccessMode

Returns Optional. The Firestore API data access mode to use for this database. If not set on write:

  • the default value is DATA_ACCESS_MODE_DISABLED for Enterprise Edition.
  • the default value is DATA_ACCESS_MODE_ENABLED for Standard Edition.

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

#free_tier::Boolean (readonly)

Returns Output only. Background: Free tier is the ability of a Firestore database to use a small amount of resources every day without being charged. Once usage exceeds the free tier limit further usage is charged.

Whether this database can make use of the free tier. Only one database per project can be eligible for the free tier.

The first (or next) database that is created in a project without a free tier database will be marked as eligible for the free tier. Databases that are created while there is a free tier database will not be eligible for the free tier.

Returns:

  • (::Boolean)

    Output only. Background: Free tier is the ability of a Firestore database to use a small amount of resources every day without being charged. Once usage exceeds the free tier limit further usage is charged.

    Whether this database can make use of the free tier. Only one database per project can be eligible for the free tier.

    The first (or next) database that is created in a project without a free tier database will be marked as eligible for the free tier. Databases that are created while there is a free tier database will not be eligible for the free tier.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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).



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

#mongodb_compatible_data_access_mode::Google::Cloud::Firestore::Admin::V1::Database::DataAccessMode

Returns Optional. The MongoDB compatible API data access mode to use for this database. If not set on write, the default value is DATA_ACCESS_MODE_ENABLED for Enterprise Edition. The value is always DATA_ACCESS_MODE_DISABLED for Standard Edition.

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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}



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

#realtime_updates_mode::Google::Cloud::Firestore::Admin::V1::RealtimeUpdatesMode

Returns Immutable. The default Realtime Updates mode to use for this database.

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

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

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

Returns:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end

#tags::Google::Protobuf::Map{::String => ::String}

Returns Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing".

Returns:

  • (::Google::Protobuf::Map{::String => ::String})

    Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: "123/environment": "production", "123/costCenter": "marketing"



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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:



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 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.



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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'proto_docs/google/firestore/admin/v1/database.rb', line 154

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} or a
  # {::Google::Cloud::Firestore::Admin::V1::PitrSnapshot PitrSnapshot}.
  # @!attribute [rw] google_default_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::GoogleDefaultEncryptionOptions]
  #     Use Google default encryption.
  #
  #     Note: The following fields are mutually exclusive: `google_default_encryption`, `use_source_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!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.
  #
  #     Note: The following fields are mutually exclusive: `use_source_encryption`, `google_default_encryption`, `customer_managed_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] customer_managed_encryption
  #   @return [::Google::Cloud::Firestore::Admin::V1::Database::EncryptionConfig::CustomerManagedEncryptionOptions]
  #     Use Customer Managed Encryption Keys (CMEK) for encryption.
  #
  #     Note: The following fields are mutually exclusive: `customer_managed_encryption`, `google_default_encryption`, `use_source_encryption`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  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

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class TagsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  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.
    #
    # This is the default setting for Cloud Firestore Enterprise Edition
    # 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 Standard Edition
    # databases.
    PESSIMISTIC = 2

    # Use optimistic concurrency control with entity groups by default.
    #
    # This mode is enabled for some databases that were automatically upgraded
    # from Cloud Datastore to Cloud Firestore with Datastore Mode.
    #
    # It is not recommended for any new databases, and not supported for
    # Firestore Native databases.
    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

  # The edition of the database.
  module DatabaseEdition
    # Not used.
    DATABASE_EDITION_UNSPECIFIED = 0

    # Standard edition.
    #
    # This is the default setting if not specified.
    STANDARD = 1

    # Enterprise edition.
    ENTERPRISE = 2
  end

  # The data access mode.
  module DataAccessMode
    # Not Used.
    DATA_ACCESS_MODE_UNSPECIFIED = 0

    # Accessing the database through the API is allowed.
    DATA_ACCESS_MODE_ENABLED = 1

    # Accessing the database through the API is disallowed.
    DATA_ACCESS_MODE_DISABLED = 2
  end
end