
                         D   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ ej&                   ej(                  ej*                  j,                  ej*                  j.                         G d dej0                                      Zy)z.Updates Backup and DR Backup Plan Association.    )absolute_import)division)unicode_literals)
exceptions)util)BackupPlanAssociationsClient)base)flags)logc                   8    e Zd ZdZddddZed        Zd Zd Zy)	Updatez?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                     t         j                  j                  |        t         j                  j                  | d       t	        j
                  |        y)zySpecifies 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ArgszUpdate.Args=   s8     	OO'OOvt,	--f5    c                 ,    |j                  d      rdS dS )Nbackup_plan )IsSpecified)selfargss     r   GetUpdateMaskzUpdate.GetUpdateMaskH   s     ,,];=CCr   c                    t               }|j                  }|j                  j                  j	                         }|j                  j
                  j	                         }	 |j                  |      }| j                  |      }|j                  |||      }|rPt        j                   |j#                         ddt        j$                  j'                  |j(                               |S |j+                  |j-                  |      dj'                  |j#                                     }
t        j                   |j#                         d       |
S # t        j                  $ r*}	t        j                  |	t        j                        |	d}	~	ww xY w)	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   Runz
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    6E F!%FFN)	__name__
__module____qualname____doc__detailed_helpstaticmethodr   r    r=    r   r   r   r      s>     H L -4 6 6D0r   r   N)rA   
__future__r   r   r   apitools.base.pyr   r-   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   rD   r   r   <module>rS      s    5 &  ' > 0 a 2 ( 5 # D%%++T->->-A-AB[T [ C [r   