
    O                        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 ddlmZ ej.                   ej0                  ej2                  j4                         G d dej6                                      Z ej0                  ej2                  j:                         G d de             Z ej0                  ej2                  j>                         G d de             Z y))Create a Cloud NetApp Volume Replication.    )absolute_import)division)unicode_literals)util)client)base)flags)labels_util)concept_parsers)logc                   l    e Zd ZdZej
                  j                  ZdddZe	d        Z
e	d        Zd Zy)	Creater   z>          Create a Cloud NetApp Volume Replication.
          a(            The following command creates a Replication named NAME using the required arguments:

              $ {command} NAME --location=us-central1 --volume=vol1 --replication-schedule=EVERY_10_MINUTES --destination-volume-parameters=storage_pool=sp1,volume_id=vol2,share_name=share2
          )DESCRIPTIONEXAMPLESc                 J    t         j                  | t         j                        S N)r   _ReplicationArgs_RELEASE_TRACKparsers    1lib/surface/netapp/volumes/replications/create.pyArgszCreate.Args1   s    ""66+@+@AA    c                    t        j                  t        j                  d      g      j	                  |        t        j                  |      }t        j                  |        t        j                  |        t        j                  | |       t        j                  |        t        j                  |        t        j                  | d       t        j                  |        y)z$Add args for creating a Replication.zThe Replication to create.)release_trackReplicationN)r   ConceptParserr
   GetReplicationPresentationSpecAddToParsernetapp_api_utilGetMessagesModulereplications_flagsAddReplicationVolumeArg$AddReplicationReplicationScheduleArg,AddReplicationDestinationVolumeParametersArg AddReplicationClusterLocationArgAddResourceAsyncFlagAddResourceDescriptionArgr   AddCreateLabelsFlags)r   r   messagess      r   r   zCreate._ReplicationArgs5   s     !!		-	-.J	KLk&00#H ..v6;;FCCC 77?	v&	##FM:$$V,r   c                 4   |j                   j                  j                         }|j                   j                  j                         j	                         }t        j                  | j                        }t        j                  ||j                  j                  j                        }t        j                  |j                  |j                        }|j!                  |j	                         |j"                  |||j$                  |j&                        }|j)                  |||j*                  |      }|j*                  rWdj-                  | j/                         j0                        }	t2        j4                  j7                  dj-                  |	             |S )z@Create a Cloud NetApp Volume Replication in the current project.)namedescriptionlabelsreplication_scheduledestination_volume_parameterscluster_locationz*gcloud {} netapp volumes replications listzLCheck the status of the new replication by listing all replications:
  $ {} )CONCEPTSreplicationParsevolumeRelativeNamereplications_clientReplicationsClientr   r   ParseCreateArgsr+   r   LabelsValuer#   ,GetReplicationReplicationScheduleEnumFromArgr0   ParseReplicationConfigr.   r1   r2   CreateReplicationasync_formatReleaseTrackprefixr   statusPrint)
selfargsreplication_ref
volume_refr   r/   replication_schedule_enumr4   resultcommands
             r   Runz
Create.RunH   sQ   mm//557O%%++-::<J 33D4G4GHF((foo))55F 	GG%%v	
  //))+$$6&*&H&H.. 0 K %%T[[+F {{<CC




$
$g 
jj$$*F7O Mr   N)__name__
__module____qualname____doc__r	   rA   GAr   detailed_helpstaticmethodr   r   rL    r   r   r   r      sX     2$$''.		- B B - -$"r   r   c                   L    e Zd ZdZej
                  j                  Zed        Z	y)
CreateBetar   c                 J    t         j                  | t         j                        S r   )rV   r   r   r   s    r   r   zCreateBeta.Argss   s    &&vz/H/HIIr   N)
rM   rN   rO   rP   r	   rA   BETAr   rS   r   rT   r   r   rV   rV   m   s*    1$$)).J Jr   rV   c                   L    e Zd ZdZej
                  j                  Zed        Z	y)CreateAlphar   c                 J    t         j                  | t         j                        S r   )rZ   r   r   r   s    r   r   zCreateAlpha.Args~   s    ''0J0JKKr   N)
rM   rN   rO   rP   r	   rA   ALPHAr   rS   r   rT   r   r   rZ   rZ   x   s*    1$$**.L Lr   rZ   N)!rP   
__future__r   r   r   googlecloudsdk.api_lib.netappr   r!   2googlecloudsdk.api_lib.netapp.volumes.replicationsr   r8   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   rQ   CreateCommandr   rX   rV   r\   rZ   rT   r   r   <module>ri      s    0 &  ' A \ ( 3 ^ < D # D%%(()IT I * IX D%%**+J J ,J D%%++,L* L -Lr   