
                            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.                         G d de	j0                                      Z e	j*                  e	j,                  j4                         G d de             Z e	j*                  e	j,                  j8                         G d de             Zy))Update a Cloud NetApp Volume Replication.    )absolute_import)division)unicode_literals)client)base)flags)labels_util)concept_parsers)logc                   \    e Zd ZdZej
                  j                  ZdddZe	d        Z
d Zy)Updater   z[          Update a Cloud NetApp Volume Replication and its specified parameters.
          a            The following command updates a Replication named NAME and its specified parameters:

              $ {command} NAME --location=us-central1 --volume=vol1 --replication-schedule=EVERY_5_MINUTES --description="new description" --cluster-location= us-central1
          )DESCRIPTIONEXAMPLESc                 v   t        j                  t        j                  d      g      j	                  |        t        j                  |        t        j                  | d       t        j                  |        t        j                  |        t        j                  | d       t        j                  |        y)z$Add args for updating a Replication.zThe Replication to update.F)requiredReplicationN)r   ConceptParserr	   GetReplicationPresentationSpecAddToParserreplications_flagsAddReplicationVolumeArg$AddReplicationReplicationScheduleArg AddReplicationClusterLocationArgAddResourceAsyncFlagAddResourceDescriptionArgr
   AddUpdateLabelsFlags)parsers    1lib/surface/netapp/volumes/replications/update.pyArgszUpdate.Args1   s     !!		-	-.J	KLk&..v6;; 77?	v&	##FM:$$V,    c                    |j                   j                  j                         }t        j                  | j
                        }t        j                  j                  |      }|j                  |      }|j                         rI|j                  |j                  j                  j                  |j                        j!                         }nd}t#        j$                  |j&                  |j                        }|j)                  ||j*                  |||j,                        }g }	|j/                  d      r|	j1                  d       |j/                  d      s"|j/                  d      s|j/                  d      r|	j1                  d       |j/                  d      r|	j1                  d       |j/                  d	      r|	j1                  d	       d
j3                  |	      }
|j5                  |||
|j6                        }|j6                  rWdj9                  | j;                         j<                        }t>        j@                  jC                  dj9                  |             |S )z@Update a Cloud NetApp Volume Replication in the current project.N)descriptionlabelsreplication_schedulecluster_locationr#   update_labelsremove_labelsclear_labelsr$   r%   r&   ,z*gcloud {} netapp volumes replications listzPCheck the status of the updated replication by listing all replications:
  $ {} )"CONCEPTSreplicationParsereplications_clientReplicationsClient_RELEASE_TRACKr
   DiffFromUpdateArgsGetReplicationMayHaveUpdatesApplymessagesr   LabelsValuer$   	GetOrNoner   ,GetReplicationReplicationScheduleEnumFromArgr%   ParseUpdatedReplicationConfigr#   r&   IsSpecifiedappendjoinUpdateReplicationasync_formatReleaseTrackprefixr   statusPrint)selfargsreplication_refr   labels_difforiginal_replicationr$   replication_schedule_enumr,   updated_fieldsupdate_maskresultcommands                r   Runz
Update.Run@   s   mm//557O 33D4G4GHF""11$7K!00A !!#  
//
%
%
1
13G3N3N	  f 	GG%%v	
  66$*:*:66.. 7 K N &M*)O,N+H%./23*+./((>*K%%k4;;F {{<CC




$
$g 
jj$$*F7O Mr!   N)__name__
__module____qualname____doc__r   rA   GAr0   detailed_helpstaticmethodr    rO    r!   r   r   r      sB     2$$''.		- - -9r!   r   c                   <    e Zd ZdZej
                  j                  Zy)
UpdateBetar   N)rP   rQ   rR   rS   r   rA   BETAr0   rW   r!   r   rY   rY   |   s    1$$)).r!   rY   c                   <    e Zd ZdZej
                  j                  Zy)UpdateAlphar   N)rP   rQ   rR   rS   r   rA   ALPHAr0   rW   r!   r   r\   r\      s    1$$**.r!   r\   N)rS   
__future__r   r   r   2googlecloudsdk.api_lib.netapp.volumes.replicationsr   r.   googlecloudsdk.callioper   !googlecloudsdk.command_lib.netappr	   6googlecloudsdk.command_lib.netapp.volumes.replicationsr   $googlecloudsdk.command_lib.util.argsr
   (googlecloudsdk.command_lib.util.conceptsr   googlecloudsdk.corer   DefaultUniverseOnlyReleaseTracksrA   rT   UpdateCommandr   rZ   rY   r]   r\   rW   r!   r   <module>ri      s    0 &  ' \ ( 3 ^ < D # D%%(()XT X * Xv D%%**+* * ,* D%%++,+* + -+r!   