lix_fortinet.fortios.fortios_firewall_vip (102.2.120) — module

Configure virtual IP for IPv4 in Fortinet's FortiOS and FortiGate.

| "added in version" 2.0.0 of lix_fortinet.fortios"

Authors: Link Zheng (@chillancezen), Jie Xue (@JieX19), Hongbin Lu (@fgtdev-hblu), Frank Shen (@frankshen01), Miguel Angel Munoz (@mamunozgonzalez), Nicolas Thomas (@thomnico)

preview | supported by community

Install collection

Install with ansible-galaxy collection install lix_fortinet.fortios:==102.2.120


Add to requirements.yml

  collections:
    - name: lix_fortinet.fortios
      version: 102.2.120

Description

This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify firewall feature and vip category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.0


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- hosts: fortigates
  collections:
    - fortinet.fortios
  connection: httpapi
  vars:
   vdom: "root"
   ansible_httpapi_use_ssl: yes
   ansible_httpapi_validate_certs: no
   ansible_httpapi_port: 443
  tasks:
  - name: Configure virtual IP for IPv4.
    fortios_firewall_vip:
      vdom:  "{{ vdom }}"
      state: "present"
      access_token: "<your_own_value>"
      firewall_vip:
        add_nat46_route: "disable"
        arp_reply: "disable"
        color: "0"
        comment: "Comment."
        dns_mapping_ttl: "0"
        extaddr:
         -
            name: "default_name_9 (source firewall.address.name firewall.addrgrp.name)"
        extintf: "<your_own_value> (source system.interface.name)"
        extip: "<your_own_value>"
        extport: "<your_own_value>"
        gratuitous_arp_interval: "0"
        http_cookie_age: "60"
        http_cookie_domain: "<your_own_value>"
        http_cookie_domain_from_host: "disable"
        http_cookie_generation: "0"
        http_cookie_path: "<your_own_value>"
        http_cookie_share: "disable"
        http_ip_header: "enable"
        http_ip_header_name: "<your_own_value>"
        http_multiplex: "enable"
        http_redirect: "enable"
        https_cookie_secure: "disable"
        id:  "25"
        ipv6_mappedip: "<your_own_value>"
        ipv6_mappedport: "<your_own_value>"
        ldb_method: "static"
        mapped_addr: "<your_own_value> (source firewall.address.name)"
        mappedip:
         -
            range: "<your_own_value>"
        mappedport: "<your_own_value>"
        max_embryonic_connections: "1000"
        monitor:
         -
            name: "default_name_35 (source firewall.ldb-monitor.name)"
        name: "default_name_36"
        nat_source_vip: "disable"
        nat44: "disable"
        nat46: "disable"
        outlook_web_access: "disable"
        persistence: "none"
        portforward: "disable"
        portmapping_type: "1-to-1"
        protocol: "tcp"
        realservers:
         -
            address: "<your_own_value> (source firewall.address.name)"
            client_ip: "<your_own_value>"
            healthcheck: "disable"
            holddown_interval: "300"
            http_host: "myhostname"
            id:  "51"
            ip: "<your_own_value>"
            max_connections: "0"
            monitor:
             -
                name: "default_name_55 (source firewall.ldb-monitor.name)"
            port: "0"
            status: "active"
            type: "ip"
            weight: "1"
        server_type: "http"
        service:
         -
            name: "default_name_62 (source firewall.service.custom.name firewall.service.group.name)"
        src_filter:
         -
            range: "<your_own_value>"
        srcintf_filter:
         -
            interface_name: "<your_own_value> (source system.interface.name)"
        ssl_accept_ffdhe_groups: "enable"
        ssl_algorithm: "high"
        ssl_certificate: "<your_own_value> (source vpn.certificate.local.name)"
        ssl_cipher_suites:
         -
            cipher: "TLS-AES-128-GCM-SHA256"
            priority: "0"
            versions: "ssl-3.0"
        ssl_client_fallback: "disable"
        ssl_client_rekey_count: "0"
        ssl_client_renegotiation: "allow"
        ssl_client_session_state_max: "1000"
        ssl_client_session_state_timeout: "30"
        ssl_client_session_state_type: "disable"
        ssl_dh_bits: "768"
        ssl_hpkp: "disable"
        ssl_hpkp_age: "5184000"
        ssl_hpkp_backup: "<your_own_value> (source vpn.certificate.local.name vpn.certificate.ca.name)"
        ssl_hpkp_include_subdomains: "disable"
        ssl_hpkp_primary: "<your_own_value> (source vpn.certificate.local.name vpn.certificate.ca.name)"
        ssl_hpkp_report_uri: "<your_own_value>"
        ssl_hsts: "disable"
        ssl_hsts_age: "5184000"
        ssl_hsts_include_subdomains: "disable"
        ssl_http_location_conversion: "enable"
        ssl_http_match_host: "enable"
        ssl_max_version: "ssl-3.0"
        ssl_min_version: "ssl-3.0"
        ssl_mode: "half"
        ssl_pfs: "require"
        ssl_send_empty_frags: "enable"
        ssl_server_algorithm: "high"
        ssl_server_cipher_suites:
         -
            cipher: "TLS-AES-128-GCM-SHA256"
            priority: "0"
            versions: "ssl-3.0"
        ssl_server_max_version: "ssl-3.0"
        ssl_server_min_version: "ssl-3.0"
        ssl_server_session_state_max: "100"
        ssl_server_session_state_timeout: "60"
        ssl_server_session_state_type: "disable"
        status: "disable"
        type: "static-nat"
        uuid: "<your_own_value>"
        weblogic_server: "disable"
        websphere_server: "disable"

Inputs

    
vdom:
    default: root
    description:
    - Virtual domain, among those defined previously. A vdom is a virtual instance of
      the FortiGate that can be configured and used as a different unit.
    type: str

state:
    choices:
    - present
    - absent
    description:
    - Indicates whether to create or remove the object.
    required: true
    type: str

enable_log:
    default: false
    description:
    - Enable/Disable logging for task.
    required: false
    type: bool

member_path:
    description:
    - Member attribute path to operate on.
    - Delimited by a slash character if there are more than one attribute.
    - Parameter marked with member_path is legitimate for doing member operation.
    type: str

access_token:
    description:
    - Token-based authentication. Generated from GUI of Fortigate.
    required: false
    type: str

firewall_vip:
    default: null
    description:
    - Configure virtual IP for IPv4.
    suboptions:
      add_nat46_route:
        choices:
        - disable
        - enable
        description:
        - Enable/disable adding NAT46 route.
        type: str
      arp_reply:
        choices:
        - disable
        - enable
        description:
        - Enable to respond to ARP requests for this virtual IP address. Enabled by default.
        type: str
      color:
        description:
        - Color of icon on the GUI.
        type: int
      comment:
        description:
        - Comment.
        type: str
      dns_mapping_ttl:
        description:
        - DNS mapping TTL (Set to zero to use TTL in DNS response).
        type: int
      extaddr:
        description:
        - External FQDN address name.
        elements: dict
        suboptions:
          name:
            description:
            - Address name. Source firewall.address.name firewall.addrgrp.name.
            type: str
        type: list
      extintf:
        description:
        - Interface connected to the source network that receives the packets that will
          be forwarded to the destination network. Source system .interface.name.
        type: str
      extip:
        description:
        - IP address or address range on the external interface that you want to map to
          an address or address range on the destination network.
        type: str
      extport:
        description:
        - Incoming port number range that you want to map to a port number range on the
          destination network.
        type: str
      gratuitous_arp_interval:
        description:
        - Enable to have the VIP send gratuitous ARPs. 0=disabled. Set from 5 up to 8640000
          seconds to enable.
        type: int
      http_cookie_age:
        description:
        - Time in minutes that client web browsers should keep a cookie. Default is 60
          minutes. 0 = no time limit.
        type: int
      http_cookie_domain:
        description:
        - Domain that HTTP cookie persistence should apply to.
        type: str
      http_cookie_domain_from_host:
        choices:
        - disable
        - enable
        description:
        - Enable/disable use of HTTP cookie domain from host field in HTTP.
        type: str
      http_cookie_generation:
        description:
        - Generation of HTTP cookie to be accepted. Changing invalidates all existing
          cookies.
        type: int
      http_cookie_path:
        description:
        - Limit HTTP cookie persistence to the specified path.
        type: str
      http_cookie_share:
        choices:
        - disable
        - same-ip
        description:
        - Control sharing of cookies across virtual servers. Use of same-ip means a cookie
          from one virtual server can be used by another. Disable stops cookie sharing.
        type: str
      http_ip_header:
        choices:
        - enable
        - disable
        description:
        - For HTTP multiplexing, enable to add the original client IP address in the XForwarded-For
          HTTP header.
        type: str
      http_ip_header_name:
        description:
        - For HTTP multiplexing, enter a custom HTTPS header name. The original client
          IP address is added to this header. If empty, X-Forwarded-For is used.
        type: str
      http_multiplex:
        choices:
        - enable
        - disable
        description:
        - Enable/disable HTTP multiplexing.
        type: str
      http_redirect:
        choices:
        - enable
        - disable
        description:
        - Enable/disable redirection of HTTP to HTTPS.
        type: str
      https_cookie_secure:
        choices:
        - disable
        - enable
        description:
        - Enable/disable verification that inserted HTTPS cookies are secure.
        type: str
      id:
        description:
        - Custom defined ID.
        type: int
      ipv6_mappedip:
        description:
        - Range of mapped IPv6 addresses. Specify the start IPv6 address followed by a
          space and the end IPv6 address.
        type: str
      ipv6_mappedport:
        description:
        - IPv6 port number range on the destination network to which the external port
          number range is mapped.
        type: str
      ldb_method:
        choices:
        - static
        - round-robin
        - weighted
        - least-session
        - least-rtt
        - first-alive
        - http-host
        description:
        - Method used to distribute sessions to real servers.
        type: str
      mapped_addr:
        description:
        - Mapped FQDN address name. Source firewall.address.name.
        type: str
      mappedip:
        description:
        - IP address or address range on the destination network to which the external
          IP address is mapped.
        elements: dict
        suboptions:
          range:
            description:
            - Mapped IP range.
            type: str
        type: list
      mappedport:
        description:
        - Port number range on the destination network to which the external port number
          range is mapped.
        type: str
      max_embryonic_connections:
        description:
        - Maximum number of incomplete connections.
        type: int
      monitor:
        description:
        - Name of the health check monitor to use when polling to determine a virtual
          server"s connectivity status.
        elements: dict
        suboptions:
          name:
            description:
            - Health monitor name. Source firewall.ldb-monitor.name.
            type: str
        type: list
      name:
        description:
        - Virtual IP name.
        required: true
        type: str
      nat44:
        choices:
        - disable
        - enable
        description:
        - Enable/disable NAT44.
        type: str
      nat46:
        choices:
        - disable
        - enable
        description:
        - Enable/disable NAT46.
        type: str
      nat_source_vip:
        choices:
        - disable
        - enable
        description:
        - Enable/disable forcing the source NAT mapped IP to the external IP for all traffic.
        type: str
      outlook_web_access:
        choices:
        - disable
        - enable
        description:
        - Enable to add the Front-End-Https header for Microsoft Outlook Web Access.
        type: str
      persistence:
        choices:
        - none
        - http-cookie
        - ssl-session-id
        description:
        - Configure how to make sure that clients connect to the same server every time
          they make a request that is part of the same session.
        type: str
      portforward:
        choices:
        - disable
        - enable
        description:
        - Enable/disable port forwarding.
        type: str
      portmapping_type:
        choices:
        - 1-to-1
        - m-to-n
        description:
        - Port mapping type.
        type: str
      protocol:
        choices:
        - tcp
        - udp
        - sctp
        - icmp
        description:
        - Protocol to use when forwarding packets.
        type: str
      realservers:
        description:
        - Select the real servers that this server load balancing VIP will distribute
          traffic to.
        elements: dict
        suboptions:
          address:
            description:
            - Dynamic address of the real server. Source firewall.address.name.
            type: str
          client_ip:
            description:
            - Only clients in this IP range can connect to this real server.
            type: str
          healthcheck:
            choices:
            - disable
            - enable
            - vip
            description:
            - Enable to check the responsiveness of the real server before forwarding
              traffic.
            type: str
          holddown_interval:
            description:
            - Time in seconds that the health check monitor continues to monitor and unresponsive
              server that should be active.
            type: int
          http_host:
            description:
            - HTTP server domain name in HTTP header.
            type: str
          id:
            description:
            - Real server ID.
            type: int
          ip:
            description:
            - IP address of the real server.
            type: str
          max_connections:
            description:
            - Max number of active connections that can be directed to the real server.
              When reached, sessions are sent to other real servers.
            type: int
          monitor:
            description:
            - Name of the health check monitor to use when polling to determine a virtual
              server"s connectivity status. Source firewall .ldb-monitor.name.
            elements: dict
            suboptions:
              name:
                description:
                - Health monitor name. Source firewall.ldb-monitor.name.
                type: str
            type: list
          port:
            description:
            - Port for communicating with the real server. Required if port forwarding
              is enabled.
            type: int
          status:
            choices:
            - active
            - standby
            - disable
            description:
            - Set the status of the real server to active so that it can accept traffic,
              or on standby or disabled so no traffic is sent.
            type: str
          type:
            choices:
            - ip
            - address
            description:
            - Type of address.
            type: str
          weight:
            description:
            - Weight of the real server. If weighted load balancing is enabled, the server
              with the highest weight gets more connections.
            type: int
        type: list
      server_type:
        choices:
        - http
        - https
        - imaps
        - pop3s
        - smtps
        - ssl
        - tcp
        - udp
        - ip
        - ssh
        description:
        - Protocol to be load balanced by the virtual server (also called the server load
          balance virtual IP).
        type: str
      service:
        description:
        - Service name.
        elements: dict
        suboptions:
          name:
            description:
            - Service name. Source firewall.service.custom.name firewall.service.group.name.
            type: str
        type: list
      src_filter:
        description:
        - Source address filter. Each address must be either an IP/subnet (x.x.x.x/n)
          or a range (x.x.x.x-y.y.y.y). Separate addresses with spaces.
        elements: dict
        suboptions:
          range:
            description:
            - Source-filter range.
            type: str
        type: list
      srcintf_filter:
        description:
        - Interfaces to which the VIP applies. Separate the names with spaces.
        elements: dict
        suboptions:
          interface_name:
            description:
            - Interface name. Source system.interface.name.
            type: str
        type: list
      ssl_accept_ffdhe_groups:
        choices:
        - enable
        - disable
        description:
        - Enable/disable FFDHE cipher suite for SSL key exchange.
        type: str
      ssl_algorithm:
        choices:
        - high
        - medium
        - low
        - custom
        description:
        - Permitted encryption algorithms for SSL sessions according to encryption strength.
        type: str
      ssl_certificate:
        description:
        - The name of the certificate to use for SSL handshake. Source vpn.certificate.local.name.
        type: str
      ssl_cipher_suites:
        description:
        - SSL/TLS cipher suites acceptable from a client, ordered by priority.
        elements: dict
        suboptions:
          cipher:
            choices:
            - TLS-AES-128-GCM-SHA256
            - TLS-AES-256-GCM-SHA384
            - TLS-CHACHA20-POLY1305-SHA256
            - TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256
            - TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256
            - TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256
            - TLS-DHE-RSA-WITH-AES-128-CBC-SHA
            - TLS-DHE-RSA-WITH-AES-256-CBC-SHA
            - TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
            - TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
            - TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
            - TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
            - TLS-DHE-DSS-WITH-AES-128-CBC-SHA
            - TLS-DHE-DSS-WITH-AES-256-CBC-SHA
            - TLS-DHE-DSS-WITH-AES-128-CBC-SHA256
            - TLS-DHE-DSS-WITH-AES-128-GCM-SHA256
            - TLS-DHE-DSS-WITH-AES-256-CBC-SHA256
            - TLS-DHE-DSS-WITH-AES-256-GCM-SHA384
            - TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA
            - TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
            - TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256
            - TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA
            - TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384
            - TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
            - TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA
            - TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256
            - TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
            - TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA
            - TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384
            - TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384
            - TLS-RSA-WITH-AES-128-CBC-SHA
            - TLS-RSA-WITH-AES-256-CBC-SHA
            - TLS-RSA-WITH-AES-128-CBC-SHA256
            - TLS-RSA-WITH-AES-128-GCM-SHA256
            - TLS-RSA-WITH-AES-256-CBC-SHA256
            - TLS-RSA-WITH-AES-256-GCM-SHA384
            - TLS-RSA-WITH-CAMELLIA-128-CBC-SHA
            - TLS-RSA-WITH-CAMELLIA-256-CBC-SHA
            - TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256
            - TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256
            - TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA
            - TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
            - TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA
            - TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA
            - TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA
            - TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256
            - TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA256
            - TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256
            - TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA256
            - TLS-DHE-RSA-WITH-SEED-CBC-SHA
            - TLS-DHE-DSS-WITH-SEED-CBC-SHA
            - TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256
            - TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384
            - TLS-DHE-DSS-WITH-ARIA-128-CBC-SHA256
            - TLS-DHE-DSS-WITH-ARIA-256-CBC-SHA384
            - TLS-RSA-WITH-SEED-CBC-SHA
            - TLS-RSA-WITH-ARIA-128-CBC-SHA256
            - TLS-RSA-WITH-ARIA-256-CBC-SHA384
            - TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256
            - TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384
            - TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256
            - TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384
            - TLS-ECDHE-RSA-WITH-RC4-128-SHA
            - TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA
            - TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA
            - TLS-RSA-WITH-3DES-EDE-CBC-SHA
            - TLS-RSA-WITH-RC4-128-MD5
            - TLS-RSA-WITH-RC4-128-SHA
            - TLS-DHE-RSA-WITH-DES-CBC-SHA
            - TLS-DHE-DSS-WITH-DES-CBC-SHA
            - TLS-RSA-WITH-DES-CBC-SHA
            description:
            - Cipher suite name.
            type: str
          priority:
            description:
            - SSL/TLS cipher suites priority.
            type: int
          versions:
            choices:
            - ssl-3.0
            - tls-1.0
            - tls-1.1
            - tls-1.2
            - tls-1.3
            description:
            - SSL/TLS versions that the cipher suite can be used with.
            elements: str
            type: list
        type: list
      ssl_client_fallback:
        choices:
        - disable
        - enable
        description:
        - Enable/disable support for preventing Downgrade Attacks on client connections
          (RFC 7507).
        type: str
      ssl_client_rekey_count:
        description:
        - Maximum length of data in MB before triggering a client rekey (0 = disable).
        type: int
      ssl_client_renegotiation:
        choices:
        - allow
        - deny
        - secure
        description:
        - Allow, deny, or require secure renegotiation of client sessions to comply with
          RFC 5746.
        type: str
      ssl_client_session_state_max:
        description:
        - Maximum number of client to FortiGate SSL session states to keep.
        type: int
      ssl_client_session_state_timeout:
        description:
        - Number of minutes to keep client to FortiGate SSL session state.
        type: int
      ssl_client_session_state_type:
        choices:
        - disable
        - time
        - count
        - both
        description:
        - How to expire SSL sessions for the segment of the SSL connection between the
          client and the FortiGate.
        type: str
      ssl_dh_bits:
        choices:
        - '768'
        - '1024'
        - '1536'
        - '2048'
        - '3072'
        - '4096'
        description:
        - Number of bits to use in the Diffie-Hellman exchange for RSA encryption of SSL
          sessions.
        type: str
      ssl_hpkp:
        choices:
        - disable
        - enable
        - report-only
        description:
        - Enable/disable including HPKP header in response.
        type: str
      ssl_hpkp_age:
        description:
        - Number of seconds the client should honor the HPKP setting.
        type: int
      ssl_hpkp_backup:
        description:
        - Certificate to generate backup HPKP pin from. Source vpn.certificate.local.name
          vpn.certificate.ca.name.
        type: str
      ssl_hpkp_include_subdomains:
        choices:
        - disable
        - enable
        description:
        - Indicate that HPKP header applies to all subdomains.
        type: str
      ssl_hpkp_primary:
        description:
        - Certificate to generate primary HPKP pin from. Source vpn.certificate.local.name
          vpn.certificate.ca.name.
        type: str
      ssl_hpkp_report_uri:
        description:
        - URL to report HPKP violations to.
        type: str
      ssl_hsts:
        choices:
        - disable
        - enable
        description:
        - Enable/disable including HSTS header in response.
        type: str
      ssl_hsts_age:
        description:
        - Number of seconds the client should honor the HSTS setting.
        type: int
      ssl_hsts_include_subdomains:
        choices:
        - disable
        - enable
        description:
        - Indicate that HSTS header applies to all subdomains.
        type: str
      ssl_http_location_conversion:
        choices:
        - enable
        - disable
        description:
        - Enable to replace HTTP with HTTPS in the reply"s Location HTTP header field.
        type: str
      ssl_http_match_host:
        choices:
        - enable
        - disable
        description:
        - Enable/disable HTTP host matching for location conversion.
        type: str
      ssl_max_version:
        choices:
        - ssl-3.0
        - tls-1.0
        - tls-1.1
        - tls-1.2
        - tls-1.3
        description:
        - Highest SSL/TLS version acceptable from a client.
        type: str
      ssl_min_version:
        choices:
        - ssl-3.0
        - tls-1.0
        - tls-1.1
        - tls-1.2
        - tls-1.3
        description:
        - Lowest SSL/TLS version acceptable from a client.
        type: str
      ssl_mode:
        choices:
        - half
        - full
        description:
        - Apply SSL offloading between the client and the FortiGate (half) or from the
          client to the FortiGate and from the FortiGate to the server (full).
        type: str
      ssl_pfs:
        choices:
        - require
        - deny
        - allow
        description:
        - Select the cipher suites that can be used for SSL perfect forward secrecy (PFS).
          Applies to both client and server sessions.
        type: str
      ssl_send_empty_frags:
        choices:
        - enable
        - disable
        description:
        - Enable/disable sending empty fragments to avoid CBC IV attacks (SSL 3.0 & TLS
          1.0 only). May need to be disabled for compatibility with older systems.
        type: str
      ssl_server_algorithm:
        choices:
        - high
        - medium
        - low
        - custom
        - client
        description:
        - Permitted encryption algorithms for the server side of SSL full mode sessions
          according to encryption strength.
        type: str
      ssl_server_cipher_suites:
        description:
        - SSL/TLS cipher suites to offer to a server, ordered by priority.
        elements: dict
        suboptions:
          cipher:
            choices:
            - TLS-AES-128-GCM-SHA256
            - TLS-AES-256-GCM-SHA384
            - TLS-CHACHA20-POLY1305-SHA256
            - TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256
            - TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256
            - TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256
            - TLS-DHE-RSA-WITH-AES-128-CBC-SHA
            - TLS-DHE-RSA-WITH-AES-256-CBC-SHA
            - TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
            - TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
            - TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
            - TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
            - TLS-DHE-DSS-WITH-AES-128-CBC-SHA
            - TLS-DHE-DSS-WITH-AES-256-CBC-SHA
            - TLS-DHE-DSS-WITH-AES-128-CBC-SHA256
            - TLS-DHE-DSS-WITH-AES-128-GCM-SHA256
            - TLS-DHE-DSS-WITH-AES-256-CBC-SHA256
            - TLS-DHE-DSS-WITH-AES-256-GCM-SHA384
            - TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA
            - TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256
            - TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256
            - TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA
            - TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384
            - TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384
            - TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA
            - TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256
            - TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
            - TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA
            - TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384
            - TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384
            - TLS-RSA-WITH-AES-128-CBC-SHA
            - TLS-RSA-WITH-AES-256-CBC-SHA
            - TLS-RSA-WITH-AES-128-CBC-SHA256
            - TLS-RSA-WITH-AES-128-GCM-SHA256
            - TLS-RSA-WITH-AES-256-CBC-SHA256
            - TLS-RSA-WITH-AES-256-GCM-SHA384
            - TLS-RSA-WITH-CAMELLIA-128-CBC-SHA
            - TLS-RSA-WITH-CAMELLIA-256-CBC-SHA
            - TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256
            - TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256
            - TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA
            - TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
            - TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA
            - TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA
            - TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA
            - TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256
            - TLS-DHE-DSS-WITH-CAMELLIA-128-CBC-SHA256
            - TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256
            - TLS-DHE-DSS-WITH-CAMELLIA-256-CBC-SHA256
            - TLS-DHE-RSA-WITH-SEED-CBC-SHA
            - TLS-DHE-DSS-WITH-SEED-CBC-SHA
            - TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256
            - TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384
            - TLS-DHE-DSS-WITH-ARIA-128-CBC-SHA256
            - TLS-DHE-DSS-WITH-ARIA-256-CBC-SHA384
            - TLS-RSA-WITH-SEED-CBC-SHA
            - TLS-RSA-WITH-ARIA-128-CBC-SHA256
            - TLS-RSA-WITH-ARIA-256-CBC-SHA384
            - TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256
            - TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384
            - TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256
            - TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384
            - TLS-ECDHE-RSA-WITH-RC4-128-SHA
            - TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA
            - TLS-DHE-DSS-WITH-3DES-EDE-CBC-SHA
            - TLS-RSA-WITH-3DES-EDE-CBC-SHA
            - TLS-RSA-WITH-RC4-128-MD5
            - TLS-RSA-WITH-RC4-128-SHA
            - TLS-DHE-RSA-WITH-DES-CBC-SHA
            - TLS-DHE-DSS-WITH-DES-CBC-SHA
            - TLS-RSA-WITH-DES-CBC-SHA
            description:
            - Cipher suite name.
            type: str
          priority:
            description:
            - SSL/TLS cipher suites priority.
            type: int
          versions:
            choices:
            - ssl-3.0
            - tls-1.0
            - tls-1.1
            - tls-1.2
            - tls-1.3
            description:
            - SSL/TLS versions that the cipher suite can be used with.
            elements: str
            type: list
        type: list
      ssl_server_max_version:
        choices:
        - ssl-3.0
        - tls-1.0
        - tls-1.1
        - tls-1.2
        - tls-1.3
        - client
        description:
        - Highest SSL/TLS version acceptable from a server. Use the client setting by
          default.
        type: str
      ssl_server_min_version:
        choices:
        - ssl-3.0
        - tls-1.0
        - tls-1.1
        - tls-1.2
        - tls-1.3
        - client
        description:
        - Lowest SSL/TLS version acceptable from a server. Use the client setting by default.
        type: str
      ssl_server_session_state_max:
        description:
        - Maximum number of FortiGate to Server SSL session states to keep.
        type: int
      ssl_server_session_state_timeout:
        description:
        - Number of minutes to keep FortiGate to Server SSL session state.
        type: int
      ssl_server_session_state_type:
        choices:
        - disable
        - time
        - count
        - both
        description:
        - How to expire SSL sessions for the segment of the SSL connection between the
          server and the FortiGate.
        type: str
      status:
        choices:
        - disable
        - enable
        description:
        - Enable/disable VIP.
        type: str
      type:
        choices:
        - static-nat
        - load-balance
        - server-load-balance
        - dns-translation
        - fqdn
        - access-proxy
        description:
        - Configure a static NAT, load balance, server load balance, access proxy, DNS
          translation, or FQDN VIP.
        type: str
      uuid:
        description:
        - Universally Unique Identifier (UUID; automatically assigned but can be manually
          reset).
        type: str
      weblogic_server:
        choices:
        - disable
        - enable
        description:
        - Enable to add an HTTP header to indicate SSL offloading for a WebLogic server.
        type: str
      websphere_server:
        choices:
        - disable
        - enable
        description:
        - Enable to add an HTTP header to indicate SSL offloading for a WebSphere server.
        type: str
    type: dict

member_state:
    choices:
    - present
    - absent
    description:
    - Add or delete a member under specified attribute path.
    - When member_state is specified, the state option is ignored.
    type: str

Outputs

build:
  description: Build number of the fortigate image
  returned: always
  sample: '1547'
  type: str
http_method:
  description: Last method used to provision the content into FortiGate
  returned: always
  sample: PUT
  type: str
http_status:
  description: Last result given by FortiGate on last operation applied
  returned: always
  sample: '200'
  type: str
mkey:
  description: Master key (id) used in the last call to FortiGate
  returned: success
  sample: id
  type: str
name:
  description: Name of the table used to fulfill the request
  returned: always
  sample: urlfilter
  type: str
path:
  description: Path of the table used to fulfill the request
  returned: always
  sample: webfilter
  type: str
revision:
  description: Internal revision number
  returned: always
  sample: 17.0.2.10658
  type: str
serial:
  description: Serial number of the unit
  returned: always
  sample: FGVMEVYYQT3AB5352
  type: str
status:
  description: Indication of the operation's result
  returned: always
  sample: success
  type: str
vdom:
  description: Virtual domain used
  returned: always
  sample: root
  type: str
version:
  description: Version of the FortiGate
  returned: always
  sample: v5.6.3
  type: str