
                         L   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  \R                  " \R                  R                  \R                  R                   \R                  R"                  5       " S
 S\R$                  5      5       rSSS.\l        g)z0Command for creating packet mirroring resources.    )absolute_import)division)unicode_literals)base_classes)base)client)flags)utilsc                   8    \ rS rSrSrSr\S 5       rS rS r	Sr
g)Create   0Create a Compute Engine packet mirroring policy.Nc                     [         R                  R                  U5        [        R                  " 5       U l        U R
                  R                  USS9  [        R                  " U5        g )Ncreate)operation_type)r   
ASYNC_FLAGAddToParserr	   PacketMirroringArgumentPACKET_MIRRORING_ARGAddArgumentAddCreateArgs)clsparsers     /lib/surface/compute/packet_mirrorings/create.pyArgsCreate.Args#   sL    OO'$<<>C(((I	    c                     g)Nzcompute.packetMirrorings )selfs    r   
CollectionCreate.Collection,   s    %r   c                   ^^^ [         R                  " U R                  5       5      mTR                  R                  mU R
                  R                  UTR                  5      mUUU4S jnUUU4S jnUR                  (       a"  UR                   Vs/ s H
  oB" U5      PM     snO/ nUR                  (       a"  UR                   Vs/ s H
  oc" U5      PM     snO/ nTR                  5       nUR                  (       d  UR                  (       al  UR                  (       a%  UR                  R                  UR                  5        UR                  (       a%  UR                  R                  UR                  5        UR                   (       a8  TR                  R#                  UR                   R%                  5       5      Ul        TR)                  UUUR*                  =(       d    / S9n	TR-                  TR/                  5       UR0                  TR3                  [4        R6                  " TR8                  UR:                  TR                  5      S9TR=                  [4        R>                  " TR8                  TR@                  URB                  TR                  5      S9U	UURD                  (       a   TR,                  RF                  RH                  OTR,                  RF                  RJ                  S9n
[        R,                  " TTR                  TR                  S9nURM                  XRN                  =(       d    SS9$ s  snf s  snf )	Nc                 v   > TR                  [        R                  " TR                  U TR                  5      S9$ Nurl)/PacketMirroringMirroredResourceInfoInstanceInfor
   ResolveInstanceURIproject	resources)instanceholdermessagespm_refs    r   _MakeInstanceInfo%Create.Run.<locals>._MakeInstanceInfo5   s;    EE&&v~~x'-'7'79 F : :r   c                    > TR                  [        R                  " TR                  TR                  U TR
                  5      S9$ r%   )-PacketMirroringMirroredResourceInfoSubnetInfor
   ResolveSubnetURIr*   regionr+   )subnetr-   r.   r/   s    r   _MakeMirroredSubnetInfo+Create.Run.<locals>._MakeMirroredSubnetInfo:   sA    CC$$V^^V]]F%+%5%57 D 8 8r   )subnetworks	instancestagsr&   )namedescriptionnetworkcollectorIlbmirroredResourcesfilterenable)compute_clientregistryF)is_async)(r   ComputeApiHolderReleaseTrackr   r.   r   ResolveAsResourcer+   mirrored_instancesmirrored_subnetsPacketMirroringFilterfilter_cidr_rangesfilter_protocols
cidrRangesextendIPProtocolsfilter_directionDirectionValueValuesEnumupper	direction#PacketMirroringMirroredResourceInfomirrored_tagsPacketMirroringNamer=   PacketMirroringNetworkInfor
   ResolveNetworkURIr*   r>   !PacketMirroringForwardingRuleInfoResolveForwardingRuleURIr5   collector_ilbrB   EnableValueValuesEnumTRUEFALSEr   async_)r    argsr0   r7   r,   mirrored_instance_infosr6   mirrored_subnet_infos	pm_filtermirrored_resources_infotemplatepacket_mirroringr-   r.   r/   s               @@@r   Run
Create.Run/   s   **4+<+<+>?F}}%%H&&88v?O?OPF:
8 
	 	  594K4K4K(#4K&(  
		 7;6K6K6KF'6K$&  ..0I$"7"7		 	 ##D$;$;<			$$T%:%:;$::SS



%
%
')i 'JJ))%2 K ' ''[[]$$33''(.(8(8: 4 ; ??..v~~v}}/3/A/A/5/?/?A @ B 2 ''==BB!11GGMM ( OH --v}}v7G7GI ""8kk6JU"KKSs   L>Mr   )__name__
__module____qualname____firstlineno____doc__r   classmethodr   r!   ri   __static_attributes__r   r   r   r   r      s*     9   &9Lr   r   r   a      Mirror all tcp traffic to/from all instances in subnet my-subnet in
    us-central1, and send the mirrored traffic to the collector-fr
    Forwarding Rule.

      $ {command} my-pm
        --network my-network --region us-central1
        --mirrored-subnets my-subnet --collector-ilb collector-fr
        --filter-protocols tcp

    Mirror all traffic between instances with tag t1 and external server with IP
    11.22.33.44 in us-central1, and send the mirrored traffic to the
    collector-fr Forwarding Rule.

      $ {command} my-pm
        --network my-network --region us-central1
        --mirrored-tags t1 --collector-ilb collector-fr
        --filter-cidr-ranges 11.22.33.44/32
    )DESCRIPTIONEXAMPLESN)ro   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   4googlecloudsdk.command_lib.compute.packet_mirroringsr   r	   r
   ReleaseTracksrG   ALPHABETAGACreateCommandr   detailed_helpr   r   r   <module>r~      s    7 &  ' 7 ( G F F D%%++T->->-C-C%%((*JLT JL*JLZ F r   