
                            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&                  j(                        e	j*                   G d de	j,                                      Z e	j$                  e	j&                  j0                         G d de             Z e	j$                  e	j&                  j4                         G d de             Zy)z(Create public advertised prefix command.    )absolute_import)division)unicode_literals)base_classes)public_advertised_prefixes)base)flags)	arg_utils)logc                   *    e Zd ZdZdZed        Zd Zy)Createa  Creates a Compute Engine public advertised prefix.

  ## EXAMPLES

  To create a public advertised prefix:

    $ {command} my-public-advertised-prefix --range=120.120.10.0/24 \
      --dns-verification-ip=120.120.10.15

  To create a v2 public advertised prefix:

    $ {command} my-v2-public-advertised-prefix --range=120.120.10.0/24 \
      --dns-verification-ip=120.120.10.15 --pdp-scope=REGIONAL
  Fc                     t        j                         j                  |       t        j                  || j                         y )N)r	   MakePublicAdvertisedPrefixesArgAddArgumentAddCreatePapArgsToParser_include_ipv6_access_type)clsparsers     8lib/surface/compute/public_advertised_prefixes/create.pyArgszCreate.Args2   s/    	))+77?	""63+H+HI    c           	      (   t        j                  | j                               }|j                  j                  }t        j                  |j                  ||j                        }t        j                         j                  ||j                  t        j                  |j                              }|j                  }d }| j                  r6|j                  r*t!        j"                  |j                  |j$                        }d }|j&                  r|j&                  }|j)                  ||j*                  ||j,                  |j.                  r|j1                  |j.                        nd |      }	t3        j4                  |j7                         d       |	S )N)scope_lister)ip_cidr_rangedns_verification_ipdescription	pdp_scopeipv6_access_typezpublic advertised prefix)r   ComputeApiHolderReleaseTrackclientmessagesr   PublicAdvertisedPrefixesClient	resourcesr	   r   ResolveAsResourcecompute_flagsGetDefaultScopeListerPublicAdvertisedPrefixr   r   r
   ChoiceToEnumIpv6AccessTypeValueValuesEnumr   r   ranger   r   PdpScopeValueValuesEnumr   CreatedResourceName)
selfargsholderr"   
pap_clientpap_refpapinput_ipv6_access_typeinput_dns_verification_ipresults
             r   Runz
Create.Run7   sX   **4+<+<+>?F}}%%H+JJx!1!1J 335GG"88G H G 
)
)C!%%$*?*?(55




+
+ 
 !%"&":":jj5$$>> --dnn=/  	F (BCMr   N)__name__
__module____qualname____doc__r   classmethodr   r8    r   r   r   r      s(     $J J#r   r   c                       e Zd ZdZdZy)
CreateBetaa  Create a public advertised prefix in the Beta release track.

  ## EXAMPLES

  To create a public advertised prefix:

    $ {command} my-public-advertised-prefix --range=120.120.10.0/24 \
      --dns-verification-ip=120.120.10.15

  To create a v2 public advertised prefix:

    $ {command} my-v2-public-advertised-prefix --range=120.120.10.0/24 \
      --dns-verification-ip=120.120.10.15 --pdp-scope=REGIONAL
  FNr9   r:   r;   r<   r   r>   r   r   r@   r@   ]   s     $r   r@   c                       e Zd ZdZdZy)CreateAlphaa  Create a public advertised prefix in the Alpha release track.

  ## EXAMPLES

  To create a public advertised prefix:

    $ {command} my-public-advertised-prefix --range=120.120.10.0/24 \
      --dns-verification-ip=120.120.10.15

  To create a v2 public advertised prefix:

    $ {command} my-v2-public-advertised-prefix --range=120.120.10.0/24 \
      --dns-verification-ip=120.120.10.15 --pdp-scope=REGIONAL
  TNrA   r>   r   r   rC   rC   q   s     #r   rC   N)r<   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r&   =googlecloudsdk.command_lib.compute.public_advertised_prefixes$googlecloudsdk.command_lib.util.apisr
   googlecloudsdk.corer   ReleaseTracksr    GAUniverseCompatibleCreateCommandr   BETAr@   ALPHArC   r>   r   r   <module>rQ      s    / &  ' 7 E ( E O : # D%%(():T :  *:z D%%**+$ $ ,$& D%%++,#* # -#r   