
    Vh7                     r    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 d Zedk(  r e        yy)    )absolute_importdivisionprint_functionz1.1preview	community)metadata_versionstatussupported_bya  
---
module: mso_role
short_description: Manage roles
description:
- Manage roles on Cisco ACI Multi-Site.
author:
- Dag Wieers (@dagwieers)
options:
  role:
    description:
    - The name of the role.
    type: str
    aliases: [ name ]
  display_name:
    description:
    - The name of the role to be displayed in the web UI.
    type: str
  description:
    description:
    - The description of the role.
    type: str
  read_permissions:
    description:
    - A list of read permissions tied to this role.
    type: list
    elements: str
    choices:
    - backup-db
    - manage-audit-records
    - manage-labels
    - manage-roles
    - manage-schemas
    - manage-sites
    - manage-tenants
    - manage-tenant-schemas
    - manage-users
    - platform-logs
    - view-all-audit-records
    - view-labels
    - view-roles
    - view-schemas
    - view-sites
    - view-tenants
    - view-tenant-schemas
    - view-users
  write_permissions:
    description:
    - A list of write permissions tied to this role.
    type: list
    elements: str
    aliases: [ permissions ]
    choices:
    - backup-db
    - manage-audit-records
    - manage-labels
    - manage-roles
    - manage-schemas
    - manage-sites
    - manage-tenants
    - manage-tenant-schemas
    - manage-users
    - platform-logs
    - view-all-audit-records
    - view-labels
    - view-roles
    - view-schemas
    - view-sites
    - view-tenants
    - view-tenant-schemas
    - view-users
  state:
    description:
    - Use C(present) or C(absent) for adding or removing.
    - Use C(query) for listing an object or multiple objects.
    type: str
    choices: [ absent, present, query ]
    default: present
extends_documentation_fragment: cisco.mso.modules
a  
- name: Add a new role
  cisco.mso.mso_role:
    host: mso_host
    username: admin
    password: SomeSecretPassword
    role: readOnly
    display_name: Read Only
    description: Read-only access for troubleshooting
    read_permissions:
      - view-roles
      - view-schemas
      - view-sites
      - view-tenants
      - view-tenant-schemas
      - view-users
    write_permissions:
      - manage-roles
      - manage-schemas
      - manage-sites
      - manage-tenants
      - manage-tenant-schemas
      - manage-users
    state: present

- name: Remove a role
  cisco.mso.mso_role:
    host: mso_host
    username: admin
    password: SomeSecretPassword
    role: readOnly
    state: absent

- name: Query a role
  cisco.mso.mso_role:
    host: mso_host
    username: admin
    password: SomeSecretPassword
    role: readOnly
    state: query
  register: query_result

- name: Query all roles
  cisco.mso.mso_role:
    host: mso_host
    username: admin
    password: SomeSecretPassword
    state: query
  register: query_result

)AnsibleModule)	MSOModulemso_argument_specc                     t               } | j                  t        ddg      t        d      t        d      t        ddg d      t        dddgg d	      t        dd
g d             t        | ddddggdd
dggg      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }|j                  j                  d      }t        |      }d }d}	|rR|j                  |	|      |_        |j                  rD|j                  j                  d      }dj                  |      }	n|j                  |	      |_        |dk(  rn)|dk(  rK|j                  |_        |j                  r|j                  ri |_        n|j                  |	d      |_        n|d
k(  r|j                  |_        t        ||||||      }
|j                  |
d       |j                  rR|j                         r|j                  r|j                   |_        ne|j                  |	d |j"                  !      |_        nA|j                  r|j                   |_        n#|j                  |	d"|j"                  !      |_        |j%                          y )#Nstrname)typealiases)r   list)z	backup-dbzmanage-audit-recordszmanage-labelszmanage-roleszmanage-schemaszmanage-siteszmanage-tenantszmanage-tenant-schemaszmanage-userszplatform-logszview-all-audit-recordszview-labelsz
view-roleszview-schemasz
view-siteszview-tenantszview-tenant-schemasz
view-users)r   elementschoicespermissions)r   r   r   r   present)absentr   query)r   defaultr   )roledisplay_namedescriptionread_permissionswrite_permissionsstateTr!   r   r   )argument_specsupports_check_moderequired_ifr   r   r    roles)r   idz
roles/{id})r&   r   DELETE)method)r&   r   displayNamer   readPermissionswritePermissions)collatePUT)r(   dataPOST)r   updatedictr   paramsgetr   get_objexistingformat
query_objsprevious
check_moderequestsanitizecheck_changedproposedsent	exit_json)r"   moduler   r   r   r    r!   msorole_idpathpayloads              f/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/mso/plugins/modules/mso_role.pymainrF      s}   %'Muvh/u%e$
0 "O	
2 y:XYk  6p # h)i&*
F ==V$D--##M2K}}(();<))*=>MMg&E
F
CGD {{4d{3<<ll&&t,G&&'&2D~~d+	(	||<<  !"{{4{A	)	||#,.
 	Wd+<<  "$$#&<<CL#&;;tE;#QCL  "||"{{4SXX{NMMO    __main__N)
__future__r   r   r   r   __metaclass__ANSIBLE_METADATADOCUMENTATIONEXAMPLESRETURNansible.module_utils.basicr   6ansible_collections.cisco.mso.plugins.module_utils.msor   r   rF   __name__ rG   rE   <module>rS      s^    A @(-)Vab Ob1f
 5 _}@ zF rG   