
    Vh                     ~    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 Zedk(  r e        yy)    )absolute_importdivisionprint_functionz1.1stableinterface	certified)metadata_versionstatus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utils
enterprisezfederation/v1c                     dddgfg} t        | dt        t        j                  ddd      t        dd	      
            }t        j                  |j
                  d         }t        j                  t        t        d d|j
                  d         }t        dt        t        |j
                  d         t        j                  |j
                  d            }	 t        j                  |j
                  d   ||||j                        \  }}|j                  ||       y # t        j                  $ r%}|j!                  t#        |             Y d }~y d }~ww xY w)Nstatepresentapi_urlsTauthnameliststr)typeelements)r   )required_ifsupports_check_modeargument_specclustersCluster)r   )r   api_versionmetadataspec)changedobject)msg)r   dictr   get_specget_sensu_clientparamsr   build_url_path	API_GROUPAPI_VERSIONget_spec_payloadsync_v1
check_mode	exit_jsonr   Error	fail_jsonr   )r   moduleclientpathpayloadr#   clusteres           j/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/sensu/sensu_go/plugins/modules/cluster.pymainr:   R   s4   	)j\*K  vvw7v6
F ''f(=>F;j&--2GD 6==01''zB	G% ==MM'"FD'6;L;L
 	9<< %SV$$%s   AD! !E4EE__main__N)
__future__r   r   r   r   __metaclass__ANSIBLE_METADATADOCUMENTATIONEXAMPLESRETURNansible.module_utils.basicr   module_utilsr   r   r   r+   r,   r:   __name__     r9   <module>rG      sm    A @  ! 4(

 5 3 3	%B zF rF   