# cs_vpc_offering – Manages vpc offerings on Apache CloudStack based clouds

New in version 2.5.

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

## Synopsis

- Create, update, enable, disable and remove CloudStack VPC offerings.

## Requirements

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

- python >= 2.6
- cs >= 0.6.10

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

api_http_method
string

Choices:
- get
- post

HTTP method used to query the API endpoint.
If not given, the `CLOUDSTACK_METHOD` env variable is considered.
As the last option, the value is taken from the ini config file, also see the notes.
Fallback value is `get` if not specified.

api_key string |  | API key of the CloudStack API. If not given, the `CLOUDSTACK_KEY` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
api_region string | Default: "cloudstack" | Name of the ini section in the `cloustack.ini` file. If not given, the `CLOUDSTACK_REGION` env variable is considered.
api_secret string |  | Secret key of the CloudStack API. If not set, the `CLOUDSTACK_SECRET` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
api_timeout integer |  | HTTP timeout in seconds. If not given, the `CLOUDSTACK_TIMEOUT` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes. Fallback value is 10 seconds if not specified.
api_url string |  | URL of the CloudStack API e.g. https://cloud.example.com/client/api. If not given, the `CLOUDSTACK_ENDPOINT` env variable is considered. As the last option, the value is taken from the ini config file, also see the notes.
display_text string |  | Display text of the vpc offerings
name string / required |  | The name of the vpc offering

poll_async
boolean

Choices:
- no
- yes ←

Poll async jobs until job has finished.

service_capabilities list |  | Desired service capabilities as part of vpc offering. aliases: service_capability
service_offering string |  | The name or ID of the service offering for the VPC router appliance.
service_providers list |  | provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network aliases: service_provider

state
string

Choices:
- enabled
- present ←
- disabled
- absent

State of the vpc offering.

supported_services list |  | Services supported by the vpc offering aliases: supported_service

## Notes

Note

- Ansible uses the `cs` library’s configuration method if credentials are not provided by the arguments `api_url`, `api_key`, `api_secret`. Configuration is read from several locations, in the following order. The `CLOUDSTACK_ENDPOINT`, `CLOUDSTACK_KEY`, `CLOUDSTACK_SECRET` and `CLOUDSTACK_METHOD`. `CLOUDSTACK_TIMEOUT` environment variables. A `CLOUDSTACK_CONFIG` environment variable pointing to an `.ini` file. A `cloudstack.ini` file in the current working directory. A `.cloudstack.ini` file in the users home directory. Optionally multiple credentials and endpoints can be specified using ini sections in `cloudstack.ini`. Use the argument `api_region` to select the section name, default section is `cloudstack`. See https://github.com/exoscale/cs for more information.
- A detailed guide about cloudstack modules can be found in the CloudStack Cloud Guide.
- This module supports check mode.

## Examples

    - name: Create a vpc offering and enable it
      cs_vpc_offering:
        name: my_vpc_offering
        display_text: vpc offering description
        state: enabled
        supported_services: [ Dns, Dhcp ]
        service_providers:
          - {service: 'dns', provider: 'VpcVirtualRouter'}
          - {service: 'dhcp', provider: 'VpcVirtualRouter'}
      delegate_to: localhost

    - name: Create a vpc offering with redundant router
      cs_vpc_offering:
        name: my_vpc_offering
        display_text: vpc offering description
        supported_services: [ Dns, Dhcp, SourceNat ]
        service_providers:
          - {service: 'dns', provider: 'VpcVirtualRouter'}
          - {service: 'dhcp', provider: 'VpcVirtualRouter'}
          - {service: 'SourceNat', provider: 'VpcVirtualRouter'}
        service_capabilities:
          - {service: 'SourceNat', capabilitytype: 'RedundantRouter', capabilityvalue: true}
      delegate_to: localhost

    - name: Create a region level vpc offering with distributed router
      cs_vpc_offering:
        name: my_vpc_offering
        display_text: vpc offering description
        state: present
        supported_services: [ Dns, Dhcp, SourceNat ]
        service_providers:
          - {service: 'dns', provider: 'VpcVirtualRouter'}
          - {service: 'dhcp', provider: 'VpcVirtualRouter'}
          - {service: 'SourceNat', provider: 'VpcVirtualRouter'}
        service_capabilities:
          - {service: 'Connectivity', capabilitytype: 'DistributedRouter', capabilityvalue: true}
          - {service: 'Connectivity', capabilitytype: 'RegionLevelVPC', capabilityvalue: true}
      delegate_to: localhost

    - name: Remove a vpc offering
      cs_vpc_offering:
        name: my_vpc_offering
        state: absent
      delegate_to: localhost

## Return Values

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

Key | Returned | Description
--- | --- | ---
display_text string | success | The display text of the vpc offering Sample: My vpc offering
distributed boolean | success | Indicates if the vpc offering supports distributed router for one-hop forwarding.
id string | success | UUID of the vpc offering. Sample: a6f7a5fc-43f8-11e5-a151-feff819cdc9f
is_default boolean | success | Whether VPC offering is the default offering or not.
name string | success | The name of the vpc offering Sample: MyCustomVPCOffering
region_level boolean | success | Indicated if the offering can support region level vpc.
service_offering_id string | success | The service offering ID. Sample: c5f7a5fc-43f8-11e5-a151-feff819cdc9f
state string | success | The state of the vpc offering Sample: Enabled

## Status

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

### Authors

- David Passante (@dpassante)

Hint

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