
                         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.Creates Backup and DR Backup Plan Association.    )absolute_import)division)unicode_literals)
exceptions)util)BackupPlanAssociationsClient)base)flags)logc                   2    e Zd ZdZddddZed        Zd Zy)	Createz%Create a new backup plan association.z%Creates a new backup plan associationzzCreate a new backup plan association in the project. It can only be created in locations where Backup and DR is available.a]          To create a new backup plan association `sample-bpa` in project `sample-project` and location `us-central1` for resource `sample-resource-uri` with backup plan `sample-backup-plan`, run:

          $ {command} sample-bpa --project=sample-project --location=us-central1 --backup-plan=sample-backup-plan --resource=sample-resource-uri
        )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
   #AddCreateBackupPlanAssociationFlags)parsers    8lib/surface/backup_dr/backup_plan_associations/create.pyArgszCreate.Args1   s8     	OO'OOvt,	--f5    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.
    Nzbackup plan associationT)kindis_asyncdetailszSCreating backup plan association [{}]. (This operation could take up to 2 minutes.))operation_refmessage)r   )r   async_CONCEPTSbackup_plan_associationParsebackup_planresourceresource_typer   apitools_exceptions	HttpErrorr   HttpExceptionr   HTTP_ERROR_FORMATr   CreatedResourceRelativeNameASYNC_OPERATION_MESSAGEformatnameWaitForOperationGetOperationRef)
selfargsclientr   r"   r$   r%   r&   	operationes
             r   Runz
Create.Run<   sS    *+F{{H"mmCCIIK--++113K}}H&&M@--
!;-i
 	
!
.
.
0(..55innE	 &&,,Y7&&,f'446'	 ' H ,,.5N O1 (( @$$Q(>(>??@s   8E F $E;;F N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r7    r   r   r   r      s7     . 7D- 6 6.r   r   N)r;   
__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   DefaultUniverseOnlyReleaseTracksReleaseTrackALPHAGACreateCommandr   r>   r   r   <module>rM      s    5 '  ' > 0 a 2 ( 5 # D%%++T->->-A-ABIT I C Ir   