
    p                         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  G d
 de	j$                        Zy)z/Command for creating unmanaged instance groups.    )absolute_import)division)unicode_literals)base_classes)
zone_utils)base)flags)scopec                   &    e Zd ZdZed        Zd Zy)CreateaE  Create a Compute Engine unmanaged instance group.

    *{command}* creates a new Compute Engine unmanaged
  instance group.
  For example:

    $ {command} example-instance-group --zone us-central1-a

  The above example creates one unmanaged instance group called
  'example-instance-group' in the ``us-central1-a'' zone.
  c                     | j                   j                  t        j                         t	        j
                         t        _        t        j                  j                  | d       | j                  dd       y )Ncreate)operation_typez--descriptionzASpecifies a textual description for the unmanaged instance group.)help)
display_info	AddFormatinstance_groups_unmanaged_flagsLIST_FORMATinstance_groups_flagsMakeZonalInstanceGroupArgr   ZONAL_INSTANCE_GROUP_ARGAddArgumentadd_argument)parsers    7lib/surface/compute/instance_groups/unmanaged/create.pyArgszCreate.Args,   se    
!!"A"M"MN779 #
##//x/P
*  ,    c                 z   t        j                  | j                               }|j                  }t        j
                  j                  ||j                  t        j                  j                  t        j                  |            }t        j                  |      }|j                  |g       |j                   j#                  |j                   j%                  |j'                         |j(                        |j*                  |j,                        }|j/                  |j0                  j2                  d|fg      S )zCreates and returns an InstanceGroups.Insert request.

    Args:
      args: the argparse arguments that this command was invoked with.

    Returns:
      request: a ComputeInstanceGroupsInsertRequest message object
    )default_scopescope_lister)namedescription)instanceGroupzoneprojectInsert)r   ComputeApiHolderReleaseTrackclientr   r   ResolveAsResource	resourcescompute_scope	ScopeEnumZONEr	   GetDefaultScopeListerr   ZoneResourceFetcherWarnForZonalCreationmessages"ComputeInstanceGroupsInsertRequestInstanceGroupNamer"   r$   r%   MakeRequestsapitools_clientinstanceGroups)selfargsholderr)   	group_refzone_resource_fetcherrequests          r   Runz
Create.Run7   s    **4+<+<+>?F]]F 	''99&""'116644V< 	: 	> 
 '::6B..	{;oo@@oo33!(( 4 * ^^!! A #G !7!7!F!F!)7!4  5 6 6r   N)__name__
__module____qualname____doc__staticmethodr   r?    r   r   r   r      s     
 , ,6r   r   N)rC   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r
   r,   2googlecloudsdk.command_lib.compute.instance_groupsr   <googlecloudsdk.command_lib.compute.instance_groups.unmanagedr   CreateCommandr   rE   r   r   <module>rM      s:     6 &  ' 7 5 ( 4 E ] q46T 46r   