
                         D   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  \R&                  \R(                  " \R*                  R,                  \R*                  R.                  5       " S S\R0                  5      5       5       rg)z.Updates Backup and DR Backup Plan Association.    )absolute_import)division)unicode_literals)
exceptions)util)BackupPlanAssociationsClient)base)flags)logc                   @    \ rS rSrSrSSSS.r\S 5       rS rS r	S	r
g
)Update   z?Update a specific backup plan within a backup plan association.z{description}a/          To update backup plan association `sample-bpa` in project `sample-project` and location `us-central1` with backup plan `sample-backup-plan` in the same project and location, run:

          $ {command} sample-bpa --project=sample-project --location=us-central1 --backup-plan=sample-backup-plan

        To update backup plan association `sample-bpa-uri` with backup plan `sample-backup-plan-uri` (using full URIs), run:

          $ {command} sample-bpa-uri --backup-plan=sample-backup-plan-uri

        To update backup plan association `sample-bpa` in location `us-central1` with backup plan `sample-backup-plan-uri`, run:

          $ {command} sample-bpa --location=us-central1 --backup-plan=sample-backup-plan-uri

        To update backup plan association `sample-bpa` in project `workload-project` and location `us-central1` with backup plan `sample-backup-plan` in project `sample-project`, run:

          $ {command} sample-bpa --workload-project=workload-project --location=us-central1 --backup-plan=sample-backup-plan --project=sample-project
        )BRIEFDESCRIPTIONEXAMPLESc                     [         R                  R                  U 5        [         R                  R                  U S5        [        R
                  " U 5        g)zmSpecifies additional command flags.

Args:
  parser: argparse.Parser: Parser object for command line inputs.
TN)r	   
ASYNC_FLAGAddToParser
SetDefaultr
   #AddUpdateBackupPlanAssociationFlags)parsers    8lib/surface/backup_dr/backup_plan_associations/update.pyArgsUpdate.Args=   s8     	OO'OOvt,	--f5    c                 6    UR                  S5      (       a  S$ S$ )Nbackup_plan )IsSpecified)selfargss     r   GetUpdateMaskUpdate.GetUpdateMaskH   s     ,,];;=CCr   c                    [        5       nUR                  nUR                  R                  R	                  5       nUR                  R
                  R	                  5       n UR                  U5      nU R                  U5      nUR                  UUUS9nU(       aN  [        R                   " UR#                  5       SS[        R$                  R'                  UR(                  5      S9  U$ UR+                  UR-                  U5      SR'                  UR#                  5       5      S9n
[        R                   " UR#                  5       SS9  U
$ ! [        R                   a+  n	[        R                  " U	[        R                  5      U	eSn	A	ff = f)	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.
)update_maskNzbackup plan associationT)kindis_asyncdetailszTUpdating backup plan association [{}].  (This operation could take up to 2 minutes.))operation_refmessage)r&   )r   async_CONCEPTSbackup_plan_associationParser   ParseUpdater"   r   apitools_exceptions	HttpErrorr   HttpExceptionr   HTTP_ERROR_FORMATr   UpdatedResourceRelativeNameASYNC_OPERATION_MESSAGEformatnameWaitForOperationGetOperationRef)r    r!   clientr'   r-   r   
parsed_bpar%   	operationeresources              r   Run
Update.RunK   sf    *+F{{H"mmCCIIK--++113K	G%%k2j&&t,k--
!
!   i 	
!
.
.
0(..55innE	 &&,,Y7&&,f'446'	 ' H ,,.5N O1 (( G$$Q(>(>?QFGs    3E	 	F&FF N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r"   r@   __static_attributes__rB   r   r   r   r      s>     H L -4 6 6D0r   r   N)rG   
__future__r   r   r   apitools.base.pyr   r0   googlecloudsdk.api_lib.backupdrr   8googlecloudsdk.api_lib.backupdr.backup_plan_associationsr   googlecloudsdk.api_lib.utilgooglecloudsdk.callioper	   #googlecloudsdk.command_lib.backupdrr
   googlecloudsdk.corer   UniverseCompatibleReleaseTracksReleaseTrackALPHAGAUpdateCommandr   rB   r   r   <module>rY      s    5 &  ' > 0 a 2 ( 5 # D%%++T->->-A-AB[T [ C [r   