- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# avi_api_session – Avi API Module

- Synopsis
- Requirements
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- This module can be used for calling any resources defined in Avi REST API. https://avinetworks.com/
- This module is useful for invoking HTTP Patch methods and accessing resources that do not have an REST object associated with them.

## Requirements

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

- avisdk

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
api_context dictionary added in 2.5 |  | Avi API context that includes current session ID and CSRF Token. This allows user to perform single login and re-use the session.
api_version string | Default: "16.4.4" | Avi API version of to use for Avi API and objects.
avi_credentials dictionary added in 2.5 |  | Avi Credentials dictionary which can be used in lieu of enumerating Avi Controller login details.
| api_version - | Default: "16.4.4" | Avi controller version
| controller - |  | Avi controller IP or SQDN
| csrftoken - |  | Avi controller API csrftoken to reuse existing session with session id
| password - |  | Avi controller password
| port - |  | Avi controller port
| session_id - |  | Avi controller API session id to reuse existing session with csrftoken
| tenant - | Default: "admin" | Avi controller tenant
| tenant_uuid - |  | Avi controller tenant UUID
| timeout - | Default: 300 | Avi controller request timeout
| token - |  | Avi controller API token
| username - |  | Avi controller username
avi_disable_session_cache_as_fact boolean added in 2.6 | Choices: no yes | It disables avi session information to be cached as a fact.
controller string | Default: "" | IP address or hostname of the controller. The default value is the environment variable `AVI_CONTROLLER`.
data - |  | HTTP body in YAML or JSON format.
http_method - / required | Choices: get put post patch delete | Allowed HTTP methods for RESTful services and are supported by Avi Controller.
params - |  | Query parameters passed to the HTTP API.
password string | Default: "" | Password of Avi user in Avi controller. The default value is the environment variable `AVI_PASSWORD`.
path - |  | Path for Avi API resource. For example, `path: virtualservice` will translate to `api/virtualserivce`.
tenant string | Default: "admin" | Name of tenant used for all Avi API calls and context of object.
tenant_uuid string | Default: "" | UUID of tenant used for all Avi API calls and context of object.
timeout - | Default: 60 | Timeout (in seconds) for Avi API calls.
username string | Default: "" | Username used for accessing Avi controller. The default value is the environment variable `AVI_USERNAME`.

## Notes

Note

- For more information on using Ansible to manage Avi Network devices see https://www.ansible.com/ansible-avi-networks.

## Examples

    - name: Get Pool Information using avi_api_session
      avi_api_session:
        controller: "{{ controller }}"
        username: "{{ username }}"
        password: "{{ password }}"
        http_method: get
        path: pool
        params:
          name: "{{ pool_name }}"
        api_version: 16.4
      register: pool_results

    - name: Patch Pool with list of servers
      avi_api_session:
        controller: "{{ controller }}"
        username: "{{ username }}"
        password: "{{ password }}"
        http_method: patch
        path: "{{ pool_path }}"
        api_version: 16.4
        data:
          add:
            servers:
              - ip:
                  addr: 10.10.10.10
                  type: V4
              - ip:
                  addr: 20.20.20.20
                  type: V4
      register: updated_pool

    - name: Fetch Pool metrics bandwidth and connections rate
      avi_api_session:
        controller: "{{ controller }}"
        username: "{{ username }}"
        password: "{{ password }}"
        http_method: get
        path: analytics/metrics/pool
        api_version: 16.4
        params:
          name: "{{ pool_name }}"
          metric_id: l4_server.avg_bandwidth,l4_server.avg_complete_conns
          step: 300
          limit: 10
      register: pool_metrics

## Return Values

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

Key | Returned | Description
--- | --- | ---
obj dictionary | success, changed | Avi REST resource

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Gaurav Rastogi (@grastogi23) <grastogi@avinetworks.com>

Hint

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