Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/network/f5/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyc

�
�Udac@`sddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
mZddl
mZy�dd
l
mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZWn�ek
r)dd
l mZddl!mZddl!mZddl!mZddl!mZddl!mZddl!mZddl"mZddl#mZddl#mZddl#mZddl$mZddl$mZnXdefd��YZ%de%fd��YZ&de%fd��YZ'd e%fd!��YZ(d"e(fd#��YZ)d$e(fd%��YZ*d&e+fd'��YZ,d(e+fd)��YZ-d*e+fd+��YZ.d,�Z/e0d-kre/�nd.S(/i(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	certifiedtsupported_bys$
---
module: bigip_apm_acl
short_description: Manage user-defined APM ACLs
description:
  - Manage user-defined APM ACLs.
version_added: 2.9
options:
  name:
    description:
      - Specifies the name of the ACL to manage.
    type: str
    required: True
  description:
    description:
      - User created ACL description.
    type: str
  type:
    description:
      - Specifies the type of ACL to create.
      - Once the type is set it cannot be changed.
    type: str
    choices:
      - static
      - dynamic
  acl_order:
    description:
      - Specifies a number that indicates the order of this ACL relative to other ACLs.
      - When not set, the device will always place the ACL after the last one created.
      - The lower number the higher the ACL will be in the general order, with lowest number C(0) being the topmost one.
      - Valid range of values is between C(0) and C(65535) inclusive.
    type: int
  path_match_case:
    description:
      - Specifies whether alphabetic case is considered when matching paths in an access control entry.
    type: bool
  entries:
    description:
      - Access control entries that define the ACL matching and its respective behavior.
      - The order in which the rules are placed as arguments to this parameter, determines their order in the ACL,
        in other words changing the order of the same elements will cause a change on the unit.
    type: list
    suboptions:
      action:
        description:
          - Specifies the action that the access control entry takes when a match for this access control entry
            is encountered.
        type: str
        required: True
        choices:
          - allow
          - reject
          - discard
          - continue
      dst_port:
        description:
          - Specifies the destination port for the access control entry.
          - Can be set to C(*) to indicate all ports.
          - Parameter is mutually exclusive with C(dst_port_range).
        type: str
      dst_port_range:
        description:
          - Specifies the destination port range for the access control entry.
          - Parameter is mutually exclusive with C(dst_port_range).
          - To indicate all ports the C(dst_port) parameter must be used and set to C(*).
        type: str
      src_port:
        description:
          - Specifies the source port for the access control entry.
          - Can be set to C(*) to indicate all ports.
          - Parameter is mutually exclusive with C(src_port_range).
        type: str
      src_port_range:
        description:
          - Specifies the source port range for the access control entry.
          - Parameter is mutually exclusive with C(src_port_range).
          - To indicate all ports the C(src_port) parameter must be used and set to C(*).
        type: str
      dst_addr:
        description:
          - Specifies the destination IP address for the access control entry.
          - When set to C(any) the ACL will match any destination address, C(dst_mask) is ignored in this case.
        type: str
      dst_mask:
        description:
          - Optional parameter that specifies the destination network mask for the access control entry.
          - If not specified and C(dst_addr) is not C(any) the C(dst_addr) is deemed to be host address.
        type: str
      src_addr:
        description:
          - Specifies the source IP address for the access control entry.
          - When set to C(any) the ACL will match any source address, C(src_mask) is ignored in this case.
        type: str
      src_mask:
        description:
          - Optional parameter that specifies the source network mask for the access control entry.
          - If not specified and C(src_addr) is not C(any) the C(src_addr) is deemed to be host address.
        type: str
      scheme:
        description:
          - This parameter applies to Layer 7 access control entries only.
          - "Specifies the URI scheme: C(http), C(https) or C(any) on which the access control entry operates."
        type: str
        choices:
          - http
          - https
          - any
      protocol:
        description:
          - This parameter applies to Layer 4 access control entries only.
          - "Specifies the protocol: C(tcp), C(udp), C(icmp) or C(all) protocols,
            to which the access control entry applies."
        type: str
        choices:
          - tcp
          - icmp
          - udp
          - all
      host_name:
        description:
          - This parameter applies to Layer 7 access control entries only.
          - Specifies a host to which the access control entry applies.
        type: str
      paths:
        description:
          - This parameter applies to Layer 7 access control entries only.
          - Specifies the path or paths to which the access control entry applies.
        type: str
      log:
        description:
          - Specifies the log level that is logged when actions of this type occur.
          - When C(none) it will log nothing, which is a default action.
          - When C(packet) it will log the matched packet.
        type: str
        choices:
          - none
          - packet
  partition:
    description:
      - Device partition to manage resources on.
    type: str
    default: Common
  state:
    description:
      - When C(state) is C(present), ensures that the ACL exists.
      - When C(state) is C(absent), ensures that the ACL is removed.
    type: str
    choices:
      - present
      - absent
    default: present
extends_documentation_fragment: f5
author:
  - Wojciech Wypior (@wojtek0806)
s�	
- name: Create a static ACL with L4 entries
  bigip_apm_acl:
    name: L4foo
    acl_order: 0
    type: static
    entries:
      - action: allow
        dst_port: '80'
        dst_addr: '192.168.1.1'
        src_port: '443'
        src_addr: '10.10.10.0'
        src_mask: '255.255.255.128'
        protocol: tcp
      - action: reject
        dst_port: '*'
        dst_addr: '192.168.1.1'
        src_port: '*'
        src_addr: '10.10.10.0'
        src_mask: '255.255.255.128'
        protocol: tcp
        log: packet
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Create a static ACL with L7 entries
  bigip_apm_acl:
    name: L7foo
    acl_order: 1
    type: static
    path_match_case: no
    entries:
      - action: allow
        host_name: 'foobar.com'
        paths: '/shopfront'
        scheme: https
      - action: reject
        host_name: 'internal_foobar.com'
        paths: '/admin'
        scheme: any
        log: packet
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Create a static ACL with L7/L4 entries
  bigip_apm_acl:
    name: L7L4foo
    acl_order: 2
    type: static
    path_match_case: no
    entries:
      - action: allow
        host_name: 'foobar.com'
        paths: '/shopfront'
        scheme: https
        dst_port: '8181'
        dst_addr: '192.168.1.1'
        protocol: tcp
      - action: reject
        dst_addr: '192.168.1.1'
        host_name: 'internal_foobar.com'
        paths: '/admin'
        scheme: any
        protocol: all
        log: packet
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Modify a static ACL entries
  bigip_apm_acl:
    name: L4foo
    entries:
      - action: allow
        dst_port: '80'
        dst_addr: '192.168.1.1'
        src_port: '443'
        src_addr: '10.10.10.0'
        src_mask: '255.255.255.128'
        protocol: tcp
      - action: discard
        dst_port: '*'
        dst_addr: 192.168.1.1
        src_port: '*'
        src_addr: '10.10.10.0'
        src_mask: '255.2155.255.128'
        protocol: all
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Remove static ACL
  bigip_apm_acl:
    name: L4foo
    state: absent
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost
s$
description:
  description: The new description of the ACL.
  returned: changed
  type: str
  sample: My ACL
type:
  description: The type of ACL to create.
  returned: changed
  type: str
  sample: static
acl_order:
  description: The order of this ACL relative to other ACLs.
  returned: changed
  type: int
  sample: 10
path_match_case:
  description: Specifies whether alphabetic case is considered when matching paths in an access control entry.
  returned: changed
  type: bool
  sample: yes
entries:
  description: Access control entries that define the ACL matching and its respective behavior.
  type: complex
  returned: changed
  contains:
    action:
      description: Action that the access control entry takes when a match for this access control entry is encountered.
      returned: changed
      type: str
      sample: allow
    dst_port:
      description: The destination port for the access control entry.
      returned: changed
      type: str
      sample: '80'
    dst_port_range:
      description: The destination port range for the access control entry.
      returned: changed
      type: str
      sample: '80-81'
    src_port:
      description: The source port for the access control entry.
      returned: changed
      type: str
      sample: '80'
    src_port_range:
      description: The source port range for the access control entry.
      returned: changed
      type: str
      sample: '80-81'
    dst_addr:
      description: The destination IP address for the access control entry.
      returned: changed
      type: str
      sample: 192.168.0.1
    dst_mask:
      description: The destination network mask for the access control entry.
      returned: changed
      type: str
      sample: 255.255.255.128
    src_addr:
      description: The source IP address for the access control entry.
      returned: changed
      type: str
      sample: 192.168.0.1
    src_mask:
      description: The source network mask for the access control entry.
      returned: changed
      type: str
      sample: 255.255.255.128
    scheme:
      description: The URI scheme on which the access control entry operates.
      returned: changed
      type: str
      sample: https
    protocol:
      description: The protocol to which the access control entry applies.
      returned: changed
      type: str
      sample: tcp
    host_name:
      description: The host to which the access control entry applies.
      returned: changed
      type: str
      sample: foobar.com
    paths:
      description: The path or paths to which the access control entry applies.
      returned: changed
      type: str
      sample: /fooshop
    log:
      description: The log level that is logged when actions of this type occur.
      returned: changed
      type: str
      sample: packet
  sample: hash/dictionary of values
(t
AnsibleModule(tenv_fallback(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tfq_name(ttransform_name(tf5_argument_spec(tflatten_boolean(tcmp_str_with_none(tis_valid_ip(tis_valid_ip_network(tis_valid_ip_interface(t
ip_network(tip_interfacet
ParameterscB`s[eZidd6dd6ZdddddgZdddddgZdddddgZRS(t	acl_ordertaclOrdertpath_match_caset
pathMatchCasetentriestdescriptionttype(t__name__t
__module__tapi_maptapi_attributestreturnablest
updatables(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�s$
		t
ApiParameterscB`seZRS((RR (((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR%�stModuleParameterscB`s�eZidd6dd6dd6dd6Zed��Zed	��Zed
��Zed��Zd�Zd
�Z	dd�Zd�ZRS(iticmpittcpitudpitallcC`s7t|jd�}|dkr#dS|dkr3dSdS(NRtyesttruetnotfalse(Rt_values(tselftresult((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�s
cC`sT|jddkrdSd|jdko5dknrItd��n|jdS(NRii��sMSpecified number is out of valid range, correct range is between 0 and 65535.(R/tNoneR(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�s#cC`s9|jddkrdS|jddkr.dS|jdS(NRtnonet(R3R4(R/R2(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�s
cC`s�|jddkrdS|jddkr.gSg}t�}x�|jdD]�}|d|d<d|kr�|ddk	r�|ddkr�d|d<d|d<q�|jt|d��t|d�|d<t|d�|d<nd	|kr0|d	dk	r0|j|d	�\}}||d<||d<nd
|kr�|d
dk	r�|d
dkrsd|d<d|d<q�|jt|d
��t|d
�|d<t|d
�|d<nd
|kr|d
dk	r|j|d
�\}}||d<||d<nd|krt|ddk	rtd|krZ|ddk	rZ|j|d|d�|d<qt|j|d�|d<nd|kr�|ddk	r�d|kr�|ddk	r�|j|d|d�|d<q�|j|d�|d<nd|kr|ddk	r|d|d<nd|krH|ddk	rH|j|d|d<nd|kru|ddk	ru|d|d<nd|kr�|ddk	r�|d|d<nd|kr�|ddk	r�|d|d<n|j|�qKW|S(NRR3tactiontdst_portt*it
dstEndPorttdstStartPorttdst_port_rangetsrc_portt
srcEndPorttsrcStartPorttsrc_port_rangetdst_addrtdst_maskt	dstSubnettsrc_addrtsrc_maskt	srcSubnettschemetprotocolt	host_namethosttpathstlog(	R/R2tdictt_validate_porttintt_validate_portst_convert_addresstprotocol_maptappend(R0R1telementtxtstarttstop((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�sd	







!!cC`s/d|kodknr+td��ndS(Nii��sRSpecified port number is out of valid range, correct range is between 0 and 65535.(R(R0titem((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRLscC`s�|jd�\}}t|j��}t|j��}d|koPdknsqd|koldknr�td��n||fS(Nt-ii��sRSpecified port number is out of valid range, correct range is between 0 and 65535.(tsplitRMtstripR(R0RVRTRU((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRN#s8cC`s�|dkrdSt|�s+td��n|rz|j|�}dj||�}tdj|��rk|Std��ntdj|��}|jS(Ntanys	0.0.0.0/0s2The provided IP address is not a valid IP address.s{0}/{1}u{0}s4The provided IP and Mask are not a valid IP network.(RRt_convert_netmasktformatRRtwith_prefixlen(R0RVtmasktmsktnetworkRH((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRO-scC`s�d}y/t|�}d|ko,dknr4nWn?tk
rvt|�rwtdt|��}|j}qwnX|dkr�tdj|���n|S(Ni����iiu
0.0.0.0/%ss8The provided netmask {0} is neither in IP or CIDR format(RMt
ValueErrorRRtstrt	prefixlenRR\(R0RVR1tip((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR[>s
N(
RR RPtpropertyRRRRRLRNR2ROR[(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR&�s

9		
tChangescB`seZd�ZRS(cC`sXi}y:x$|jD]}t||�||<qW|j|�}Wntk
rSnX|S(N(R#tgetattrt_filter_paramst	Exception(R0R1t
returnable((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt	to_returnPs
(RR Rk(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRfOst
UsableChangescB`seZRS((RR (((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRl[stReportableChangescB`sQeZidd6dd6dd6dd6Zed��Zed	��Zd
�ZRS(R'iR(iR)iR*icC`st|jd�}|S(NR(RR/(R0R1((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRgscC`sk|jddkrdS|jds(dSg}t�}x-|jdD]}|d|d<dr�d|kr�|d|dkr�|ddkr�d|d<q�t|d�|d<q�d	j|d|d�|d
<ndrOd|krO|d|dkr.|ddkrd|d
<qLt|d�|d
<qOd	j|d|d�|d<nd|kr|j|d�\|d<|d<nd|kr�|j|d�\|d<|d<nd|kr�|d|d<nd|kr�|j|d|d<nd|kr
|d|d<nd|kr*|d|d<nd|krG|d|d<n|j|�}|j|�qEW|S(NRR3R5R9R8iR7R6s{0}-{1}R:R=R<R;R>RAR?R@RDRBRCRERFRHRGRIRJ(	R/R2RKRbR\RORPRhRQ(R0R1t	to_filterRSRR((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRlsJ
	
!
!$$cC`sg|dkrdStdj|��}|jdkrGt|j�dfSt|j�t|j�fSdS(Ns	0.0.0.0/0RZu{0}i (sanyN(R2RR\RcRbtnetwork_addresstnetmask(R0RVR1((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRO�s(RR RPReRRRO(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRm_s
,t
DifferencecB`s\eZdd�Zd�Zd�Zed��Zed��Zd�Z	ed��Z
RS(cC`s||_||_dS(N(twantthave(R0RrRs((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt__init__�s	cC`s9yt||�}|SWntk
r4|j|�SXdS(N(RgtAttributeErrort_Difference__default(R0tparamR1((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pytcompare�s

cC`sQt|j|�}y&t|j|�}||kr7|SWntk
rL|SXdS(N(RgRrRsRu(R0Rwtattr1tattr2((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt	__default�s
cC`st|jj|jj�S(N(RRrRRs(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�scC`s�|jjdkrdS|jjdkr>|jjgkr>dS|jj}t�}xCt|�D]5\}}|j||jj|�}|j|�q`Wx4t|�D]&\}}|||kr�|jjSq�WdS(N(RrRR2Rstlistt	enumeratet_filter_haveRQ(R0RrRstidxRVtentry((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�s$	cC`sYt|j��jt|j���}t�}x"t|�D]}||||<q=W|S(N(tsettkeystintersectionRKR|(R0RrRstto_checkR1tk((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR~�s
'	cC`sB|jjdkrdS|jj|jjkr2dStd��dS(Ns.ACL type cannot be changed after ACL creation.(RrRR2RsR(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�sN(RR R2RtRxRvReRRR~R(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRq�s				t
ModuleManagercB`s�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZRS(cO`s^|jdd�|_t|jj�|_td|jj�|_t�|_	t
�|_dS(Ntmoduletparams(tgetR2R�R
R�tclientR&RrR%RsRltchanges(R0targstkwargs((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRt�s
cC`sji}xBtjD]7}t|j|�dk	rt|j|�||<qqW|rftd|�|_ndS(NR�(RR#RgRrR2RlR�(R0tchangedtkey((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt_set_changed_options�scC`s�t|j|j�}tj}t�}xX|D]P}|j|�}|dkrUq.q.t|t�rt|j	|�q.|||<q.W|r�t
d|�|_tSt
S(NR�(RqRrRsRR$RKRxR2t
isinstancetupdateRlR�tTruetFalse(R0tdiffR$R�R�tchange((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt_update_changed_options�s		
cC`sK|jdg�}x2|D]*}|jjjd|dd|d�qWdS(Nt
__warningstmsgtversion(tpopR�R�t	deprecate(R0R1twarningstwarning((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt_announce_deprecationss


cC`s�t}t�}|jj}|dkr6|j�}n|dkrQ|j�}ntd|jj��}|j�}|j	|�|j	td|��|j
|�|S(NtpresenttabsentR�R�(R�RKRrtstateR�R�RmR�RkR�R�(R0R�R1R�t
reportableR�((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pytexec_module	s	

cC`s$|j�r|j�S|j�SdS(N(texistsR�tcreate(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�s
cC`s|j�r|j�StS(N(R�tremoveR�(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR� s
cC`s|j�}|rtStS(N(R�R�R�(R0R1((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt
should_update%scC`s=|j�|_|j�stS|jjr/tS|j�tS(N(tread_current_from_deviceRsR�R�R�t
check_modeR�tupdate_on_device(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�+s
cC`s9|jjrtS|j�|j�r5td��ntS(NsFailed to delete the resource.(R�R�R�tremove_from_deviceR�R(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�4s
cC`s(|j�|jjrtS|j�tS(N(R�R�R�R�tcreate_on_device(R0((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�<s


cC`s�dj|jjd|jjdt|jj|jj��}|jjj|�}y|j	�}Wnt
k
rwtSX|jdks�d|kr�|ddkr�tSt
S(Ns#https://{0}:{1}/mgmt/tm/apm/acl/{2}tservertserver_porti�tcode(R\R�tproviderRRrt	partitiontnametapiR�tjsonRaR�RR�(R0turitresptresponse((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�Cs


+cC`s�|jj�}|jj|d<|jj|d<dj|jjd|jjd�}|jjj	|d|�}y|j
�}Wn%tk
r�}tt
|���nXd|kr�|ddkr�d
|kr�t|d
��q�t|j��ntS(NR�R�s https://{0}:{1}/mgmt/tm/apm/acl/R�R�R�R�i�i�tmessage(i�i�(R�t
api_paramsRrR�R�R\R�R�R�tpostR�RaRRbtcontentR�(R0R�R�R�R�tex((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�Rs 
cC`s�|jj�}dj|jjd|jjdt|jj|jj��}|jj	j
|d|�}y|j�}Wn%tk
r�}t
t|���nXd|kr�|ddkr�d|kr�t
|d��q�t
|j��ndS(Ns#https://{0}:{1}/mgmt/tm/apm/acl/{2}R�R�R�R�i�R�(R�R�R\R�R�RRrR�R�R�tpatchR�RaRRbR�(R0R�R�R�R�R�((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�gs

cC`sydj|jjd|jjdt|jj|jj��}|jjj|�}|j	dkrft
St|j��dS(Ns#https://{0}:{1}/mgmt/tm/apm/acl/{2}R�R�i�(
R\R�R�RRrR�R�R�tdeleteRR�RR�(R0R�R�((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR�zs

cC`s�dj|jjd|jjdt|jj|jj��}|jjj|�}y|j	�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��ntd|�S(Ns#https://{0}:{1}/mgmt/tm/apm/acl/{2}R�R�R�i�R�R�(R\R�R�RRrR�R�R�R�R�RaRRbR�R%(R0R�R�R�R�((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR��s

(RR RtR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR��s 																tArgumentSpeccB`seZd�ZRS(c2C`s�t|_tdtdt�dtdd�dt�dtdd�dtd	d
dg�dtdd
dddtdtd	ddddgdt�dt�dt�dt�dt�dt�dt�dt�dt�dtd	dd d!g�d"td	d#d$d%d&g�d't�d(t�d)td	d*d+g��d,ddgddgg�d-td.d/d0td1gf�d2td.d3d	d3d4g��}i|_|jjt�|jj|�dS(5NR�trequiredRRRMRRtbooltchoiceststatictdynamicRR|telementsRKtoptionsR5tallowtrejecttdiscardtcontinueR6R:R;R>R?R@RBRCRERZthttpsthttpRFR(R'R)R*RGRIRJtpacketR3tmutually_exclusiveR�tdefaulttCommontfallbacktF5_PARTITIONR�R�R�(R�tsupports_check_modeRKR	t
argument_specR�R(R0R�((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyRt�sT															(RR Rt(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyR��scC`s�t�}td|jd|j�}y,td|�}|j�}|j|�Wn)tk
r{}|jdt	|��nXdS(NR�R�R�R�(
R�RR�R�R�R�t	exit_jsonRt	fail_jsonRb(tspecR�tmmtresultsR�((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pytmain�s		t__main__N(1t
__future__RRRRt
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNtansible.module_utils.basicRR	t%library.module_utils.network.f5.bigipR
t&library.module_utils.network.f5.commonRRR
RRRt'library.module_utils.network.f5.compareRt)library.module_utils.network.f5.ipaddressRRRt%library.module_utils.compat.ipaddressRRtImportErrort%ansible.module_utils.network.f5.bigipt&ansible.module_utils.network.f5.commont'ansible.module_utils.network.f5.comparet)ansible.module_utils.network.f5.ipaddresst%ansible.module_utils.compat.ipaddressRR%R&RfRlRmtobjectRqR�R�R�R(((sL/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_apm_acl.pyt<module>sb


�pc
�C=�:	

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]