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_firewall_dos_vector.pyo

�
�Udac@`s�ddlmZmZmZeZidd6dgd6dd6ZdZd	Zd
Z	ddl
mZddl
mZdd
l
mZytddlmZddlmZddlmZddlmZddlmZddlmZddlmZWn�ek
ryddlmZddlmZddlmZddlmZddlmZddlmZddlmZnXdddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.gZd/d0d1d2d3d4d5d6d7d8d9d:d;d<gZd=d>d?d@dAdBdCdDdEd6dFdGdHdIdJgZdKefdL��YZdMefdN��YZdOefdP��YZ dQefdR��YZ!dSe!fdT��YZ"dUe!fdV��YZ#dWe$fdX��YZ%dYe$fdZ��YZ&d[e$fd\��YZ'd]e&fd^��YZ(d_e&fd`��YZ)dae&fdb��YZ*dce&fdd��YZ+dee$fdf��YZ,dg�Z-e.dhkr�e-�ndiS(ji(tabsolute_importtdivisiontprint_functions1.1tmetadata_versiontpreviewtstatust	certifiedtsupported_bys�.
---
module: bigip_firewall_dos_vector
short_description: Manage attack vector configuration in an AFM DoS profile
description:
  - Manage attack vector configuration in an AFM DoS profile. In addition to the normal
    AFM DoS profile vectors, this module can manage the device-configuration vectors.
    See the module documentation for details about this method.
version_added: 2.8
options:
  name:
    description:
      - Specifies the name of the vector to modify.
      - Vectors that ship with the device are "hard-coded" so-to-speak in that the list
        of vectors is known to the system and users cannot add new vectors. Users only
        manipulate the existing vectors; all of which are disabled by default.
      - When C(ext-hdr-too-large), configures the "IPv6 extension header too large"
        Network Security vector.
      - When C(hop-cnt-low), configures the "IPv6 hop count <= <tunable>" Network
        Security vector.
      - When C(host-unreachable), configures the "Host Unreachable" Network Security
        vector.
      - When C(icmp-frag), configures the "ICMP Fragment" Network Security vector.
      - When C(icmpv4-flood), configures the "ICMPv4 flood" Network Security vector.
      - When C(icmpv6-flood), configures the "ICMPv6 flood" Network Security vector.
      - When C(ip-frag-flood), configures the "IP Fragment Flood" Network Security vector.
      - When C(ip-low-ttl), configures the "TTL <= <tunable>" Network Security vector.
      - When C(ip-opt-frames), configures the "IP Option Frames" Network Security vector.
      - When C(ipv6-ext-hdr-frames), configures the "IPv6 Extended Header Frames"
        Network Security vector.
      - When C(ipv6-frag-flood), configures the "IPv6 Fragment Flood" Network Security
        vector.
      - When C(opt-present-with-illegal-len), configures the "Option Present With Illegal
        Length" Network Security vector.
      - When C(sweep), configures the "Sweep" Network Security vector.
      - When C(tcp-bad-urg), configures the "TCP Flags-Bad URG" Network Security vector.
      - When C(tcp-half-open), configures the "TCP Half Open" Network Security vector.
      - When C(tcp-opt-overruns-tcp-hdr), configures the "TCP Option Overruns TCP Header"
        Network Security vector.
      - When C(tcp-psh-flood), configures the "TCP PUSH Flood" Network Security vector.
      - When C(tcp-rst-flood), configures the "TCP RST Flood" Network Security vector.
      - When C(tcp-syn-flood), configures the "TCP SYN Flood" Network Security vector.
      - When C(tcp-syn-oversize), configures the "TCP SYN Oversize" Network Security
        vector.
      - When C(tcp-synack-flood), configures the "TCP SYN ACK Flood" Network Security
        vector.
      - When C(tcp-window-size), configures the "TCP Window Size" Network Security
        vector.
      - When C(tidcmp), configures the "TIDCMP" Network Security vector.
      - When C(too-many-ext-hdrs), configures the "Too Many Extension Headers" Network
        Security vector.
      - When C(udp-flood), configures the "UDP Flood" Network Security vector.
      - When C(unk-tcp-opt-type), configures the "Unknown TCP Option Type" Network
        Security vector.
      - When C(a), configures the "DNS A Query" DNS Protocol Security vector.
      - When C(aaaa), configures the "DNS AAAA Query" DNS Protocol Security vector.
      - When C(any), configures the "DNS ANY Query" DNS Protocol Security vector.
      - When C(axfr), configures the "DNS AXFR Query" DNS Protocol Security vector.
      - When C(cname), configures the "DNS CNAME Query" DNS Protocol Security vector.
      - When C(dns-malformed), configures the "dns-malformed" DNS Protocol Security vector.
      - When C(ixfr), configures the "DNS IXFR Query" DNS Protocol Security vector.
      - When C(mx), configures the "DNS MX Query" DNS Protocol Security vector.
      - When C(ns), configures the "DNS NS Query" DNS Protocol Security vector.
      - When C(other), configures the "DNS OTHER Query" DNS Protocol Security vector.
      - When C(ptr), configures the "DNS PTR Query" DNS Protocol Security vector.
      - When C(qdcount), configures the "DNS QDCOUNT Query" DNS Protocol Security vector.
      - When C(soa), configures the "DNS SOA Query" DNS Protocol Security vector.
      - When C(srv), configures the "DNS SRV Query" DNS Protocol Security vector.
      - When C(txt), configures the "DNS TXT Query" DNS Protocol Security vector.
      - When C(ack), configures the "SIP ACK Method" SIP Protocol Security vector.
      - When C(bye), configures the "SIP BYE Method" SIP Protocol Security vector.
      - When C(cancel), configures the "SIP CANCEL Method" SIP Protocol Security vector.
      - When C(invite), configures the "SIP INVITE Method" SIP Protocol Security vector.
      - When C(message), configures the "SIP MESSAGE Method" SIP Protocol Security vector.
      - When C(notify), configures the "SIP NOTIFY Method" SIP Protocol Security vector.
      - When C(options), configures the "SIP OPTIONS Method" SIP Protocol Security vector.
      - When C(other), configures the "SIP OTHER Method" SIP Protocol Security vector.
      - When C(prack), configures the "SIP PRACK Method" SIP Protocol Security vector.
      - When C(publish), configures the "SIP PUBLISH Method" SIP Protocol Security vector.
      - When C(register), configures the "SIP REGISTER Method" SIP Protocol Security vector.
      - When C(sip-malformed), configures the "sip-malformed" SIP Protocol Security vector.
      - When C(subscribe), configures the "SIP SUBSCRIBE Method" SIP Protocol Security vector.
      - When C(uri-limit), configures the "uri-limit" SIP Protocol Security vector.
    type: str
    choices:
      - ext-hdr-too-large
      - hop-cnt-low
      - host-unreachable
      - icmp-frag
      - icmpv4-flood
      - icmpv6-flood
      - ip-frag-flood
      - ip-low-ttl
      - ip-opt-frames
      - ipv6-frag-flood
      - opt-present-with-illegal-len
      - sweep
      - tcp-bad-urg
      - tcp-half-open
      - tcp-opt-overruns-tcp-hdr
      - tcp-psh-flood
      - tcp-rst-flood
      - tcp-syn-flood
      - tcp-syn-oversize
      - tcp-synack-flood
      - tcp-window-size
      - tidcmp
      - too-many-ext-hdrs
      - udp-flood
      - unk-tcp-opt-type
      - a
      - aaaa
      - any
      - axfr
      - cname
      - dns-malformed
      - ixfr
      - mx
      - ns
      - other
      - ptr
      - qdcount
      - soa
      - srv
      - txt
      - ack
      - bye
      - cancel
      - invite
      - message
      - notify
      - options
      - other
      - prack
      - publish
      - register
      - sip-malformed
      - subscribe
      - uri-limit
  profile:
    description:
      - Specifies the name of the profile to manage vectors in.
      - The name C(device-config) is reserved for use by this module.
      - Vectors can be managed in either DoS Profiles, or Device Configuration. By
        specifying a profile of 'device-config', this module will specifically tailor
        configuration of the provided vectors to the Device Configuration.
    type: str
    required: True
  auto_blacklist:
    description:
      - Automatically blacklists detected bad actors.
      - To enable this parameter, the C(bad_actor_detection) must also be enabled.
      - This parameter is not supported by the C(dns-malformed) vector.
      - This parameter is not supported by the C(qdcount) vector.
    type: bool
  bad_actor_detection:
    description:
      - Whether Bad Actor detection is enabled or disabled for a vector, if available.
      - This parameter must be enabled to enable the C(auto_blacklist) parameter.
      - This parameter is not supported by the C(dns-malformed) vector.
      - This parameter is not supported by the C(qdcount) vector.
    type: bool
  attack_ceiling:
    description:
      - Specifies the absolute maximum allowable for packets of this type.
      - This setting rate limits packets to the packets per second setting, when
        specified.
      - To set no hard limit and allow automatic thresholds to manage all rate limiting,
        set this to C(infinite).
    type: str
  attack_floor:
    description:
      - Specifies packets per second to identify an attack.
      - These settings provide an absolute minimum of packets to allow before the attack
        is identified.
      - As the automatic detection thresholds adjust to traffic and CPU usage on the
        system over time, this attack floor becomes less relevant.
      - This value may not exceed the value in C(attack_floor).
    type: str
  allow_advertisement:
    description:
      - Specifies that addresses that are identified for blacklisting are advertised to
        BGP routers
    type: bool
  simulate_auto_threshold:
    description:
      - Specifies that results of the current automatic thresholds are logged, though
        manual thresholds are enforced, and no action is taken on automatic thresholds.
      - The C(sweep) vector does not support this parameter.
    type: bool
  blacklist_detection_seconds:
    description:
      - Detection, in seconds, before blacklisting occurs.
    type: int
  blacklist_duration:
    description:
      - Duration, in seconds, that the blacklist will last.
    type: int
  per_source_ip_detection_threshold:
    description:
      - Specifies the number of packets per second to identify an IP address as a bad
        actor.
    type: str
  per_source_ip_mitigation_threshold:
    description:
      - Specifies the rate limit applied to a source IP that is identified as a bad
        actor.
    type: str
  detection_threshold_percent:
    description:
      - Lists the threshold percent increase over time that the system must detect in
        traffic in order to detect this attack.
      - The C(tcp-half-open) vector does not support this parameter.
    type: str
    aliases:
      - rate_increase
  detection_threshold_eps:
    description:
      - Lists how many packets per second the system must discover in traffic in order
        to detect this attack.
    type: str
    aliases:
      - rate_threshold
  mitigation_threshold_eps:
    description:
      - Specify the maximum number of this type of packet per second the system allows
        for a vector.
      - The system drops packets once the traffic level exceeds the rate limit.
    type: str
    aliases:
      - rate_limit
  threshold_mode:
    description:
      - The C(dns-malformed) vector does not support C(fully-automatic), or C(stress-based-mitigation)
        for this parameter.
      - The C(qdcount) vector does not support C(fully-automatic), or C(stress-based-mitigation)
        for this parameter.
      - The C(sip-malformed) vector does not support C(fully-automatic), or C(stress-based-mitigation)
        for this parameter.
    type: str
    choices:
      - manual
      - stress-based-mitigation
      - fully-automatic
  state:
    description:
      - When C(state) is C(mitigate), ensures that the vector enforces limits and
        thresholds.
      - When C(state) is C(detect-only), ensures that the vector does not enforce limits
        and thresholds (rate limiting, dopping, etc), but is still tracked in logs and statistics.
      - When C(state) is C(disabled), ensures that the vector does not enforce limits
        and thresholds, but is still tracked in logs and statistics.
      - When C(state) is C(learn-only), ensures that the vector does not "detect" any attacks.
        Only learning and stat collecting is performed.
    type: str
    choices:
      - mitigate
      - detect-only
      - learn-only
      - disabled
    required: True
  partition:
    description:
      - Device partition to manage resources on.
    type: str
    default: Common
extends_documentation_fragment: f5
requirements:
  - BIG-IP >= v13.0.0
author:
  - Tim Rupp (@caphrim007)
s�
- name: Enable DNS AAAA vector mitigation
  bigip_firewall_dos_vector:
    name: aaaa
    state: mitigate
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost
s

allow_advertisement:
  description: The new Allow External Advertisement setting.
  returned: changed
  type: bool
  sample: yes
auto_blacklist:
  description: The new Auto Blacklist setting.
  returned: changed
  type: bool
  sample: no
bad_actor_detection:
  description: The new Bad Actor Detection setting.
  returned: changed
  type: bool
  sample: no
blacklist_detection_seconds:
  description: The new Sustained Attack Detection Time setting.
  returned: changed
  type: int
  sample: 60
blacklist_duration:
  description: The new Category Duration Time setting.
  returned: changed
  type: int
  sample: 14400
attack_ceiling:
  description: The new Attack Ceiling EPS setting.
  returned: changed
  type: str
  sample: infinite
attack_floor:
  description: The new Attack Floor EPS setting.
  returned: changed
  type: str
  sample: infinite
blacklist_category:
  description: The new Category Name setting.
  returned: changed
  type: str
  sample: /Common/cloud_provider_networks
per_source_ip_detection_threshold:
  description: The new Per Source IP Detection Threshold EPS setting.
  returned: changed
  type: str
  sample: 23
per_source_ip_mitigation_threshold:
  description: The new Per Source IP Mitigation Threshold EPS setting.
  returned: changed
  type: str
  sample: infinite
detection_threshold_percent:
  description: The new Detection Threshold Percent setting.
  returned: changed
  type: str
  sample: infinite
detection_threshold_eps:
  description: The new Detection Threshold EPS setting.
  returned: changed
  type: str
  sample: infinite
mitigation_threshold_eps:
  description: The new Mitigation Threshold EPS setting.
  returned: changed
  type: str
  sample: infinite
threshold_mode:
  description: The new Mitigation Threshold EPS setting.
  returned: changed
  type: str
  sample: infinite
simulate_auto_threshold:
  description: The new Simulate Auto Threshold setting.
  returned: changed
  type: bool
  sample: no
state:
  description: The new state of the vector.
  returned: changed
  type: str
  sample: mitigate
(t
AnsibleModule(tenv_fallback(t	iteritems(tF5RestClient(t
F5ModuleError(tAnsibleF5Parameters(tfq_name(tf5_argument_spec(ttransform_name(tflatten_booleansext-hdr-too-largeshop-cnt-lowshost-unreachables	icmp-fragsicmpv4-floodsicmpv6-floods
ip-frag-floods
ip-low-ttls
ip-opt-framessipv6-ext-hdr-framessipv6-frag-floodsopt-present-with-illegal-lentsweepstcp-bad-urgs
tcp-half-openstcp-opt-overruns-tcp-hdrs
tcp-psh-floods
tcp-rst-floods
tcp-syn-floodstcp-syn-oversizestcp-synack-floodstcp-window-sizettidcmpstoo-many-ext-hdrss	udp-floodsunk-tcp-opt-typetacktbyetcanceltinvitetmessagetnotifytoptionstothertpracktpublishtregisters
sip-malformedt	subscribes	uri-limittataaaatanytaxfrtcnames
dns-malformedtixfrtmxtnstptrtqdcounttsoatsrvttxtt
ParameterscB`seZidd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d!6d"d#6d$d%6dd&6dd'6dd(6Zddd)ddd	dd
d*dddddddd+ddd!d#d%d&d'd(d,d-d.d/gZddddd
ddddddddddd+gZddddd
ddddddddddd+gZed0��Zed1��Zed2��Z	ed3��Z
ed4��Zed5��Zed6��Z
ed7��Zed8��Zed9��Zed:��ZRS(;tallow_advertisementtallowAdvertisementtauto_blacklisttautoBlacklistingtbad_actor_detectiontbadActortblacklist_categorytblacklistCategorytblacklist_detection_secondstblacklistDetectionSecondstblacklist_durationtblacklistDurationtattack_ceilingtceilingtattack_floortfloort!per_source_ip_detection_thresholdtperSourceIpDetectionPpst"per_source_ip_mitigation_thresholdtperSourceIpLimitPpstdetection_threshold_percenttrateIncreasetmitigation_threshold_epst	rateLimittdetection_threshold_epst
rateThresholdtsimulate_auto_thresholdtsimulateAutoThresholdtthreshold_modet
thresholdModetsustained_attack_detection_timetscrubbingDetectionSecondstcategory_detection_timetscrubbingDurationtper_dest_ip_detection_thresholdtperDstIpDetectionPpst per_dest_ip_mitigation_thresholdtperDstIpLimitPpstdefaultInternalRateLimittdetectionThresholdPercenttdetectionThresholdPpst
autoThresholdtenforcetstatetdosDeviceVectortdnsQueryVectortnetworkAttackVectortsipAttackVectorcC`st|jd�S(NR.(Rt_values(tself((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR.SscC`st|jd�S(NR0(RR^(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR0WscC`st|jd�S(NRH(RR^(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRH[scC`st|jd�S(NR2(RR^(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR2_scC`s/|jddkr|jdSt|jd�S(NRBtinfinite(NR`(R^tNonetint(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRBcscC`s/|jddkr|jdSt|jd�S(NR@R`(Nsinfinite(R^RaRb(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR@iscC`s/|jddkr|jdSt|jd�S(NRRR`(Nsinfinite(R^RaRb(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRRoscC`s/|jddkr|jdSt|jd�S(NRDR`(Nsinfinite(R^RaRb(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRDuscC`s/|jddkr|jdSt|jd�S(NRFR`(Nsinfinite(R^RaRb(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRF{scC`s/|jddkr|jdSt|jd�S(NR:R`(Nsinfinite(R^RaRb(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR:�scC`s.|jddkrdSt|j|jd�S(NR4(R^RaRt	partition(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR4�s(t__name__t
__module__tapi_maptapi_attributestreturnablest
updatablestpropertyR.R0RHR2RBR@RRRDRFR:R4(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR-�s�

			t
ApiParameterscB`seZRS((RdRe(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRk�stModuleParameterscB`seZRS((RdRe(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRl�stChangescB`seZd�ZRS(cC`sXi}y:x$|jD]}t||�||<qW|j|�}Wntk
rSnX|S(N(Rhtgetattrt_filter_paramst	Exception(R_tresultt
returnable((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyt	to_return�s
(RdReRs(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRm�st
UsableChangescB`sDeZed��Zed��Zed��Zed��ZRS(cC`s2|jddkrdS|jddkr.dSdS(NR.tyestenabledtdisabled(R^Ra(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR.�s
cC`s2|jddkrdS|jddkr.dSdS(NR0RuRvRw(R^Ra(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR0�s
cC`s2|jddkrdS|jddkr.dSdS(NRHRuRvRw(R^Ra(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRH�s
cC`s2|jddkrdS|jddkr.dSdS(NR2RuRvRw(R^Ra(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR2�s
(RdReRjR.R0RHR2(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRt�stReportableChangescB`sDeZed��Zed��Zed��Zed��ZRS(cC`st|jd�S(NR.(RR^(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR.�scC`st|jd�S(NR0(RR^(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR0�scC`st|jd�S(NRH(RR^(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRH�scC`st|jd�S(NR2(RR^(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR2�s(RdReRjR.R0RHR2(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRx�st
DifferencecB`s&eZdd�Zd�Zd�ZRS(cC`s||_||_dS(N(twantthave(R_RzR{((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyt__init__�s	cC`s9yt||�}|SWntk
r4|j|�SXdS(N(RntAttributeErrort_Difference__default(R_tparamRq((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pytcompare�s

cC`sQt|j|�}y&t|j|�}||kr7|SWntk
rL|SXdS(N(RnRzR{R}(R_RRzR{((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyt	__default�s
N(RdReRaR|R�R~(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyRy�s	tBaseManagercB`sPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(cO`s:|jdd�|_t|jj�|_t�|_dS(Ntmodule(tgetRaR�Rtparamstclienttdicttvectors(R_targstkwargs((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR|�scC`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�(RyRzR{R-RiR�R�Rat
isinstancetupdateRttchangestTruetFalse(R_tdiffRitchangedtktchange((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyt_update_changed_options�s		
cC`smt�}|j�}td|jj��}|j�}|j|�|jtd|��|j|�|S(NR�R�(R�tpresentRxR�RsR�t_announce_deprecations(R_RqR�t
reportableR�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pytexec_module	s	

cC`sH|jdg�}x/|D]'}|jjd|dd|d�qWdS(Nt
__warningstmsgtversion(tpopR�t	deprecate(R_Rqtwarningstwarning((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�s


cC`s
|j�S(N(R�(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�scC`s|j�}|rtStS(N(R�R�R�(R_Rq((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyt
should_update scC`sed}xK|D]C}td|�}||j|j<|j|jjkr
|}q
q
W|sat�S|S(NR�(RaRkR�tnameRz(R_R�Rqtxtvector((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pytformat_vectors&s

cC`s�|j|j��|_|j�s(tS|jjr8tS|jj	dkr�|jj
dkrr|jj	dkrrtS|jj|jkr�tSnt
|jj��}|jj|jkr�|j|jjj|�n||j|jj<|j|jjji|jjd6�|jj	dkrI|jj
dkrI|j|jj=qIngt|j�D]\}}|^qY}tdi||6�|_|j�tS(NRws
device-configR�R�(R�tread_current_from_deviceR{R�R�R�t
check_modeR�RzRYtprofileR�R�R�R�t
api_paramsR�R
Rmtupdate_on_device(R_tvtypeR�R�tvRq((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyt_update1s,$'	(
(
RdReR|R�R�R�R�R�R�R�(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s	
						t
ModuleManagercB`s#eZd�Zd�Zd�ZRS(cO`s7|jdd�|_|jdd�|_||_dS(NR�R�(R�RaR�R�R�(R_R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR|gscC`s�|jjddkr(|jd�}n�|jjdtkrP|jd�}n\|jjdtkrx|jd�}n4|jjdtkr�|jd�}ntd��|j�S(	NR�s
device-configtv1R�tv2tv3tv4sUnknown vector type specified.(R�R�tget_managertNETWORK_SECURITY_VECTORStPROTOCOL_DNS_VECTORStPROTOCOL_SIP_VECTORSRR�(R_tmanager((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�ls	cC`sh|dkrt|j�S|dkr2t|j�S|dkrKt|j�S|dkrdt|j�SdS(NR�R�R�R�(tDeviceConfigManagerR�tNetworkSecurityManagertProtocolDnsManagertProtocolSipManager(R_ttype((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�{s


(RdReR|R�R�(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�fs		R�cB`s;eZdZd�Zd�Zd�Zd�Zd�ZRS(s�Manages AFM DoS Device Configuration settings.

    DeviceConfiguration is a special type of profile that is specific to the
    BIG-IP device's management interface; not the data plane interfaces.

    There are many similar vectors that can be managed here. This configuration
    is a super-set of the base DoS profile vector configuration and includes
    several attributes per-vector that are not found in the DoS profile configuration.
    These include,

      * allowUpstreamScrubbing
      * attackedDst
      * autoScrubbing
      * defaultInternalRateLimit
      * detectionThresholdPercent
      * detectionThresholdPps
      * perDstIpDetectionPps
      * perDstIpLimitPps
      * scrubbingDetectionSeconds
      * scrubbingDuration
    cO`sJtt|�j|�td|jj�|_t�|_t	�|_
dS(NR�(tsuperR�R|RlR�R�RzRkR{RtR�(R_R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR|�scC`s9|j|jj�}|jji|d6�|jd�S(NR�RZ(t normalize_names_in_device_configRzR�R�R�(R_R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��scC`s*idd6dd6}|j||�}|S(Nshop-cnt-leq-oneshop-cnt-lowsttl-leq-ones
ip-low-ttl(R�(R_R�tname_mapRq((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s

cC`s�|jj�}dj|jjd|jjdtdd��}|jjj|d|�}y|j�}Wn%t	k
r�}t
t|���nXd|kr�|ddkr�d	|kr�t
|d	��q�t
|j��ndS(
Ns6https://{0}:{1}/mgmt/tm/security/dos/device-config/{2}tservertserver_porttCommonsdos-device-configtjsontcodei�R(
R�R�tformatR�tproviderRtapitpatchR�t
ValueErrorRtstrtcontent(R_R�turitresptresponsetex((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s

cC`s�dj|jjd|jjdtdd��}|jjj|�}y|j�}Wn%tk
r~}tt	|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��n|jd	g�}|S(
Ns6https://{0}:{1}/mgmt/tm/security/dos/device-config/{2}R�R�R�sdos-device-configR�i�RRZ(R�R�R�RR�R�R�R�RR�R�(R_R�R�R�R�Rq((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s

(RdRet__doc__R|R�R�R�R�(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s				R�cB`s2eZdZd�Zd�Zd�Zd�ZRS(s�Manages AFM DoS Profile Network Security settings.

    Network Security settings are a sub-collection attached to each profile.

    There are many similar vectors that can be managed here. This configuration
    is a sub-set of the device-config DoS vector configuration and excludes
    several attributes per-vector that are found in the device-config configuration.
    These include,

      * rateIncrease
      * rateLimit
      * rateThreshold
    cO`sJtt|�j|�td|jj�|_t�|_t	�|_
dS(NR�(R�R�R|RlR�R�RzRkR{RtR�(R_R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR|�scC`s
|jd�S(NR\(R�(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��scC`s�|jj�}dj|jjd|jjdt|jj|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/security/dos/profile/{2}/dos-network/{3}R�R�R�R�i�R(R�R�R�R�R�RRzRcR�R�R�R�R�RR�R�(R_R�R�R�R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s

cC`s�dj|jjd|jjdt|jj|jj�|jj�}|jjj|�}y|j	�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��n|jdg�S(Ns@https://{0}:{1}/mgmt/tm/security/dos/profile/{2}/dos-network/{3}R�R�R�i�RR\(R�R�R�RRzRcR�R�R�R�R�RR�R�(R_R�R�R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�
s

(RdReR�R|R�R�R�(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s

			R�cB`s2eZdZd�Zd�Zd�Zd�ZRS(s�Manages AFM DoS Profile Protocol DNS settings.

    Protocol DNS settings are a sub-collection attached to each profile.

    There are many similar vectors that can be managed here. This configuration
    is a sub-set of the device-config DoS vector configuration and excludes
    several attributes per-vector that are found in the device-config configuration.
    These include,

      * rateIncrease
      * rateLimit
      * rateThreshold
    cO`sJtt|�j|�td|jj�|_t�|_t	�|_
dS(NR�(R�R�R|RlR�R�RzRkR{RtR�(R_R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR|0scC`s
|jd�S(NR[(R�(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�6scC`s�|jj�}dj|jjd|jjdt|jj|jj�|jj�}|jj	j
|d|�}y|j�}Wn%tk
r�}t
t|���nXd|kr�|ddkr�d|kr�t
|d��q�t
|j��ndS(NsAhttps://{0}:{1}/mgmt/tm/security/dos/profile/{2}/protocol-dns/{3}R�R�R�R�i�R(R�R�R�R�R�RRzRcR�R�R�R�R�RR�R�(R_R�R�R�R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�9s

cC`s�dj|jjd|jjdt|jj|jj�|jj�}|jjj|�}y|j	�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��n|jdg�S(NsAhttps://{0}:{1}/mgmt/tm/security/dos/profile/{2}/protocol-dns/{3}R�R�R�i�RR[(R�R�R�RRzRcR�R�R�R�R�RR�R�(R_R�R�R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�Ms

(RdReR�R|R�R�R�(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�"s

			R�cB`s2eZdZd�Zd�Zd�Zd�ZRS(s�Manages AFM DoS Profile Protocol SIP settings.

    Protocol SIP settings are a sub-collection attached to each profile.

    There are many similar vectors that can be managed here. This configuration
    is a sub-set of the device-config DoS vector configuration and excludes
    several attributes per-vector that are found in the device-config configuration.
    These include,

      * rateIncrease
      * rateLimit
      * rateThreshold
    cO`sJtt|�j|�td|jj�|_t�|_t	�|_
dS(NR�(R�R�R|RlR�R�RzRkR{RtR�(R_R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR|pscC`s
|jd�S(NR](R�(R_((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�vscC`s�|jj�}dj|jjd|jjdt|jj|jj�|jj�}|jj	j
|d|�}y|j�}Wn%tk
r�}t
t|���nXd|kr�|ddkr�d|kr�t
|d��q�t
|j��ndS(NsAhttps://{0}:{1}/mgmt/tm/security/dos/profile/{2}/protocol-sip/{3}R�R�R�R�i�R(R�R�R�R�R�RRzRcR�R�R�R�R�RR�R�(R_R�R�R�R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�ys

cC`s�dj|jjd|jjdt|jj|jj�|jj�}|jjj|�}y|j	�}Wn%t
k
r�}tt|���nXd|kr�|ddkr�d|kr�t|d��q�t|j
��n|jdg�S(NsAhttps://{0}:{1}/mgmt/tm/security/dos/profile/{2}/protocol-sip/{3}R�R�R�i�RR](R�R�R�RRzRcR�R�R�R�R�RR�R�(R_R�R�R�R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR��s

(RdReR�R|R�R�R�(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR�bs

			tArgumentSpeccB`seZd�ZRS(c<C`s
t|_tdtdtddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d&d3d4d5d6d7d8g6�d9tdt�d:td;d<�d=td;d<�d>td;d<�d?td;d<�d@td;dA�dBtd;dA�dCt�dDt�dEt�dFt�dGtdHdIg�dJtdHdKg�dLtdHdMg�dNtddOdPdQg�dRtddSdTdUdVg�dWtdXdYdZtd[gf��}i|_|jjt�|jj|�dS(\NR�trequiredtchoicessext-hdr-too-largeshop-cnt-lowshost-unreachables	icmp-fragsicmpv4-floodsicmpv6-floods
ip-frag-floods
ip-low-ttls
ip-opt-framessipv6-frag-floodsopt-present-with-illegal-lenRstcp-bad-urgs
tcp-half-openstcp-opt-overruns-tcp-hdrs
tcp-psh-floods
tcp-rst-floods
tcp-syn-floodstcp-syn-oversizestcp-synack-floodstcp-window-sizeRstoo-many-ext-hdrss	udp-floodsunk-tcp-opt-typeR R!R"R#R$s
dns-malformedR%R&R'RR(R)R*R+R,RRRRRRRRRRs
sip-malformedRs	uri-limitR�R.R�tboolR0RHR2R6RbR8R:R<R>R@RBtaliasest
rate_increaseRFtrate_thresholdRDt
rate_limitRJtmanualsstress-based-mitigationsfully-automaticRYtmitigatesdetect-onlys
learn-onlyRwRctdefaultR�tfallbacktF5_PARTITION(R�tsupports_check_modeR�R	t
argument_specR�R(R_R�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyR|�s�						(RdReR|(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.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_jsonRt	fail_jsonR�(tspecR�tmmtresultsR�((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pytmain
s		t__main__N(/t
__future__RRRR�t
__metaclass__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNtansible.module_utils.basicRR	tansible.module_utils.sixR
t%library.module_utils.network.f5.bigipRt&library.module_utils.network.f5.commonRR
RRRRtImportErrort%ansible.module_utils.network.f5.bigipt&ansible.module_utils.network.f5.commonR�R�R�R-RkRlRmRtRxtobjectRyR�R�R�R�R�R�R�R�Rd(((sX/usr/lib/python2.7/site-packages/ansible/modules/network/f5/bigip_firewall_dos_vector.pyt<module>s�


�S
			�"z \@@@h	

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