
                         ^   S r SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKJ	r	  SSK
Jr  SS	K
Jr  SS
KJr  \	R                   \	R"                  " \	R$                  R&                  \	R$                  R(                  \	R$                  R*                  5       " S S\	R,                  5      5       5       rg)z-The gcloud Firestore databases clone command.    )absolute_import)division)unicode_literalsN)	databases)base)flags)util)
propertiesc                   4    \ rS rSrSr\S 5       rS rS rSr	g)Clone   ay  Clone a Google Cloud Firestore database from another.

## EXAMPLES

To clone a database from another:

    $ {command}
    --source-database=projects/PROJECT_ID/databases/SOURCE_DATABASE
    --snapshot-time=2025-05-26T10:20:00.00Z
    --destination-database=DATABASE_ID

To clone to a CMEK-enabled database:

    $ {command}
    --source-database=projects/PROJECT_ID/databases/SOURCE_DATABASE
    --snapshot-time=2025-05-26T10:20:00.00Z
    --destination-database=DATABASE_ID
    --encryption-type=customer-managed-encryption
    --kms-key-name=projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/CRYPTO_KEY_ID
c           	      <   UR                  SS[        S[        R                  " S5      S9  UR                  SS[        S[        R                  " S5      S9  [        R
                  " US	S
5        [        R                  " US
5        [        R                  " US
5        g )Nz--source-databaseSOURCE_DATABASETz            The source database to clone from.

            For example, to clone from database
            source-db:

            $ {command} --source-database=projects/PROJECT_ID/databases/source-db
        )metavartyperequiredhelpz--snapshot-timeSNAPSHOT_TIMEa              Snapshot time at which to clone. This must be a whole minute, in the past, and not earlier than the source database's earliest_version_time.
            Additionally, if older than one hour in the past, PITR must be enabled on the source database.

            For example, to restore from snapshot `2025-05-26T10:20:00.00Z` of source database `source-db`:

            $ {command} --source-database=projects/PROJECT_ID/databases/source-db --snapshot-time=2025-05-26T10:20:00.00Z
        clonedatabase)add_argumentstrtextwrapdedentr   AddDestinationDatabaseAddEncryptionConfigGroupAddTags)clsparsers     (lib/surface/firestore/databases/clone.pyArgs
Clone.Args8   s    
!__     __     
  *=	""6:6	MM&*%    c           	         [         R                  R                  R                  R	                  SS9n[
        R                  " UUR                  UR                  UR                  U R                  U5      UR                  5      $ )NT)r   )r
   VALUEScoreprojectGetr   CloneDatabasesource_databasesnapshot_timedestination_databaseEncryptionConfigtags)selfargsr'   s      r    Run	Clone.RunZ   sm    $$,,00$0?G""!!d#		 r#   c                 .    [         R                  " U5      $ )N)utilsExtractEncryptionConfig)r/   r0   s     r    r-   Clone.EncryptionConfige   s    ((..r#    N)
__name__
__module____qualname____firstlineno____doc__classmethodr!   r1   r-   __static_attributes__r7   r#   r    r   r      s&    
* & &B	/r#   r   )r<   
__future__r   r   r   r    googlecloudsdk.api_lib.firestorer   googlecloudsdk.callioper   $googlecloudsdk.command_lib.firestorer   r	   r4   googlecloudsdk.corer
   DefaultUniverseOnlyReleaseTracksReleaseTrackALPHABETAGACommandr   r7   r#   r    <module>rK      s    4 &  '  6 ( 6 > * T..33T5F5F5I5ID/DLL D/ D/r#   