
                             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
\R                  5      rS rS\S\4S jrS rS rS rS rS rS rS rg)zBigtable backups API helper.    )absolute_import)division)unicode_literals)util)arg_parsers)
exceptions)timesc                       \ rS rSrSrSrg)NoFieldSpecified   zDError for calling update command with no args that represent fields. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       .lib/googlecloudsdk/api_lib/bigtable/backups.pyr   r      s    Lr   r   c                     [         R                  " U 5      R                  [         R                  " [         R                  5      5      n[         R
                  " US[         R                  S9nU$ )z5Parse flag value into Datetime format for expireTime.z%Y-%m-%dT%H:%M:%S.%6f%Ez)tzinfo)r	   ParseDurationGetRelativeDateTimeNowUTCFormatDateTime)expiration_valuedatetimeparsed_datetimes      r   ParseExpireTimer        sV       !12FFii		( ((*599/ 
r   datetime_valuereturnc                 b    [         R                  R                  U 5      nUR                  S5      $ )z6Parse a string datetime value into a formatted string.z%Y-%m-%dT%H:%M:%SZ)r   DatetimeParseUtcTimestrftime)r!   parsed_times     r   FormatDatetimer(   -   s*    $$11.A+			2	33r   c                     U R                   (       a  U R                   $ U R                  (       a  [        U R                  5      $ g)zParse flags for expire time.N)expiration_dateretention_periodr    argss    r   GetExpireTimer.   5   s6    	40011 r   c                 f    U R                   (       d  U R                   $ [        U R                   5      $ )z%Parse flags for hot to standard time.)hot_to_standard_timer(   r,   s    r   GetHotToStandardTimer1   =   s(    		"	"$$$	11	22r   c                 F   SU R                    SU R                   SUR                   3UR                  l        [        U5      UR                  l        [        U5      UR                  l        UR                  Ul	        U R                  5       R                  5       Ul        U$ )z3Parse argument and construct create backup request.z	projects/z/instances/z/tables/)
projectsIdinstancesIdtablebackupsourceTabler.   
expireTimer1   hotToStandardTimebackupIdParentRelativeNameparent)
backup_refr-   reqs      r   ModifyCreateRequestr@   F   s    &z'<'<&=[I_I_H``himisishtu#**'-#**!5d!;#**#,  "//1#*	*r   c                     SUl         U$ )N )
updateMask)unused_instance_refunused_argsr?   s      r   ResetDefaultMaskFieldrF   R   s    #.	*r   c                     UR                   nU(       a$  UR                  U 5      S:X  a  US-   U -   Ul         U$ Xl         U$ )Nr   ,)rC   count)fieldr?   update_masks      r   AddFieldToUpdateMaskrL   W   sE    +1$"S(50cn 
* N	*r   c                     [        U5      nUb  X2R                  l        [        SU5      n[	        U5      nUb6  [        SU5      nU(       d  SUR                  l        U$ XBR                  l        U$ )z5Add backup fields to updateMask in the patch request.Nexpire_timer0   )r.   r6   r8   rL   r1   r9   )unused_backup_refr-   r?   rN   r0   s        r   AddBackupFieldsToUpdateMaskrP   a   so    d#+'JJ
}c
2C-d3%
5s
;C  %)cjj" 
* &:jj"	*r   c                 \   [         R                  " 5       n[         R                  " 5       nUR                  UR	                  5       U R                  5       S9n[        U5      Ul        UR                  UR                  5       R                  5       US9nUR                  R                  U5      $ )zCopy a backup.)r:   sourceBackup)r=   copyBackupRequest)r   GetAdminClientGetAdminMessagesCopyBackupRequestNamer<   r.   r8   8BigtableadminProjectsInstancesClustersBackupsCopyRequestr;   #projects_instances_clusters_backupsCopy)source_backup_refdestination_backup_refr-   clientmsgscopy_backup_requestr?   s          r   
CopyBackupr`   }   s     &				 $..%**,$113 /  $1#6 EE#**,99;+ 	F 	# 
	3	3	8	8	==r   N)r   
__future__r   r   r   googlecloudsdk.api_lib.bigtabler   googlecloudsdk.callioper   googlecloudsdk.corer   core_exceptionsgooglecloudsdk.core.utilr	   Errorr   r    strr(   r.   r1   r@   rF   rL   rP   r`   r   r   r   <module>ri      sn    # &  ' 0 / = *M,, M
43 43 423
8>r   