
    #                     8   S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSK	Jr  SS	KJr  SS
KJr  SSKJr  SSKJr  S r\
R&                  \
R(                  " \
R*                  R,                  5       " S S\
R.                  5      5       5       r\
R&                  \
R(                  " \
R*                  R2                  5       " S S\5      5       5       r\
R&                  \
R(                  " \
R*                  R6                  5       " S S\5      5       5       rg)z!gcloud dns policy create command.    )absolute_import)division)unicode_literals)util)apis)base)
exceptions)flags)resource_args)logc                    [         R                  " SS9R                  U 5        [         R                  " SS9R                  U 5        [         R                  " 5       R                  U 5        [         R
                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        g )NT)required)	r
   GetPolicyDescriptionArgAddToParserGetPolicyNetworksArgGetPolicyInboundForwardingArgGetPolicyAltNameServersArgGetPolicyLoggingArg!GetPolicyPrivateAltNameServersArgGetEnableDns64AllQueriesArgparsers    "lib/surface/dns/policies/create.py_AddArgsCommonr      s    .::6Bd+77?%%'33F;""$008))&1))+77?##%11&9    c                   .    \ rS rSrSr\S 5       rS rSrg)CreateGA)   a  Creates a new Cloud DNS policy.

This command creates a new Cloud DNS policy.

## EXAMPLES

To create a new policy with minimal arguments, run:

  $ {command} mypolicy \
  --description='My new policy test policy 5' \
  --networks=''

To create a new policy with all optional arguments, run:

  $ {command} mypolicy \
  --description='My new policy test policy 5' \
  --networks=network1,network2 \
  --alternative-name-servers=192.168.1.1,192.168.1.2 \
  --enable-inbound-forwarding \
  --enable-logging \
  --enable-dns64-all-queries
c                 |    [         R                  " U SSS9  [        U 5        U R                  R	                  S5        g )N	to createv1verbapi_versionjsonr   AddPolicyResourceArgr   display_info	AddFormatr   s    r   ArgsCreateGA.ArgsC   s3    &&[d46
!!&)r   c                 x   [         R                  " U R                  5       5      n[         R                  " U5      n[        R
                  " SU5      nUR                  R                  R                  5       nUR                  5       nUR                  USSS9nUR                  S5      (       aJ  UR                  S/:X  a  / Ul        [        R                  " UR                  UR                  U5      Ul        O[         R"                  " SS5      eUR                  S5      (       d  UR                  S	5      (       a_  UR$                  S/:X  a  / Ul        UR&                  S/:X  a  / Ul        [        R(                  " UUR$                  UR&                  S
9Ul        UR                  S5      (       a  UR,                  Ul        UR                  S5      (       a  UR0                  Ul        UR                  S5      (       a,  UR5                  UR7                  UR8                  S9S9Ul        O!UR5                  UR7                  SS9S9Ul        UR                  S5      (       a  UR<                  Ul        UR?                  XuR                  S9nUR@                  RC                  U5      n	[D        RF                  " USS9  U	$ NdnsF)nameenableLoggingenableInboundForwardingnetworks z
--networksz
           A list of networks must be
           provided.'
         NOTE: You can provide an empty value ("") for policies that
          have NO network binding.
          alternative_name_servers private_alternative_name_servers)versionserver_listprivate_server_listenable_inbound_forwardingenable_loggingenable_dns64_all_queries)
allQueries)scopedescription)policyprojectPolicy)kind)$r   GetApiFromTrackReleaseTrackGetApiClientr   GetMessagesModuleCONCEPTSr?   ParseNamerA   IsSpecifiedr2   command_utilParsePolicyNetworksr@   r	   RequiredArgumentExceptionr4   r5   ParseAltNameServersalternativeNameServerConfigr9   r1   r:   r0   PolicyDns64ConfigPolicyDns64ConfigScoper;   dns64Configr>   DnsPoliciesCreateRequestpoliciesCreater   CreatedResource
selfargsr$   clientmessages
policy_refpolicy_namer?   create_requestresults
             r   RunCreateGA.RunJ   s   &&t'8'8':;K{+F%%e[9H %%++-J//#K__ %  F 
##	2$	$88
--++[:fo 00 A   233t7G7G*8, 8,		&	&2$	.(*%		.	.2$	602-+7+K+K33"CC,Ef(
 344'+'E'Ef$())!00f233#55//66 0  6 f $55//5/A 6 f &&++f6611 7 3N __##N3F
2Mr    N	__name__
__module____qualname____firstlineno____doc__staticmethodr*   r`   __static_attributes__rb   r   r   r   r   )   s!    . * *Br   r   c                   .    \ rS rSrSr\S 5       rS rSrg)
CreateBeta   J  Creates a new Cloud DNS policy.

This command creates a new Cloud DNS policy.

## EXAMPLES

To create a new policy with minimal arguments, run:

  $ {command} mypolicy \
  --description='My new policy test policy 5' \
  --networks=''

To create a new policy with all optional arguments, run:

  $ {command} mypolicy \
  --description='My new policy test policy 5' \
  --networks=network1,network2 \
  --alternative-name-servers=192.168.1.1,192.168.1.2 \
  --private-alternative-name-servers=100.64.0.1 \
  --enable-inbound-forwarding \
  --enable-logging \
  --enable-dns64-all-queries
c                 |    [         R                  " U SSS9  [        U 5        U R                  R	                  S5        g )Nr    v1beta2r"   r%   r&   r   s    r   r*   CreateBeta.Args   s3    &&[i96
!!&)r   c                 x   [         R                  " U R                  5       5      n[         R                  " U5      n[        R
                  " SU5      nUR                  R                  R                  5       nUR                  5       nUR                  USSS9nUR                  S5      (       aJ  UR                  S/:X  a  / Ul        [        R                  " UR                  UR                  U5      Ul        O[         R"                  " SS5      eUR                  S5      (       d  UR                  S	5      (       a_  UR$                  S/:X  a  / Ul        UR&                  S/:X  a  / Ul        [        R(                  " UUR$                  UR&                  S
9Ul        UR                  S5      (       a  UR,                  Ul        UR                  S5      (       a  UR0                  Ul        UR                  S5      (       a,  UR5                  UR7                  UR8                  S9S9Ul        O!UR5                  UR7                  SS9S9Ul        UR                  S5      (       a  UR<                  Ul        UR?                  XuR                  S9nUR@                  RC                  U5      n	[D        RF                  " USS9  U	$ r-   )$r   rC   rD   rE   r   rF   rG   r?   rH   rI   rA   rJ   r2   rK   rL   r@   r	   rM   r4   r5   BetaParseAltNameServersrO   r9   r1   r:   r0   rP   rQ   r;   rR   r>   rS   rT   rU   r   rV   rW   s
             r   r`   CreateBeta.Run   s   &&t'8'8':;K{+F%%e[9H %%++-J//#K__ %  F 
##	2$	$88
--++[:fo 00 A   233t7G7G*8, 8,		&	&2$	.(*%		.	.2$	602-+7+O+O33"CC,Ef(
 344'+'E'Ef$())!00f233#55//66 0  6 f $55//5/A 6 f &&++f6611 7 3N __##N3F
2Mr   rb   Nrc   rb   r   r   rl   rl      s!    0 * *Br   rl   c                   (    \ rS rSrSr\S 5       rSrg)CreateAlpha   rn   c                 |    [         R                  " U SSS9  [        U 5        U R                  R	                  S5        g )Nr    v1alpha2r"   r%   r&   r   s    r   r*   CreateAlpha.Args  s3    &&[j:6
!!&)r   rb   N)rd   re   rf   rg   rh   ri   r*   rj   rb   r   r   rv   rv      s    0 * *r   rv   N)rh   
__future__r   r   r   googlecloudsdk.api_lib.dnsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   r	   googlecloudsdk.command_lib.dnsr
   r   rK   googlecloudsdk.corer   r   UniverseCompatibleReleaseTracksrD   GAUpdateCommandr   BETArl   ALPHArv   rb   r   r   <module>r      s    ( &  ' + , ( . 0 8 ? #: D%%(()at!! a * aH D%%**+b b , bJ D%%++,** * - *r   