.. _user/services/structure/resources/role: *********** Cybus::Role *********** Creates a new *role* resource. See also :ref:`user and role management`. The role defined here can be used in the list of roles for a :ref:`user/services/structure/resources/user` resource, which is the suggested way of specifying a set of permissions for a user. Properties ========== ============== ============ ============ Property Type Required ============== ============ ============ `permissions`_ ``object[]`` **Required** ============== ============ ============ permissions ----------- The permissions associated to this role - is **required** - type: ``object[]``; all items must be of the type: ``object`` with following properties: ============= ====== ============ Property Type Required ============= ====== ============ `context`_ string **Required** `operation`_ string **Required** `resource`_ string **Required** ============= ====== ============ context ^^^^^^^ The context in which the role permissions for the resource should be interpreted. - is **required** - type: ``enum``; the value of this property **must** be equal to one of the below: - ``mqtt`` when describing permissions for MQTT topics - ``http`` when describing permissions for REST API paths operation ^^^^^^^^^ The allowed access operation to the resource. - is **required** - type: ``enum``; the value of this property **must** be equal to one of the below: - ``read`` - ``write`` - ``readWrite`` resource ^^^^^^^^ Resource path. Can be REST-ful API path or MQTT topic. - is **required** - type: ``string`` .. _permissions: #permissions Example ======= .. code-block:: yaml :linenos: myRole: type: Cybus::Role properties: permissions: - resource: edge.cybus/# operation: readWrite context: mqtt