Hс_role_add_group

Команда добавляет выбранные группы к существующей CoCon роли через HTTP-терминал.

Аналог команды в CoCon:

cocon/role/add-group

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/role_add_group

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      Add groups to exists role.
      Usage: http://server:9999/commands/role_add_group.
      Implementation: hc_role_add_group.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>

  <!-- groupType -->
  <xs:complexType name="groupType">
      <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- roleType -->
  <xs:complexType name="roleType">
    <xs:sequence>
      <xs:element name="group" type="groupType" maxOccurs="unbounded" minOccurs="0"/>  
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>


  <!-- requestType -->
  <xs:complexType name="requestType">
    <xs:sequence>
      <xs:element name="role" type="roleType" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- in -->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:choice>
        <xs:element name="error" type="errorType"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

</xs:schema>

CODE

Пример

Запрос: http://192.168.1.21:9999/commands/role_add_group

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="hc_role_add_group.xsd">
    <request>
        <role name="role1">
            <group name="group1"/>
            <group name="group2"/>
        </role>
    </request>
</in>
CODE

Ответ:

status: 201
content:
CODE

Hс_role_declare

Команда предназначена для создания новой CoCon роли через HTTP-терминал.

Аналог команды в CoCon:

cocon/role/declare

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/role_declare

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Declare role with specific name.
      Usage: http://server:9999/commands/role_declare.
      Implementation: hc_role_declare.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>

  <!-- propertyType -->
  <xs:complexType name="propertyType">
    <xs:attribute type="xs:string" name="key" use="required"/>
    <xs:attribute type="xs:string" name="value" use="required"/>
  </xs:complexType>

  <!-- roleType -->
  <xs:complexType name="roleType">
    <xs:sequence>
      <xs:element name="property" type="propertyType" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- requestType -->
  <xs:complexType name="requestType">
     <xs:sequence>
       <xs:element name="role" type="roleType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
  </xs:complexType>

  <!-- in-->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:choice>
        <xs:element name="error" type="errorType"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
CODE

Пример

Запрос: http://192.168.1.21:9999/commands/role_declare

<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_role_declare.xsd">
    <request>
        <role name="admin1_role">
            <property key="key" value="value"/>
        </role>
        <role name="rolename3" />
    </request>
</in>
CODE

Ответ:

status: 201
content:
CODE

Hс_role_del_group

Команда удаляет выбранные группы существующей CoCon роли через HTTP-терминал.

Аналог команды в CoCon:

cocon/role/del-group

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/role_del_group

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      Delete groups from exists role.
      Usage: http://server:9999/commands/role_del_group.
      Implementation: hc_role_del_group.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>

  <!-- groupType -->
  <xs:complexType name="groupType">
      <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- roleType -->
  <xs:complexType name="roleType">
    <xs:sequence>
      <xs:element name="group" type="groupType" maxOccurs="unbounded" minOccurs="0"/>  
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>


  <!-- requestType -->
  <xs:complexType name="requestType">
    <xs:sequence>
      <xs:element name="role" type="roleType" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- in -->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:choice>
        <xs:element name="error" type="errorType"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

</xs:schema>
CODE

Пример

Запрос: http://192.168.1.21:9999/commands/role_del_group

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="hc_role_del_group.xsd">
    <request>
        <role name="rolename3">
            <group name="group1"/>
            <group name="group2"/>
        </role>
    </request>
</in>
CODE

Ответ:

status: 201
content:
CODE

Hс_role_properties_clean

Команда удаляет выбранное свойство для существующей CoCon роли через HTTP-терминал.

Аналог команды в CoCon:

cocon/role/.properties/clean

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/role_properties_clean

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">  
  
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Remove specified properties from exists role.
      Usage: http://server:9999/commands/role_properties_set.
      Implementation: hc_role_properties_set.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>
  
  <!-- keyType -->
  <xs:complexType name="keyTypeIn">
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>
  
  <!-- roleTypeIn -->
  <xs:complexType name="roleTypeIn">
    <xs:sequence>
      <xs:element name="key" type="keyTypeIn" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- requestType -->
  <xs:complexType name="requestType">
    <xs:sequence>
      <xs:element name="role" type="roleTypeIn" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
  <!-- in -->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <!-- propertyType -->
  <xs:complexType name="propertyTypeOut">
    <xs:attribute type="xs:string" name="key" use="optional"/>
    <xs:attribute type="xs:string" name="value" use="optional"/>
  </xs:complexType>
  
  <!-- roleTypeOut -->
  <xs:complexType name="roleTypeOut">
    <xs:sequence>
      <xs:element name="property" type="propertyTypeOut" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required"/>
  </xs:complexType>
  
  <!-- resultType -->
  <xs:complexType name="resultType">
    <xs:sequence>
      <xs:element name="role" type="roleTypeOut" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="result" type="resultType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

CODE

Пример

Запрос: http://192.168.1.21:9999/commands/role_properties_clean

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="hc_role_properties_clean.xsd">
    <request>
        <role name="rolename3">
            <key name="one" />
            <key name="two" />
            <key name="three" />
        </role>
    </request>
</in>
CODE

Ответ:

status: 201
content: 
CODE

Hс_role_properties_info

Команда просмотра свойства CoCon роли через HTTP-терминал.

Аналог команды в CoCon:

cocon/role/.properties/info

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/role_properties_info

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">  
  
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Showing information about properties of entered role .
      Usage: http://server:9999/commands/role_properties_info.
      Implementation: hc_role_properties_info.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>
  
  <!-- keyType -->
  <xs:complexType name="keyType">
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>
  
  <!-- roleTypeIn -->
  <xs:complexType name="roleTypeIn">
    <xs:sequence>
      <xs:element name="key" type="keyType" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- requestType -->
  <xs:complexType name="requestType">
    <xs:sequence>
      <xs:element name="role" type="roleTypeIn" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
  <!-- in -->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <!-- propertyType -->
  <xs:complexType name="propertyType">
    <xs:attribute type="xs:string" name="key" use="optional"/>
    <xs:attribute type="xs:string" name="value" use="optional"/>
  </xs:complexType>
  
  <!-- roleTypeOut -->
  <xs:complexType name="roleTypeOut">
    <xs:sequence>
      <xs:element name="property" type="propertyType" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required"/>
  </xs:complexType>
  
  <!-- resultType -->
  <xs:complexType name="resultType">
    <xs:sequence>
      <xs:element name="role" type="roleTypeOut" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="result" type="resultType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>


CODE

Пример

Запрос: http://192.168.1.21:9999/commands/role_properties_info

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="hc_role_properties_info.xsd">
    <request>
        <role name="cc-admin">
            <key name="access_tree" />
        </role>
        <role name="pbx-10X-admin"></role>
    </request>
</in>
CODE

Ответ:

<?xml version="1.0"?>
<out
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_role_properties_info.xsd">
    <result>
        <role name="cc-admin">
            <property key="access_tree" value="eyJ2ZXJzaW9uIjogIjMuOC4wLjI3IiwgInRyZWUiOiB7ImluZm8iOiB0cnVlLCAibmFtZSI6ICJXQ0YiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogZmFsc2UsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiY2x1c3Rlcl9jbHVzdGVyIiwgInRpdGxlIjogIkNsdXN0ZXJzIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogImNsdXN0ZXIuY2x1c3RlciJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJkb21haW5fZG9tYWluIiwgInRpdGxlIjogIkRvbWFpbnMiLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiBmYWxzZSwgInJlbW92ZSI6IGZhbHNlLCAiX2ljb24iOiAiZG9tYWluLmRvbWFpbiJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJkb21haW5fYnJpZGdlIiwgInRpdGxlIjogIkJyaWRnZSBtYW5hZ2VyIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogImRvbWFpbi5icmlkZ2UifSwgeyJpbmZvIjogZmFsc2UsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiZG9tYWluX2NkciIsICJ0aXRsZSI6ICJDZHIgbWFuYWdlciIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJkb21haW4uY2RyIn0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImFsaWFzX3Byb2ZpbGVzIiwgInRpdGxlIjogIkFsaWFzIHByb2ZpbGVzIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogImFsaWFzLnByb2ZpbGVzIn0sIHsiaW5mbyI6IGZhbHNlLCAibmFtZSI6ICJhbGlhc19jYXJkIiwgInRpdGxlIjogIlN1YnNjcmliZXIgY2FyZCIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJjaGlsZHJlbiI6IFt7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImNhcmRfbmF2aWdhdGlvbiIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9LCB7ImluZm8iOiB0cnVlLCAibmFtZSI6ICJjYXJkX2xvYWRlciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJjaGlsZHJlbiI6IFt7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImFsaWFzX3Byb3BlcnRpZXMiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfV19LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImNhcmRfc3NfcGFuZWwiLCAidGl0bGUiOiAiU3VwcGxlbWVudGFyeSBzZXJ2aWNlcyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9XSwgIl9pY29uIjogImFsaWFzLmNhcmQifSwgeyJpbmZvIjogZmFsc2UsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiYWxhcm1fYWxhcm0iLCAidGl0bGUiOiAiQWxhcm0gbGlzdCIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJhbGFybS5hbGFybSJ9LCB7ImluZm8iOiBmYWxzZSwgIm5hbWUiOiAiaWZhY2VfaWZhY2UiLCAidGl0bGUiOiAiSW50ZXJmYWNlcyBsaXN0IiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgImNoaWxkcmVuIjogW3siaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiaWZhY2VfaW5mbyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9XSwgIl9pY29uIjogImlmYWNlLmlmYWNlIn0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImxvZ19jYWxsIiwgInRpdGxlIjogIkNhbGwgaGlzdG9yeSIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJsb2cuY2FsbCJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJjb25zb2xlX2NvbnNvbGUiLCAidGl0bGUiOiAiQ29uc29sZSIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJjb25zb2xlLmNvbnNvbGUifSwgeyJpbmZvIjogZmFsc2UsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAibWdtdF91c2VycyIsICJ0aXRsZSI6ICJVc2VyIG1hbmFnZXIiLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiBmYWxzZSwgInJlbW92ZSI6IGZhbHNlLCAiX2ljb24iOiAibWdtdC51c2VycyJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJtZ210X2xpY2Vuc2UiLCAidGl0bGUiOiAiTGljZW5jZSBtYW5hZ2VyIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogIm1nbXQubGljZW5zZSJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJyb3V0aW5nX21hbmFnZXIiLCAidGl0bGUiOiAiUm91dGluZyBtYW5hZ2VyIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogInJvdXRpbmcubWFuYWdlciJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJhY2Nlc3NfbWFuYWdlciIsICJ0aXRsZSI6ICJBY2Nlc3MgbWFuYWdlciIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJhY2Nlc3MubWFuYWdlciJ9LCB7ImluZm8iOiBmYWxzZSwgIm5hbWUiOiAic3NfaW5zdGFsbCIsICJ0aXRsZSI6ICJTUyBpbnN0YWxsIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgImNoaWxkcmVuIjogW3siaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiRmVhdHVyZUNvZGVzIiwgInRpdGxlIjogIlNTIGNvZGVzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dLCAiX2ljb24iOiAic3MuaW5zdGFsbCJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJhcHBfZG9jc19kb2NzIiwgInRpdGxlIjogIkRvY3VtZW50YXRpb24iLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiBmYWxzZSwgInJlbW92ZSI6IGZhbHNlLCAiX2ljb24iOiAiYXBwX2RvY3MuZG9jcyJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJnYXRld2F5X21hbmFnZXIiLCAidGl0bGUiOiAiR2F0ZXdheSBtYW5hZ2VyIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogImdhdGV3YXkubWFuYWdlciJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJ0cnVua19zaG93IiwgInRpdGxlIjogIlRydW5rIG1hbmFnZXIiLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiBmYWxzZSwgInJlbW92ZSI6IGZhbHNlLCAiX2ljb24iOiAidHJ1bmsuc2hvdyJ9LCB7ImluZm8iOiBmYWxzZSwgIm5hbWUiOiAibWdtdF9ob3N0X2luZm8iLCAidGl0bGUiOiAiU1NXIGhvc3RzIGluZm8iLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiBmYWxzZSwgInJlbW92ZSI6IGZhbHNlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJHcmFwaHMiLCAidGl0bGUiOiAiQWN0aXZlIGNhbGxzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dLCAiX2ljb24iOiAibWdtdC5ob3N0X2luZm8ifSwgeyJpbmZvIjogdHJ1ZSwgIm5hbWUiOiAiY2NfbWFuYWdlciIsICJ0aXRsZSI6ICJDYWxsLWNlbnRlciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJjaGlsZHJlbiI6IFt7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImNjX2FnZW50X2luZm8iLCAidGl0bGUiOiAiQWdlbnQiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJjY19xdWV1ZV9pbmZvIiwgInRpdGxlIjogIlF1ZXVlIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dLCAiX2ljb24iOiAiY2MubWFuYWdlciJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJzdWJzY3JpYmVyX3BvcnRhbCIsICJ0aXRsZSI6ICJTdWJzY3JpYmVyIHBvcnRhbCIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJzdWJzY3JpYmVyLnBvcnRhbCJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJtc3JfZHJhdyIsICJ0aXRsZSI6ICJJVlIgZWRpdG9yIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogIm1zci5kcmF3In0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImRvbWFpbl90Y3BfZHVtcCIsICJ0aXRsZSI6ICJQQ0FQIHRyYWNlIG1hbmFnZXIiLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiBmYWxzZSwgInJlbW92ZSI6IGZhbHNlLCAiX2ljb24iOiAiZG9tYWluLnRjcF9kdW1wIn0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImRvbWFpbl90ZWxlY29uZiIsICJ0aXRsZSI6ICJUZWxlY29uZmVyZW5jZSBtYW5hZ2VyIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogImRvbWFpbi50ZWxlY29uZiJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJkb21haW5fbnVtYmVyX3BsYW4iLCAidGl0bGUiOiAiTnVtYmVyaW5nIHBsYW4gbWFuYWdlciIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJkb21haW4ubnVtYmVyX3BsYW4ifSwgeyJpbmZvIjogZmFsc2UsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAic3RhdGlzdGljc19kb21haW4iLCAidGl0bGUiOiAiU3RhdGlzdGljIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogInN0YXRpc3RpY3MuZG9tYWluIn0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIm1zcl9tZWRpYSIsICJ0aXRsZSI6ICJNU1IgbWVkaWEgbWFuYWdlciIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJtc3IubWVkaWEifSwgeyJpbmZvIjogZmFsc2UsICJuYW1lIjogImRvbWFpbl9jYWxlbmRhciIsICJ0aXRsZSI6ICJDYWxlbmRhciIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJjaGlsZHJlbiI6IFt7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogInNpbXBsZV9zZXR0aW5nc19DYWxlbmRhciIsICJ0aXRsZSI6ICJDYWxlbmRhciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIlNoZWR1bGUiLCAidGl0bGUiOiAiVGltZXRhYmxlcyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9XSwgIl9pY29uIjogImRvbWFpbi5jYWxlbmRhciJ9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJtc3JfcmVnaXN0cmFyIiwgInRpdGxlIjogIk1TUiBtZWRpYSByZWdpc3RyYXJzIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZSwgIl9pY29uIjogIm1zci5yZWdpc3RyYXIifV19fQ=="/>
        </role>
        <role name="pbx-10X-admin">
            <property key="available-in-domains" value="*"/>
            <property key="access_tree_simple" value="eyJ2ZXJzaW9uIjogIjMuOC4wLjMyIiwgInRyZWUiOiB7ImluZm8iOiB0cnVlLCAibmFtZSI6ICJTaW1wbGVXQ0YiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogdHJ1ZSwgIm5hbWUiOiAiTW9uaXRvcmluZyIsICJ0aXRsZSI6ICJNb25pdG9yaW5nIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgImNoaWxkcmVuIjogW3siaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiR3JhcGhzIiwgInRpdGxlIjogIkdyYXBocyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIkNvbW1vbiIsICJ0aXRsZSI6ICJDb21tb24iLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJDYWxscyIsICJ0aXRsZSI6ICJDYWxscyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJBbGFybXMiLCAidGl0bGUiOiAiQWxhcm1zIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZX1dLCAiX2ljb24iOiAic2ltcGxlLm1vbml0b3JpbmcifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJTdWJzY3JpYmVycyIsICJ0aXRsZSI6ICJVc2VyIG1hbmFnZXIiLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJzaW1wbGUuc3Vic2NyaWJlcnMifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJOdW1iZXJzIiwgInRpdGxlIjogIk51bWJlcnMiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAic2ltcGxlLm51bWJlcnMifSwgeyJpbmZvIjogZmFsc2UsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiUm91dGVzIiwgInRpdGxlIjogIlJvdXRlcyIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2UsICJfaWNvbiI6ICJzaW1wbGUucm91dGVzIn0sIHsiaW5mbyI6IHRydWUsICJuYW1lIjogIlNldHRpbmdzIiwgInRpdGxlIjogIlNldHRpbmdzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgImNoaWxkcmVuIjogW3siaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIlRydW5rcyIsICJ0aXRsZSI6ICJUcnVua3MiLCAiY3JlYXRlIjogZmFsc2UsICJtb2RpZnkiOiBmYWxzZSwgInJlbW92ZSI6IGZhbHNlfSwgeyJpbmZvIjogZmFsc2UsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiQ2RyIiwgInRpdGxlIjogIkNEUiIsICJjcmVhdGUiOiBmYWxzZSwgIm1vZGlmeSI6IGZhbHNlLCAicmVtb3ZlIjogZmFsc2V9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIkl2ciIsICJ0aXRsZSI6ICJJVlIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfSwgeyJpbmZvIjogdHJ1ZSwgIm5hbWUiOiAiQWNjZXNzIiwgInRpdGxlIjogIkFjY2VzcyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJjaGlsZHJlbiI6IFt7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIkFjY2Vzc1R5cGUiLCAidGl0bGUiOiAiQWNjZXNzIHR5cGUiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJBY2Nlc3NNb2RlIiwgInRpdGxlIjogIkFjY2VzcyBtb2RlIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiQWNjZXNzR3JvdXBzIiwgInRpdGxlIjogIkFjY2VzcyBncm91cHMiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfV19LCB7ImluZm8iOiBmYWxzZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJDZmMiLCAidGl0bGUiOiAiQ0ZDIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZX0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIkZlYXR1cmVDb2RlcyIsICJ0aXRsZSI6ICJGZWF0dXJlIGNvZGVzIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZX0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIm1zcl9tZWRpYSIsICJ0aXRsZSI6ICJNZWRpYSBtYW5hZ2VyIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZX0sIHsiaW5mbyI6IGZhbHNlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIkFjb3VzdGljU2lnbmFscyIsICJ0aXRsZSI6ICJBSSBPcHRpb25zIiwgImNyZWF0ZSI6IGZhbHNlLCAibW9kaWZ5IjogZmFsc2UsICJyZW1vdmUiOiBmYWxzZX0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAic2ltcGxlX3NldHRpbmdzX0NhbGVuZGFyIiwgInRpdGxlIjogIkNhbGVuZGFyIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiU2hlZHVsZSIsICJ0aXRsZSI6ICJUaW1ldGFibGVzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dLCAiX2ljb24iOiAic2ltcGxlLnNldHRpbmdzIn1dfX0="/>
            <property key="access_tree" value="eyJ2ZXJzaW9uIjogIjMuOC4wLjMyIiwgInRyZWUiOiB7ImluZm8iOiBmYWxzZSwgIm5hbWUiOiAiV0NGIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgImNoaWxkcmVuIjogW3siaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiY2x1c3Rlcl9jbHVzdGVyIiwgInRpdGxlIjogIkNsdXN0ZXJzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogImNsdXN0ZXIuY2x1c3RlciJ9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImRvbWFpbl9kb21haW4iLCAidGl0bGUiOiAiRG9tYWlucyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJkb21haW4uZG9tYWluIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiZG9tYWluX2JyaWRnZSIsICJ0aXRsZSI6ICJCcmlkZ2UgbWFuYWdlciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJkb21haW4uYnJpZGdlIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiZG9tYWluX2NkciIsICJ0aXRsZSI6ICJDZHIgbWFuYWdlciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJkb21haW4uY2RyIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiYWxpYXNfcHJvZmlsZXMiLCAidGl0bGUiOiAiQWxpYXMgcHJvZmlsZXMiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAiYWxpYXMucHJvZmlsZXMifSwgeyJpbmZvIjogdHJ1ZSwgIm5hbWUiOiAiYWxpYXNfY2FyZCIsICJ0aXRsZSI6ICJTdWJzY3JpYmVyIGNhcmQiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJjYXJkX25hdmlnYXRpb24iLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfSwgeyJpbmZvIjogdHJ1ZSwgIm5hbWUiOiAiY2FyZF9sb2FkZXIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJhbGlhc19wcm9wZXJ0aWVzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dfSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJjYXJkX3NzX3BhbmVsIiwgInRpdGxlIjogIlN1cHBsZW1lbnRhcnkgc2VydmljZXMiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfV0sICJfaWNvbiI6ICJhbGlhcy5jYXJkIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiYWxhcm1fYWxhcm0iLCAidGl0bGUiOiAiQWxhcm0gbGlzdCIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJhbGFybS5hbGFybSJ9LCB7ImluZm8iOiB0cnVlLCAibmFtZSI6ICJpZmFjZV9pZmFjZSIsICJ0aXRsZSI6ICJJbnRlcmZhY2VzIGxpc3QiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJpZmFjZV9pbmZvIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dLCAiX2ljb24iOiAiaWZhY2UuaWZhY2UifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJsb2dfY2FsbCIsICJ0aXRsZSI6ICJDYWxsIGhpc3RvcnkiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAibG9nLmNhbGwifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJjb25zb2xlX2NvbnNvbGUiLCAidGl0bGUiOiAiQ29uc29sZSIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJjb25zb2xlLmNvbnNvbGUifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJtZ210X3VzZXJzIiwgInRpdGxlIjogIlVzZXIgbWFuYWdlciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJtZ210LnVzZXJzIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAibWdtdF9saWNlbnNlIiwgInRpdGxlIjogIkxpY2VuY2UgbWFuYWdlciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJtZ210LmxpY2Vuc2UifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJyb3V0aW5nX21hbmFnZXIiLCAidGl0bGUiOiAiUm91dGluZyBtYW5hZ2VyIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogInJvdXRpbmcubWFuYWdlciJ9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImFjY2Vzc19tYW5hZ2VyIiwgInRpdGxlIjogIkFjY2VzcyBtYW5hZ2VyIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogImFjY2Vzcy5tYW5hZ2VyIn0sIHsiaW5mbyI6IHRydWUsICJuYW1lIjogInNzX2luc3RhbGwiLCAidGl0bGUiOiAiU1MgaW5zdGFsbCIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJjaGlsZHJlbiI6IFt7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogIkZlYXR1cmVDb2RlcyIsICJ0aXRsZSI6ICJTUyBjb2RlcyIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWV9XSwgIl9pY29uIjogInNzLmluc3RhbGwifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJhcHBfZG9jc19kb2NzIiwgInRpdGxlIjogIkRvY3VtZW50YXRpb24iLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAiYXBwX2RvY3MuZG9jcyJ9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImdhdGV3YXlfbWFuYWdlciIsICJ0aXRsZSI6ICJHYXRld2F5IG1hbmFnZXIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAiZ2F0ZXdheS5tYW5hZ2VyIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAidHJ1bmtfc2hvdyIsICJ0aXRsZSI6ICJUcnVuayBtYW5hZ2VyIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogInRydW5rLnNob3cifSwgeyJpbmZvIjogdHJ1ZSwgIm5hbWUiOiAibWdtdF9ob3N0X2luZm8iLCAidGl0bGUiOiAiU1NXIGhvc3RzIGluZm8iLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJHcmFwaHMiLCAidGl0bGUiOiAiQWN0aXZlIGNhbGxzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dLCAiX2ljb24iOiAibWdtdC5ob3N0X2luZm8ifSwgeyJpbmZvIjogdHJ1ZSwgIm5hbWUiOiAiY2NfbWFuYWdlciIsICJ0aXRsZSI6ICJDYWxsLWNlbnRlciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJjaGlsZHJlbiI6IFt7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImNjX2FnZW50X2luZm8iLCAidGl0bGUiOiAiQWdlbnQiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJjY19xdWV1ZV9pbmZvIiwgInRpdGxlIjogIlF1ZXVlIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZX1dLCAiX2ljb24iOiAiY2MubWFuYWdlciJ9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogInN1YnNjcmliZXJfcG9ydGFsIiwgInRpdGxlIjogIlN1YnNjcmliZXIgcG9ydGFsIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogInN1YnNjcmliZXIucG9ydGFsIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAibXNyX2RyYXciLCAidGl0bGUiOiAiSVZSIGVkaXRvciIsICJjcmVhdGUiOiB0cnVlLCAibW9kaWZ5IjogdHJ1ZSwgInJlbW92ZSI6IHRydWUsICJfaWNvbiI6ICJtc3IuZHJhdyJ9LCB7ImluZm8iOiB0cnVlLCAibGVhZiI6IHRydWUsICJuYW1lIjogImRvbWFpbl90Y3BfZHVtcCIsICJ0aXRsZSI6ICJQQ0FQIHRyYWNlIG1hbmFnZXIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAiZG9tYWluLnRjcF9kdW1wIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiZG9tYWluX3RlbGVjb25mIiwgInRpdGxlIjogIlRlbGVjb25mZXJlbmNlIG1hbmFnZXIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAiZG9tYWluLnRlbGVjb25mIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAiZG9tYWluX251bWJlcl9wbGFuIiwgInRpdGxlIjogIk51bWJlcmluZyBwbGFuIG1hbmFnZXIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiX2ljb24iOiAiZG9tYWluLm51bWJlcl9wbGFuIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAic3RhdGlzdGljc19kb21haW4iLCAidGl0bGUiOiAiU3RhdGlzdGljIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogInN0YXRpc3RpY3MuZG9tYWluIn0sIHsiaW5mbyI6IHRydWUsICJsZWFmIjogdHJ1ZSwgIm5hbWUiOiAibXNyX21lZGlhIiwgInRpdGxlIjogIk1TUiBtZWRpYSBtYW5hZ2VyIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogIm1zci5tZWRpYSJ9LCB7ImluZm8iOiB0cnVlLCAibmFtZSI6ICJkb21haW5fY2FsZW5kYXIiLCAidGl0bGUiOiAiQ2FsZW5kYXIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlLCAiY2hpbGRyZW4iOiBbeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJzaW1wbGVfc2V0dGluZ3NfQ2FsZW5kYXIiLCAidGl0bGUiOiAiQ2FsZW5kYXIiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJTaGVkdWxlIiwgInRpdGxlIjogIlRpbWV0YWJsZXMiLCAiY3JlYXRlIjogdHJ1ZSwgIm1vZGlmeSI6IHRydWUsICJyZW1vdmUiOiB0cnVlfV0sICJfaWNvbiI6ICJkb21haW4uY2FsZW5kYXIifSwgeyJpbmZvIjogdHJ1ZSwgImxlYWYiOiB0cnVlLCAibmFtZSI6ICJtc3JfcmVnaXN0cmFyIiwgInRpdGxlIjogIk1TUiBtZWRpYSByZWdpc3RyYXJzIiwgImNyZWF0ZSI6IHRydWUsICJtb2RpZnkiOiB0cnVlLCAicmVtb3ZlIjogdHJ1ZSwgIl9pY29uIjogIm1zci5yZWdpc3RyYXIifV19fQ=="/>
        </role>
    </result>
</out>
CODE

Hс_role_properties_set

Команда изменяет и(или) добавляет свойство для существующей CoCon роли через HTTP-терминал.

Аналог команды в CoCon:

cocon/role/.properties/set

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/role_properties_set

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">  
  
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Set specified properties to exists role.
      Usage: http://server:9999/commands/role_properties_set.
      Implementation: hc_role_properties_set.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>
  
  <!-- propertyType -->
  <xs:complexType name="propertyTypeIn">
    <xs:attribute type="xs:string" name="key" use="required"/>
    <xs:attribute type="xs:string" name="value" use="required"/>
  </xs:complexType>
  
  <!-- roleTypeIn -->
  <xs:complexType name="roleTypeIn">
    <xs:sequence>
      <xs:element name="property" type="propertyTypeIn" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- requestType -->
  <xs:complexType name="requestType">
    <xs:sequence>
      <xs:element name="role" type="roleTypeIn" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
  <!-- in -->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <!-- propertyType -->
  <xs:complexType name="propertyTypeOut">
    <xs:attribute type="xs:string" name="key" use="optional"/>
    <xs:attribute type="xs:string" name="value" use="optional"/>
  </xs:complexType>
  
  <!-- roleTypeOut -->
  <xs:complexType name="roleTypeOut">
    <xs:sequence>
      <xs:element name="property" type="propertyTypeOut" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required"/>
  </xs:complexType>
  
  <!-- resultType -->
  <xs:complexType name="resultType">
    <xs:sequence>
      <xs:element name="role" type="roleTypeOut" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="result" type="resultType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

CODE

Пример

Запрос: http://192.168.1.21:9999/commands/role_properties_set

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="hc_role_properties_set.xsd">
    <request>
        <role name="rolename3">
            <property key="one" value="value"/>
            <property key="two" value="value1\nvalue2"/>
        </role>
        <role name="admin1_role">
            <property key="one" value="value1"/>
        </role>
    </request>
</in>
CODE

Ответ:

status: 201
content:
CODE

Hс_role_remove

Команда предназначена для удаления CoCon роли через HTTP-терминал.

Аналог команды в CoCon:

cocon/role/remove

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/role_remove

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Remove exists role with specific name.
      Usage: http://server:9999/commands/role_remove.
      Implementation: hc_role_remove.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>

  <!-- roleType -->
  <xs:complexType name="roleType">
    <xs:attribute name="name" type="xs:string" use="required"/>
  </xs:complexType>

  <!-- requestType -->
  <xs:complexType name="requestType">
     <xs:sequence>
       <xs:element name="role" type="roleType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
  </xs:complexType>

  <!-- in-->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:choice>
        <xs:element name="error" type="errorType"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
CODE

Пример

Запрос: http://192.168.1.21:9999/commands/role_remove

<?xml version="1.0" encoding="UTF-8"?>
<in xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="hc_role_remove.xsd">
    <request>
        <role name="rolename3" />
    </request>
</in>
CODE

Ответ:

status: 201
content:
CODE

Hс_set_role_to_user

Команда назначает CoCon роль пользователю через HTTP-терминал.

Аналог команды в CoCon:

cocon/set-role-from-user

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/set_role_to_user

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      Set exists role to exists user.
      Usage: http://server:9999/commands/set_role_to_user.
      Implementation: hc_set_role_to_user.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>

  <!-- userType -->
  <xs:complexType name="userType">
      <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- roleType -->
  <xs:complexType name="roleType">
    <xs:sequence>
      <xs:element name="user" type="userType" maxOccurs="unbounded" minOccurs="0"/>  
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>


  <!-- requestType -->
  <xs:complexType name="requestType">
    <xs:sequence>
      <xs:element name="role" type="roleType" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- in -->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:choice>
        <xs:element name="error" type="errorType"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

</xs:schema>

CODE

Пример

Запрос: http://192.168.1.21:9999/commands/set_role_to_user

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="hc_set_role_to_user.xsd">
    <request>
        <role name="oper_role">
            <user name="oper"/>
        </role>
    </request>
</in>
CODE

Ответ:

status: 201
content:
CODE

Hс_del_role_from_user

Команда удаляет существующую CoCon роль существующего пользователя через HTTP-терминал.

Аналог команды в CoCon:

cocon/del-role-from-user

Метод HTTP-запроса:

POST

Шаблон HTTP-запроса:

http://host:port/commands/del_role_from_user

Код HTTP-ответа:

  • 201 – в случае успеха;
  • 200 – в случае ошибки.

XSD-схема XML-файла запроса/ответа:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      Delete role from exists user.
      Usage: http://server:9999/commands/del_role_from_user.
      Implementation: hc_del_role_from_user.erl.
      Git: git@git.eltex.loc:httpTerminal.git.
      Copyright (c) 2016, Eltex. All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:include schemaLocation="error.xsd"/>

  <!-- userType -->
  <xs:complexType name="userType">
      <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>

  <!-- roleType -->
  <xs:complexType name="roleType">
    <xs:sequence>
      <xs:element name="user" type="userType" maxOccurs="unbounded" minOccurs="0"/>  
    </xs:sequence>
    <xs:attribute type="xs:string" name="name" use="required"/>
  </xs:complexType>


  <!-- requestType -->
  <xs:complexType name="requestType">
    <xs:sequence>
      <xs:element name="role" type="roleType" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <!-- in -->
  <xs:element name="in">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="request" type="requestType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- out -->
  <xs:element name="out">
    <xs:complexType>
      <xs:choice>
        <xs:element name="error" type="errorType"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

</xs:schema>
CODE

Пример

Запрос: http://192.168.1.21:9999/commands/del_role_from_user

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="hc_del_role_from_user.xsd">
    <request>
        <role name="oper_role">
            <user name="oper"/>
        </role>
    </request>
</in>
CODE

Ответ:

status: 201
content:
CODE