
                         b   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(                  R,                  \
R(                  R.                  5       " S S\
R0                  5      5       rg)z2gcloud dns response-policies rules create command.    )absolute_import)division)unicode_literals)util)apis)base)
exceptions)flags)resource_args)logc                     [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        [         R                  " 5       R                  U 5        U R                  SSSS9  g)z+Adds the common arguments for all versions.z
--dns-nameTz3DNS name (wildcard or exact) to apply this rule to.)requiredhelpN)r
   GetLocalDataResourceRecordSetsAddToParserGetResponsePolicyRulesBehaviorGetLocationArgadd_argument)parsers    1lib/surface/dns/response_policies/rules/create.py_AddArgsCommonr      sd    &&(44V<&&(44V<$$V,@  B    c                   >    \ rS rSrSr\S 5       r\S 5       rS rSr	g)Create,   a  Creates a new Cloud DNS response policy rule.

## EXAMPLES

To create a new response policy rule with local data rrsets, run:

  $ {command} myresponsepolicyrule --response-policy="myresponsepolicy"
  --dns-name="www.zone.com."
  --local-data=name=www.zone.com.,type=CNAME,ttl=21600,rrdatas=zone.com.

To create a new response policy rule with behavior, run:

  $ {command} myresponsepolicyrule --response-policy="myresponsepolicy"
  --dns-name="www.zone.com." --behavior=bypassResponsePolicy

To create a new response policy rule with behavior in a zonal response
policy in us-east1-a, run:

  $ {command} myresponsepolicyrule --response-policy="myresponsepolicy"
  --dns-name="www.zone.com." --behavior=bypassResponsePolicy
  --location=us-east1-a
c                     U R                  5       [        R                   R                  [        R                   R                  4;   $ )N)ReleaseTrackr   BETAALPHA)clss    r   _BetaOrAlphaCreate._BetaOrAlphaF   s:    $"3"3"8"8"&"3"3"9"9"; ; ;r   c                     [         R                  " U R                  5       5      n[        U5        [        R
                  " USUS9  UR                  R                  S5        g )Nz	to create)verbapi_versionjson)r   GetApiFromTrackr   r   r   AddResponsePolicyRuleArgdisplay_info	AddFormat)r    r   r%   s      r   ArgsCreate.ArgsK   sL    &&s'7'7'9:K6**[k;
!!&)r   c           	         [         R                  " U R                  5       U5      n[         R                  " U5      n[        R
                  " SU5      n[         R                  " U5      nUR                  UR                  [         R                  " X!SS9SS9nUR                  5       nUR                  US9nUR                  Ul        UR                  S5      (       a,  UR                  S5      (       a  [        R                   " S	5      eUR                  S5      (       a  ["        R$                  " X5      Ul        OUR                  S5      (       a  / n	UR(                   Hq  n
UR+                  U
R-                  S
5      U
R-                  S5      U
R-                  S5      U
R-                  S5      R/                  S5      S9nU	R1                  U5        Ms     UR3                  U	S9nXl        UR7                  UR8                  UR:                  US9nUS:X  a  UR<                  Ul        UR>                  RA                  U5      n[B        RD                  " USS9  U$ )NdnsresponsePolicies)parentzdns.responsePolicyRules)
collection)ruleNamebehavior
local_dataz<Only one of arguments [--behavior, --local-data] is allowed.nametypettlrrdatas|)r5   r6   r7   r8   )
localDatas)responsePolicyprojectresponsePolicyRulev2ResponsePolicyRule)kind)#r   GetApiFromTrackAndArgsr   GetApiClientr   GetMessagesModuleGetRegistryParseresponse_policy_ruleGetParamsForRegistryNamer?   dns_namednsNameIsSpecifiedr	   ConflictingArgumentsExceptioncommand_util ParseResponsePolicyRulesBehaviorr3   r4   ResourceRecordSetgetsplitappendResponsePolicyRuleLocalData	localData#DnsResponsePolicyRulesCreateRequestresponse_policyr<   locationresponsePolicyRulesr   r   CreatedResource)selfargsr%   clientmessagesregistryresponse_policy_rule_refresponse_policy_rule_namerF   rrsetsrrsetresource_record_setr4   create_requestresults                  r   Run
Create.RunS   s0   --d.?.?.A4HK{+F%%e[9H ,H'~~!!!!+<NO,  .  . !9 = = ?#66* 7 , $(== 
##(8(8(F(F44
HJ J 
##&2&S&S
'#			,	'	'f??%&886"6"		% IIi(..s3	 9 5
 	)* # 77 8 j'1$AA++(00/ B 1N
 d $n''..~>F07KLMr    N)
__name__
__module____qualname____firstlineno____doc__classmethodr!   r+   rf   __static_attributes__rh   r   r   r   r   ,   s4    . ; ; * *3r   r   N)rm   
__future__r   r   r   googlecloudsdk.api_lib.dnsr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   r	   googlecloudsdk.command_lib.dnsr
   r   rM   googlecloudsdk.corer   r   ReleaseTracksr   r   r   GAUpdateCommandr   rh   r   r   <module>ry      s    9 &  ' + , ( . 0 8 ? #
B D%%++T->->-C-C%%((*XT X*Xr   