# fortios_wanopt_content_delivery_network_rule – Configure WAN optimization content delivery network rules in Fortinet’s FortiOS and FortiGate

New in version 2.9.

- Synopsis

- Requirements

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

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

## Requirements

The below requirements are needed on the host that executes this module.

- fortiosapi>=0.9.8

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
host string |  | FortiOS or FortiGate IP address.

https
boolean

Choices:
- no
- yes ←

Indicates if the requests towards FortiGate must use HTTPS protocol.

password string | Default: "" | FortiOS or FortiGate password.

ssl_verify
boolean

Choices:
- no
- yes ←

Ensures FortiGate certificate must be verified by a proper CA.

state
string / required

Choices:
- present
- absent

Indicates whether to create or remove the object.

username string |  | FortiOS or FortiGate username.
vdom string | Default: "root" | 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.
wanopt_content_delivery_network_rule dictionary | Default: null | Configure WAN optimization content delivery network rules.

category
string

Choices:
- vcache
- youtube

Content delivery network rule category.

| comment string |  | Comment about this CDN-rule.
| host_domain_name_suffix list |  | Suffix portion of the fully qualified domain name (eg. fortinet.com in "www.fortinet.com").
|  | name string / required |  | Suffix portion of the fully qualified domain name.
| name string / required |  | Name of table.

request_cache_control
string

Choices:
- enable
- disable

Enable/disable HTTP request cache control.

response_cache_control
string

Choices:
- enable
- disable

Enable/disable HTTP response cache control.

response_expires
string

Choices:
- enable
- disable

Enable/disable HTTP response cache expires.

| rules list |  | WAN optimization content delivery network rule entries.
|  | content_id dictionary |  | Content ID settings.

end_direction
string

Choices:
- forward
- backward

Search direction from end-str match.

|  |  | end_skip integer |  | Number of characters in URL to skip after end-str has been matched.
|  |  | end_str string |  | String from which to end search.
|  |  | range_str string |  | Name of content ID within the start string and end string.

start_direction
string

Choices:
- forward
- backward

Search direction from start-str match.

|  |  | start_skip integer |  | Number of characters in URL to skip after start-str has been matched.
|  |  | start_str string |  | String from which to start search.

target
string

Choices:
- path
- parameter
- referrer
- youtube-map
- youtube-id
- youku-id
- hls-manifest
- dash-manifest
- hls-fragment
- dash-fragment

Option in HTTP header or URL parameter to match.

|  | match_entries list |  | List of entries to match.
|  |  | id integer / required |  | Rule ID.
|  |  | pattern list |  | Pattern string for matching target (Referrer or URL pattern, eg. "a", "a*c", "*a*", "a*c*e", and "*").
|  |  |  | string string / required |  | Pattern strings.

target
string

Choices:
- path
- parameter
- referrer
- youtube-map
- youtube-id
- youku-id

Option in HTTP header or URL parameter to match.

match_mode
string

Choices:
- all
- any

Match criteria for collecting content ID.

|  | name string / required |  | WAN optimization content delivery network rule name.
|  | skip_entries list |  | List of entries to skip.
|  |  | id integer / required |  | Rule ID.
|  |  | pattern list |  | Pattern string for matching target (Referrer or URL pattern, eg. "a", "a*c", "*a*", "a*c*e", and "*").
|  |  |  | string string / required |  | Pattern strings.

target
string

Choices:
- path
- parameter
- referrer
- youtube-map
- youtube-id
- youku-id

Option in HTTP header or URL parameter to match.

skip_rule_mode
string

Choices:
- all
- any

Skip mode when evaluating skip-rules.

status
string

Choices:
- enable
- disable

Enable/disable WAN optimization content delivery network rules.

text_response_vcache
string

Choices:
- enable
- disable

Enable/disable caching of text responses.

updateserver
string

Choices:
- enable
- disable

Enable/disable update server.

## Notes

Note

- Requires fortiosapi library developed by Fortinet

- Run as a local_action in your playbook

## Examples

    - hosts: localhost
      vars:
       host: "192.168.122.40"
       username: "admin"
       password: ""
       vdom: "root"
       ssl_verify: "False"
      tasks:
      - name: Configure WAN optimization content delivery network rules.
        fortios_wanopt_content_delivery_network_rule:
          host:  "{{ host }}"
          username: "{{ username }}"
          password: "{{ password }}"
          vdom:  "{{ vdom }}"
          https: "False"
          state: "present"
          wanopt_content_delivery_network_rule:
            category: "vcache"
            comment: "Comment about this CDN-rule."
            host_domain_name_suffix:
             -
                name: "default_name_6"
            name: "default_name_7"
            request_cache_control: "enable"
            response_cache_control: "enable"
            response_expires: "enable"
            rules:
             -
                content_id:
                    end_direction: "forward"
                    end_skip: "14"
                    end_str: "<your_own_value>"
                    range_str: "<your_own_value>"
                    start_direction: "forward"
                    start_skip: "18"
                    start_str: "<your_own_value>"
                    target: "path"
                match_entries:
                 -
                    id:  "22"
                    pattern:
                     -
                        string: "<your_own_value>"
                    target: "path"
                match_mode: "all"
                name: "default_name_27"
                skip_entries:
                 -
                    id:  "29"
                    pattern:
                     -
                        string: "<your_own_value>"
                    target: "path"
                skip_rule_mode: "all"
            status: "enable"
            text_response_vcache: "enable"
            updateserver: "enable"

## Return Values

Common return values are documented here, the following are the fields unique to this module:

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

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Miguel Angel Munoz (@mamunozgonzalez)

- Nicolas Thomas (@thomnico)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.