<?xml version="1.0" encoding="UTF-8"?>
<definitions name="ComunideskSoap_RoleAssignment"
  targetNamespace="https://gateway.comunidesk.com/soap"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:tns="https://gateway.comunidesk.com/soap"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <types>
    <xsd:schema targetNamespace="https://gateway.comunidesk.com/soap" elementFormDefault="qualified">
      <xsd:complexType name="RoleAssignment"><xsd:sequence><xsd:element name="_id" type="xsd:string" minOccurs="0"/><xsd:element name="type" type="xsd:string" minOccurs="0"/><xsd:element name="edificioId" type="xsd:string" minOccurs="1"/><xsd:element name="userEmail" type="xsd:string" minOccurs="1"/><xsd:element name="userName" type="xsd:string" minOccurs="0"/><xsd:element name="rol" type="xsd:string" minOccurs="1"/><xsd:element name="permissions" type="xsd:string" minOccurs="0"/><xsd:element name="excludedPermissions" type="xsd:string" minOccurs="0"/><xsd:element name="permissionGroups" type="xsd:string" minOccurs="0"/><xsd:element name="temporary" type="xsd:boolean" minOccurs="0"/><xsd:element name="expiresAt" type="xsd:string" minOccurs="0"/><xsd:element name="reason" type="xsd:string" minOccurs="0"/><xsd:element name="activo" type="xsd:boolean" minOccurs="0"/></xsd:sequence></xsd:complexType>
    </xsd:schema>
  </types>

  
  <message name="ListRoleAssignmentRequest"><part name="edificioId" type="xsd:string"/></message>
  <message name="ListRoleAssignmentResponse"><part name="items" type="xsd:string"/></message>
  <message name="GetRoleAssignmentRequest"><part name="id" type="xsd:string"/><part name="edificioId" type="xsd:string"/></message>
  <message name="GetRoleAssignmentResponse"><part name="item" type="tns:RoleAssignment"/></message>
  <message name="CreateRoleAssignmentRequest"><part name="body" type="tns:RoleAssignment"/></message>
  <message name="CreateRoleAssignmentResponse"><part name="item" type="tns:RoleAssignment"/></message>
  <message name="UpdateRoleAssignmentRequest"><part name="id" type="xsd:string"/><part name="body" type="tns:RoleAssignment"/></message>
  <message name="UpdateRoleAssignmentResponse"><part name="item" type="tns:RoleAssignment"/></message>
  <message name="DeleteRoleAssignmentRequest"><part name="id" type="xsd:string"/><part name="edificioId" type="xsd:string"/></message>
  <message name="DeleteRoleAssignmentResponse"><part name="ok" type="xsd:boolean"/></message>

  <portType name="ComunideskSoap_RoleAssignmentPortType">
    
    <operation name="ListRoleAssignment">
      <documentation>Asignaciones de rol — List</documentation>
      <input message="tns:ListRoleAssignmentRequest"/>
      <output message="tns:ListRoleAssignmentResponse"/>
    </operation>
    <operation name="GetRoleAssignment">
      <documentation>Asignaciones de rol — Get</documentation>
      <input message="tns:GetRoleAssignmentRequest"/>
      <output message="tns:GetRoleAssignmentResponse"/>
    </operation>
    <operation name="CreateRoleAssignment">
      <documentation>Asignaciones de rol — Create</documentation>
      <input message="tns:CreateRoleAssignmentRequest"/>
      <output message="tns:CreateRoleAssignmentResponse"/>
    </operation>
    <operation name="UpdateRoleAssignment">
      <documentation>Asignaciones de rol — Update</documentation>
      <input message="tns:UpdateRoleAssignmentRequest"/>
      <output message="tns:UpdateRoleAssignmentResponse"/>
    </operation>
    <operation name="DeleteRoleAssignment">
      <documentation>Asignaciones de rol — Delete</documentation>
      <input message="tns:DeleteRoleAssignmentRequest"/>
      <output message="tns:DeleteRoleAssignmentResponse"/>
    </operation>
  </portType>

  <binding name="ComunideskSoap_RoleAssignmentBinding" type="tns:ComunideskSoap_RoleAssignmentPortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    
    <operation name="ListRoleAssignment">
      <soap:operation soapAction="https://gateway.comunidesk.com/soap/ListRoleAssignment"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
    </operation>
    <operation name="GetRoleAssignment">
      <soap:operation soapAction="https://gateway.comunidesk.com/soap/GetRoleAssignment"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
    </operation>
    <operation name="CreateRoleAssignment">
      <soap:operation soapAction="https://gateway.comunidesk.com/soap/CreateRoleAssignment"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
    </operation>
    <operation name="UpdateRoleAssignment">
      <soap:operation soapAction="https://gateway.comunidesk.com/soap/UpdateRoleAssignment"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
    </operation>
    <operation name="DeleteRoleAssignment">
      <soap:operation soapAction="https://gateway.comunidesk.com/soap/DeleteRoleAssignment"/>
      <input><soap:body use="literal"/></input>
      <output><soap:body use="literal"/></output>
    </operation>
  </binding>

  <service name="ComunideskSoap_RoleAssignmentService">
    <documentation>RBAC por edificio: rol, permisos extra y exclusiones.</documentation>
    <port name="ComunideskSoap_RoleAssignmentPort" binding="tns:ComunideskSoap_RoleAssignmentBinding">
      <soap:address location="https://gateway.comunidesk.com/v1/soap"/>
    </port>
  </service>
</definitions>
