
    3                        d Z ddl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j                                      Z ej                  ej                  j                          G d
 dej                               Zej                   ej                  ej                  j$                         G d de                    Zy)z%Command for spanner instances create.    N)instance_operations)	instances)base)flags)resource_argsc                   N    e Zd ZdZd ej
                  d      iZed        Zd Z	y)Create Create a Cloud Spanner instance.EXAMPLES        To create a Cloud Spanner instance, run:

          $ {command} my-instance-id --config=regional-us-east1 --description=my-instance-display-name --nodes=3
        c                    t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j
                  ddddd      j                  |        t        j                  ddd	d
      j                  |        t        j                  |        t        j                  |        t        j                  d| dddd       t        j                  j                  |        | j                  j                  t         j                         t        j                   |        ya  Args is called by calliope to gather arguments for this command.

    Please add arguments in alphabetical order except for no- or a clear-
    pair for that argument which can follow the argument itself.
    Args:
      parser: An argparse parser that you can use to add arguments that go
          on the command line after this command. Positional arguments are
          allowed.
    Standard editionEnterprise editionEnterprise Plus editionSpanner's legacy pricing model. For more information, see the [Spanner editions overview](https://cloud.google.com/spanner/docs/editions-overview)STANDARD
ENTERPRISEENTERPRISE_PLUSEDITION_UNSPECIFIEDchoicesNot specified.bNo default backup schedule is created automatically when a new database is created in an instance.  A default backup schedule is created automatically when a new database is created in an instance. You can edit or delete the default backup schedule once it's created. The default backup schedule creates a full backup every 24 hours. These full backups are retained for 7 days.(DEFAULT_BACKUP_SCHEDULE_TYPE_UNSPECIFIEDNONE	AUTOMATICT)require_all_autoscaling_argsparseradd_asymmetric_option_flagautoscaling_cpu_target_group$add_asymmetric_total_cpu_target_flag(add_asymmetric_disable_autoscaling_flagsNr   InstanceAddToParserConfigDescriptionEditionDefaultBackupScheduleTyper   AddExpireBehaviorArgAddInstanceTypeArgAddCapacityArgsForInstancer   
ASYNC_FLAGdisplay_infoAddCacheUpdaterInstanceCompleterAddTagsr"   s    'lib/surface/spanner/instances/create.pyArgszCreate.Args(       
NN  (	LLNv&	##F+	MM*.8L	
 k&	##8H79
 k&&&v.$$V,	$$%)#'%)-115 	OO'
''(?(?@	MM&    c                 r   t        j                  |      }t        j                  |      }t        j                  di d|j
                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d	|j                  d
|j                  d|j                  d|j                   d|j"                  d|d|d|j$                  d|j&                  d|j(                  }|j*                  r|S t-        j.                  |d       yThis is what gets called when the user runs this command.

    Args:
      args: an argparse namespace. All the arguments that were provided to this
        command invocation.

    Returns:
      Some value that we want to have printed later.
    instanceconfigdescriptionnodesprocessing_unitsautoscaling_min_nodesautoscaling_max_nodes autoscaling_min_processing_units autoscaling_max_processing_units$autoscaling_high_priority_cpu_targetautoscaling_total_cpu_targetautoscaling_storage_targetasymmetric_autoscaling_optionsinstance_typeexpire_behavioreditiondefault_backup_schedule_typetagsCreating instanceN r   GetInstanceTypeGetExpireBehaviorr   r	   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   asymmetric_autoscaling_optionrM   rN   rO   async_r   AwaitselfargsrK   rL   ops        r7   Runz
Create.Run`   Y    "11$7M#55d;O			 

{{
 $$
 jj	

 ..
 #88
 #88
 *.)N)N
 *.)N)N
 .2-V-V
 &*%F%F
 $(#B#B
 (,'I'I
 $
 (
  !
" &*%F%F#
$ YY%
B( {{ib"56r:   N
__name__
__module____qualname____doc__textwrapdedentdetailed_helpstaticmethodr8   r\   rQ   r:   r7   r	   r	      s@     ) 
(//  - 5 5n#7r:   r	   c                   N    e Zd ZdZd ej
                  d      iZed        Zd Z	y)
BetaCreater
   r   r   c                    t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j
                  ddddd      j                  |        t        j                  ddd	d
      j                  |        t        j                  |        t        j                  |        t        j                  d| dddd       t        j                  j                  |        | j                  j                  t         j                         t        j                   |        yr   r'   r6   s    r7   r8   zBetaCreate.Args   r9   r:   c                 r   t        j                  |      }t        j                  |      }t        j                  di d|j
                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d	|j                  d
|j                  d|j                  d|j                   d|j"                  d|d|d|j$                  d|j&                  d|j(                  }|j*                  r|S t-        j.                  |d       yr<   rR   rX   s        r7   r\   zBetaCreate.Run   r]   r:   Nr^   rQ   r:   r7   rh   rh      s>    ( 
(//  - 5 5n#7r:   rh   c                   >    e Zd ZdZej                  Zed        Zd Zy)AlphaCreatez4Create a Cloud Spanner instance with ALPHA features.c           
      4   t        j                         j                  |        t        j                         j                  |        t        j                         j                  |        t        j
                         j                  |        t        j                  ddddd      j                  |        t        j                  ddd	d
      j                  |        t        j                  |        t        j                  |        t        j                  |        t        j                  d| dddddd       t        j                  j                  |        | j                  j!                  t         j"                         t        j$                  |        y)zSee base class.r   r   r   r   r   r   r   r   r   r   TF)r!   r"   r#   asymmetric_options_groupr$   r%   r&   add_disable_downscaling_flagN)r   r(   r)   r*   r+   SsdCacher,   r-   r   r.   r/   AddDefaultStorageTypeArgr0   r   r1   r2   r3   r4   r5   r6   s    r7   r8   zAlphaCreate.Args   s;    
NN  (	LLNv&	##F+	NN  (	MM*.8L	
 k&	##8H79
 k&&&v.$$V,**62	$$%)#'!&%)-115%)	 	OO'
''(?(?@	MM&r:   c                    t        j                  |      }t        j                  |      }t        j                  |      }t	        j
                  di d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d|j                  d	|j                  d
|j                  d|j                   d|j"                  d|j$                  d|d|d|d|j&                  d|j(                  d|j*                  d|j,                  }|j.                  r|S t1        j2                  |d       y)r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   default_storage_type	ssd_cacherM   rN   rO   rP   NrQ   )r   rS   rT   GetDefaultStorageTypeArgr   r	   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rU   rt   rM   rN   rO   rV   r   rW   )rY   rZ   rK   rL   rs   r[   s         r7   r\   zAlphaCreate.Run+  s    "11$7M#55d;O(AA$G			 

{{
 $$
 jj	

 ..
 #88
 #88
 *.)N)N
 *.)N)N
 .2-V-V
 &*%F%F
 $(#B#B
 (,'I'I
 $
 (
  2!
" ..#
$ %
& &*%F%F'
( YY)
B, {{ib"56r:   N)r_   r`   ra   rb   r	   rf   r8   r\   rQ   r:   r7   rl   rl      s(     =NN'1 1f&7r:   rl   )rb   rc   googlecloudsdk.api_lib.spannerr   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.spannerr   r   DefaultUniverseOnlyReleaseTracksReleaseTrackGACreateCommandr	   BETArh   ALPHArl   rQ   r:   r7   <module>r      s    ,  > 4 ( 4 < D%%(()g7T g7 * g7T D%%**+g7## g7 ,g7T D%%++,^7& ^7 - ^7r:   