# clc_alert_policy – Create or Delete Alert Policies at CenturyLink Cloud

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

## Synopsis

- An Ansible module to Create or Delete Alert Policies at CenturyLink Cloud.

## Requirements

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

- python = 2.7
- requests >= 2.5.0
- clc-sdk

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
alert_recipients - |  | A list of recipient email ids to notify the alert. This is required for state 'present'
alias - / required |  | The alias of your CLC Account
duration - |  | The length of time in minutes that the condition must exceed the threshold. This is required for state 'present'
id - |  | The alert policy id. This is mutually exclusive with name

metric
-

Choices:
- cpu
- memory
- disk

The metric on which to measure the condition that will trigger the alert. This is required for state 'present'

name - |  | The name of the alert policy. This is mutually exclusive with id

state
-

Choices:
- present ←
- absent

Whether to create or delete the policy.

threshold - |  | The threshold that will trigger the alert when the metric equals or exceeds it. This is required for state 'present' This number represents a percentage and must be a value between 5.0 - 95.0 that is a multiple of 5.0

## Notes

Note

- To use this module, it is required to set the below environment variables which enables access to the Centurylink Cloud - CLC_V2_API_USERNAME, the account login id for the centurylink cloud - CLC_V2_API_PASSWORD, the account password for the centurylink cloud
- Alternatively, the module accepts the API token and account alias. The API token can be generated using the CLC account login and password via the HTTP api call @ https://api.ctl.io/v2/authentication/login - CLC_V2_API_TOKEN, the API token generated from https://api.ctl.io/v2/authentication/login - CLC_ACCT_ALIAS, the account alias associated with the centurylink cloud
- Users can set CLC_V2_API_URL to specify an endpoint for pointing to a different CLC environment.

## Examples

    # Note - You must set the CLC_V2_API_USERNAME And CLC_V2_API_PASSWD Environment variables before running these examples

    ---
    - name: Create Alert Policy Example
      hosts: localhost
      gather_facts: False
      connection: local
      tasks:
        - name: Create an Alert Policy for disk above 80% for 5 minutes
          clc_alert_policy:
            alias: wfad
            name: 'alert for disk > 80%'
            alert_recipients:
                - test1@centurylink.com
                - test2@centurylink.com
            metric: 'disk'
            duration: '00:05:00'
            threshold: 80
            state: present
          register: policy

        - name: debug
          debug: var=policy

    ---
    - name: Delete Alert Policy Example
      hosts: localhost
      gather_facts: False
      connection: local
      tasks:
        - name: Delete an Alert Policy
          clc_alert_policy:
            alias: wfad
            name: 'alert for disk > 80%'
            state: absent
          register: policy

        - name: debug
          debug: var=policy

## Return Values

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

Key | Returned | Description
--- | --- | ---

policy
dictionary

success

The alert policy information
Sample:
{'actions': [{'action': 'email', 'settings': {'recipients': ['user1@domain.com', 'user1@domain.com']}}], 'id': 'ba54ac54a60d4a4f1ed6d48c1ce240a7', 'links': [{'href': '/v2/alertPolicies/alias/ba54ac54a60d4a4fb1d6d48c1ce240a7', 'rel': 'self', 'verbs': ['GET', 'DELETE', 'PUT']}], 'name': 'test_alert', 'triggers': [{'duration': '00:05:00', 'metric': 'disk', 'threshold': 80.0}]}

## Status

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

### Authors

- CLC Runner (@clc-runner)

Hint

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