
                            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  G d
 dej                        Zy)4Cloud Backup and DR Backup plan associations client.    )absolute_import)annotations)division)unicode_literals)util)
properties)	resources)backupdr_v1_messagesc                  f     e Zd ZdZ fdZ	 d	dZd Zd Zd Z	 d
	 	 	 	 	 	 	 ddZ		 	 	 ddZ
 xZS )BackupPlanAssociationsClientr   c                `    t         t        |           | j                  j                  | _        y N)superr   __init__client)projects_locations_backupPlanAssociationsservice)self	__class__s    ?lib/googlecloudsdk/api_lib/backupdr/backup_plan_associations.pyr   z%BackupPlanAssociationsClient.__init__    s"    	
&68;;HHDL    c                (   |j                         j                         }|j                         }| j                  j	                  |j                         ||      }| j                  j                  |||      }| j                  j                  |      S )N)
backupPlanresourceresourceType)parentbackupPlanAssociationbackupPlanAssociationId)ParentRelativeNameNamemessagesBackupPlanAssociation<BackupdrProjectsLocationsBackupPlanAssociationsCreateRequestr   Create)	r   bpa_resourcebackup_planworkload_resourceresource_typer   bpa_idbparequests	            r   r&   z#BackupPlanAssociationsClient.Create$   s       "//1F F
--
-
-++-"" . C mmXX! & Y G
 <<w''r   c                h    | j                   j                         }||j                         |_        |S r   )r#   r$   r!   r   )r   r(   updated_bpas      r   ParseUpdatez(BackupPlanAssociationsClient.ParseUpdate6   s1    --557K*779kr   c                    t        j                         }| j                  j                  ||j	                         ||      }| j
                  j                  |      S )N)r   name	requestId
updateMask)command_utilGenerateRequestIdr#   ;BackupdrProjectsLocationsBackupPlanAssociationsPatchRequestr!   r   Patch)r   r'   r,   update_mask
request_idr-   s         r   Updatez#BackupPlanAssociationsClient.Update<   sV    //1JmmWW!&&(	 X G <<g&&r   c                    | j                   j                  |j                               }| j                  j	                  |      S )N)r2   )r#   <BackupdrProjectsLocationsBackupPlanAssociationsDeleteRequestr!   r   Delete)r   r   r-   s      r   r>   z#BackupPlanAssociationsClient.DeleteF   s?    mmXX""$ Y G <<w''r   c                    | j                   j                  ||      }| j                   j                  |j                         |      }| j                  j                  |      S )aU  Triggers an on demand backup according to the given backup rule.

    Args:
      resource: The backup plan association resource.
      backup_rule: The backup rule to be used for the adhoc backup
      custom_retention_days: The custom retention days to be used for the adhoc
        backup

    Returns:
      A long running operation
    )ruleIdcustomRetentionDays)r2   triggerBackupRequest)r#   TriggerBackupRequestCBackupdrProjectsLocationsBackupPlanAssociationsTriggerBackupRequestr!   r   TriggerBackup)r   r   backup_rulecustom_retention_daystrigger_backup_requestr-   s         r   rE   z*BackupPlanAssociationsClient.TriggerBackupL   sg     "]]??1 @  mm__""$3 ` G <<%%g..r   c                    t         j                  j                  j                  j	                         }dj                  ||      }| j                  j                  |||||      }| j                  j                  |      S )Nzprojects/{}/locations/{})r   r   pageSizefilterorderBy)
r	   VALUEScoreproject	GetOrFailformatr#   JBackupdrProjectsLocationsBackupPlanAssociationsFetchForResourceTypeRequestr   FetchForResourceType)	r   locationr*   filter_expression	page_sizeorder_byrO   r   r-   s	            r   rS   z1BackupPlanAssociationsClient.FetchForResourceTypee   sv     $$,,668G'..wAFmmff"  g G <<,,W55r   ) r   )r   zresources.ResourcerF   strrG   z
int | Nonereturnzbackupdr_v1_messages.Operation)NNN)__name__
__module____qualname____doc__r   r&   r0   r;   r>   rE   rS   __classcell__)r   s   @r   r   r      sc    <I
 IK($'( +//(/7:/'/ &/: 6r   r   N)r^   
__future__r   r   r   r   googlecloudsdk.api_lib.backupdrr   #googlecloudsdk.command_lib.backupdrr5   googlecloudsdk.corer	   r
   1googlecloudsdk.generated_clients.apis.backupdr.v1r   BackupDrClientBaser    r   r   <module>rg      s9    ; & "  ' 0 D * ) RY64#:#: Y6r   