# exo_dns_domain – Manages domain records on Exoscale DNS API

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

## Synopsis

- Create and remove domain records.

## Requirements

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

- python >= 2.6

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
api_key string |  | API key of the Exoscale DNS API. Since 2.4, the ENV variable `CLOUDSTACK_KEY` is used as default, when defined.
api_region string | Default: "cloudstack" | Name of the ini section in the `cloustack.ini` file. Since 2.4, the ENV variable `CLOUDSTACK_REGION` is used as default, when defined.
api_secret string |  | Secret key of the Exoscale DNS API. Since 2.4, the ENV variable `CLOUDSTACK_SECRET` is used as default, when defined.
api_timeout integer | Default: 10 | HTTP timeout to Exoscale DNS API. Since 2.4, the ENV variable `CLOUDSTACK_TIMEOUT` is used as default, when defined.
name string / required |  | Name of the record.

state
string

Choices:
- present ←
- absent

State of the resource.

validate_certs
boolean

Choices:
- no
- yes ←

Validate SSL certs of the Exoscale DNS API.

## Notes

Note

- As Exoscale DNS uses the same API key and secret for all services, we reuse the config used for Exscale Compute based on CloudStack. The config is read from several locations, in the following order. The `CLOUDSTACK_KEY`, `CLOUDSTACK_SECRET` 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`.
- This module does not support multiple A records and will complain properly if you try.
- More information Exoscale DNS can be found on https://community.exoscale.ch/documentation/dns/.
- This module supports check mode and diff.

## Examples

    - name: Create a domain
      exo_dns_domain:
        name: example.com

    - name: Remove a domain
      exo_dns_domain:
        name: example.com
        state: absent

## Return Values

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

Key | Returned | Description
--- | --- | ---
exo_dns_domain complex | success | API domain results
| account_id integer | success | Your account ID Sample: 34569
| auto_renew boolean | success | Whether domain is auto renewed or not
| created_at string | success | When the domain was created Sample: 2016-08-12T15:24:23.989Z
| expires_on string | success | When the domain expires Sample: 2016-08-12T15:24:23.989Z
| id integer | success | ID of the domain Sample: 2016-08-12T15:24:23.989Z
| lockable boolean | success | Whether the domain is lockable or not Sample: True
| name string | success | Domain name Sample: example.com
| record_count integer | success | Number of records related to this domain Sample: 5
| registrant_id integer | success | ID of the registrant
| service_count integer | success | Number of services
| state string | success | State of the domain Sample: hosted
| token string | success | Token Sample: r4NzTRp6opIeFKfaFYvOd6MlhGyD07jl
| unicode_name string | success | Domain name as unicode Sample: example.com
| updated_at string | success | When the domain was updated last. Sample: 2016-08-12T15:24:23.989Z
| user_id integer | success | ID of the user
| whois_protected boolean | success | Whether the whois is protected or not

## Status

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

### Authors

- René Moser (@resmo)

Hint

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