
                         >   S 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  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  SSKJr  SSKJr  \	R(                  \	R*                  " \	R,                  R.                  5       " S S\	R0                  5      5       5       r\	R(                  \	R*                  " \	R,                  R4                  5       " S S\5      5       5       r\	R(                  \	R*                  " \	R,                  R8                  5       " S S\5      5       5       rg)zRestores an AlloyDB cluster.    )absolute_import)division)unicode_literals)api_util)cluster_operations)base)cluster_helper)flags)resource_args)log)
properties)	resourcesc                   N    \ rS rSrSrSSS.r\S 5       r\S 5       r	S r
S	 rS
rg)Restore    SRestore an AlloyDB cluster from a given backup or a source cluster and a timestamp.{description}v            To restore a cluster from a backup, run:

              $ {command} my-cluster --region=us-central1 --backup=my-backup

          To restore a cluster from a source cluster and a timestamp, run:

              $ {command} my-cluster --region=us-central1                 --source-cluster=old-cluster                 --point-in-time=2012-11-15T16:19:00.094Z
        DESCRIPTIONEXAMPLESc                 v   [         R                  R                  U 5        [        R                  " U 5        [        R
                  " U 5        [        R                  " U 5        [        R                  " U 5        [        R                  " U 5        [        R                  " U 5        [        R                  " U SSS9  g )NclusterzjThe 'AlloyDB Service Agent' service account must hold permission 'Cloud KMS CryptoKey Encrypter/Decrypter')permission_info)r   
ASYNC_FLAGAddToParserr
   
AddCluster	AddRegion
AddNetworkAddAllocatedIPRangeNameAddEnablePrivateServiceConnectAddTagskms_resource_argsAddKmsKeyResourceArg)parsers    'lib/surface/alloydb/clusters/restore.py
CommonArgsRestore.CommonArgs5   s}    OO'	V	OOF	V	!!&)	((0	MM&**9	    c                 v    [         R                  U5        [        R                  " XR	                  5       5        g)zmSpecifies additional command flags.

Args:
  parser: argparse.Parser: Parser object for command line inputs.
N)r   r'   r
   AddRestoreClusterSourceFlagsReleaseTrack)clsr%   s     r&   ArgsRestore.ArgsG   s)     v	&&v/?/?/ABr)   c                 0    [         R                  " XX45      $ N)r	   !ConstructRestoreRequestFromArgsGAselfalloydb_messageslocation_refresource_parserargss        r&   ConstructRestoreRequestFromArgs'Restore.ConstructRestoreRequestFromArgsQ   s    ;;? ?r)   c                    [         R                  " U R                  5       5      nUR                  nUR                  nUR
                  R                  S[        R                  R                  R                  R                  UR                  S9nU R                  XEUR
                  U5      nUR                  R                  U5      n[         R"                  R%                  UR&                  SS9n[(        R*                  R-                  SR/                  UR1                  5       5      5        UR2                  (       d&  [4        R6                  " USU R                  5       5        U$ )zConstructs and sends request.

Args:
  args: argparse.Namespace, An object that contains the values for the
    arguments specified in the .Args() method.

Returns:
  ProcessHttpResponse of the request made.
zalloydb.projects.locations)
projectsIdlocationsIdz%alloydb.projects.locations.operations)
collectionzOperation ID: {}zRestoring cluster)r   AlloyDBClientr,   alloydb_clientr5   r7   Creater   VALUEScoreproject	GetOrFailregionr9   projects_locations_clustersr   r   REGISTRYParseRelativeNamenamer   statusPrintformatNameasync_r   Await)	r4   r8   clientr@   r5   r6   reqopop_refs	            r&   RunRestore.RunV   s    ##D$5$5$78F**N..))00$$$))11;;KK 1 !L
 
.
.(>(>FC 
	3	3	;	;C	@B11
C 2 EFJJ'..v{{}=>;;v':D<M<M<OPIr)    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr'   classmethodr.   r9   rU   __static_attributes__rW   r)   r&   r   r       sM     \ %
-  " C C?
r)   r   c                   F   ^  \ rS rSrSrSSS.r\U 4S j5       rS rSr	U =r
$ )	RestoreBetat   r   r   r   r   c                 ,   > [         [        U ]  U5        g r1   )superrb   r.   r-   r%   	__class__s     r&   r.   RestoreBeta.Args   s    	+s (r)   c                 0    [         R                  " XX45      $ r1   )r	   #ConstructRestoreRequestFromArgsBetar3   s        r&   r9   +RestoreBeta.ConstructRestoreRequestFromArgs   s     == r)   rW   rX   rY   rZ   r[   r\   r]   r_   r.   r9   r`   __classcell__rg   s   @r&   rb   rb   t   s8     \ %
- ) ) r)   rb   c                   F   ^  \ rS rSrSrSSS.r\U 4S j5       rS rSr	U =r
$ )	RestoreAlpha   r   r   r   r   c                 ,   > [         [        U ]  U5        g r1   )re   rp   r.   rf   s     r&   r.   RestoreAlpha.Args   s    	,!&)r)   c                 0    [         R                  " XX45      $ r1   )r	   $ConstructRestoreRequestFromArgsAlphar3   s        r&   r9   ,RestoreAlpha.ConstructRestoreRequestFromArgs   s     >> r)   rW   rl   rn   s   @r&   rp   rp      s8     \ %
- * * r)   rp   N)r\   
__future__r   r   r   googlecloudsdk.api_lib.alloydbr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.alloydbr	   r
   googlecloudsdk.command_lib.kmsr   r#   googlecloudsdk.corer   r   r   DefaultUniverseOnlyReleaseTracksr,   GARestoreCommandr   BETArb   ALPHArp   rW   r)   r&   <module>r      s    # &  ' 3 = ( = 4 M # * ) D%%(()Od!! O * Od D%%**+'  , < D%%++,;  - r)   