B
    `                 @   st   d dl mZmZmZ eZddgddZdZdZdZ	d d	l
mZ d
dlmZmZmZ dZdZdd Zedkrpe  dS )    )absolute_importdivisionprint_functionz1.1ZstableinterfaceZ	certified)metadata_versionstatusZsupported_bya  
module: cluster
author:
  - Tadej Borovsak (@tadeboro)
short_description: Manage Sensu Go clusters
description:
  - Create, update or delete Sensu cluster.
  - For more information, refer to the Sensu documentation at
    U(https://docs.sensu.io/sensu-go/latest/operations/deploy-sensu/cluster-sensu/).
version_added: 1.9.0
extends_documentation_fragment:
  - sensu.sensu_go.requirements
  - sensu.sensu_go.auth
  - sensu.sensu_go.name
  - sensu.sensu_go.state
seealso:
  - module: sensu.sensu_go.cluster_info
options:
  api_urls:
    description:
      - List of API urls that compose a single cluster.
      - Required if I(state) is C(present).
    type: list
    elements: str
a  
- name: Create a small cluster
  sensu.sensu_go.cluster:
    name: small-cluster
    api_urls: https://sensu.alpha.example.com:8080

- name: Create a larger cluster
  sensu.sensu_go.cluster:
    name: large-cluster
    api_urls:
      - https://sensu.alpha.example.com:8080
      - https://sensu.beta.example.com:8080
      - https://sensu.gamma.example.com:8080

- name: Delete a cluster
  sensu.sensu_go.cluster:
    name: small-cluster
    state: absent
z
object:
  description: Object representing Sensu cluster.
  returned: success
  type: dict
  sample:
    metadata:
      name: alpha-cluster
    api_urls:
      - "http://10.10.0.1:8080"
)AnsibleModule   )	argumentserrorsutilsZ
enterprisezfederation/v1c           
   C   s   dddgfg} t | dttdddtddd	d
d}t|jd }ttt	d d|jd }tdt	t|jd dt
|jdd}y0t|jd ||||j\}}|j||d W n4 tjk
r } z|jt|d W d d }~X Y nX d S )NstateZpresentapi_urlsTauthnameliststr)typeelements)r   )required_ifZsupports_check_modeZargument_specZclustersZCluster)r   )r   api_versionmetadataspec)changedobject)msg)r   dictr	   Zget_specZget_sensu_clientparamsr   Zbuild_url_path	API_GROUPAPI_VERSIONZget_spec_payloadZsync_v1Z
check_modeZ	exit_jsonr
   ErrorZ	fail_jsonr   )r   moduleclientpathpayloadr   Zclustere r%   i/home/dcms/DCMS/lib/python3.7/site-packages/ansible_collections/sensu/sensu_go/plugins/modules/cluster.pymainR   s*    r'   __main__N)
__future__r   r   r   r   __metaclass__ZANSIBLE_METADATAZDOCUMENTATIONZEXAMPLESZRETURNZansible.module_utils.basicr   Zmodule_utilsr	   r
   r   r   r   r'   __name__r%   r%   r%   r&   <module>   s   !