
                         j   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
  ej                  ej                  j                  ej                  j                          G d d	ej"                               Z ej                  ej                  j&                         G d
 de             Zy)z>Command for creating Compute Engine license-based commitments.    )absolute_import)division)unicode_literals)base_classes)base)flagsc                   .    e Zd ZdZddiZed        Zd Zy)Create0Create Compute Engine license-based commitments.EXAMPLESam  
        To create a commitment called ``commitment-1'' in the ``us-central1''
        region with 36-month plan, sles-sap-12 license, 1-2 cores, run:

          $ {command} commitment-1 --plan=36-month --license=https://www.googleapis.com/compute/v1/projects/suse-sap-cloud/global/licenses/sles-sap-12 --region=us-central1 --amount=1 --cores-per-license=1-2
      c                 z    t        j                  d      j                  |d       t        j                  |       y )NFcreate)operation_type)r   MakeCommitmentArgAddArgumentAddLicenceBasedFlags)clsparsers     1lib/surface/compute/commitments/create_license.pyArgszCreate.Args'   s.    	E"..vh.O	v&    c           
         t        j                  | j                               }|j                  }|j                  }t        j                  d      j                  ||t        j                  |j                              }|j                  j                  }|j                  |j                         t        j                  ||j                        |j                  j                  j                   |j#                  |j$                  |j&                  |j(                              }|j+                  ||j,                  |j.                        }|j1                  |j2                  j4                  d|fg      S )NF)scope_lister)amountcoresPerLicenselicense)nameplancategorylicenseResource)
commitmentprojectregionInsert)r   ComputeApiHolderReleaseTrack	resourcesclientr   r   ResolveAsResourcecompute_flagsGetDefaultScopeListermessages
CommitmentNameTranslatePlanArgr   CategoryValueValuesEnumLICENSELicenseResourceCommitmentr   cores_per_licenser   %ComputeRegionCommitmentsInsertRequestr"   r#   MakeRequestsapitools_clientregionCommitments)	selfargsholderr'   r(   commitment_refr,   r!   requests	            r   Runz
Create.Run,   sL   **4+<+<+>?F  I]]F,,U3EE"88G F IN
 }}%%H$$  "##Hdii8$$<<DD ::;; 22LL ; 
	 % J ==&&$$ > &G !7!7!I!I!)7!4  5 6 6r   N)__name__
__module____qualname____doc__detailed_helpclassmethodr   r=    r   r   r
   r
      s-    8 
- ' '6r   r
   c                       e Zd ZdZy)CreateAlphar   N)r>   r?   r@   rA   rD   r   r   rF   rF   H   s    8r   rF   N)rA   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r*   .googlecloudsdk.command_lib.compute.commitmentsReleaseTracksr&   GABETACommandr
   ALPHArF   rD   r   r   <module>rQ      s    E &  ' 7 ( E @ D%%(($*;*;*@*@A)6T\\ )6 B)6X D%%++,9& 9 -9r   