openapi: 3.0.3
info:
  title: LIAM — Laniway Identity & Access Management
  version: 1.0.0
  description: |
    Identity and access API for LIAM: authentication, authorization, sessions,
    2FA (TOTP/Recovery), tenants, RBAC, application tokens and SSO.

    For bilingual documentation, this spec uses vendor extensions (`x-i18n` and
    `x-field-dictionary`) with EN/PT descriptions where relevant.
  contact:
    name: Laniway Engineering
    email: engineering@laniway.com
servers:
  - url: https://api.liam.laniway.com.br
    description: Production
  - url: https://api.liam.laniway.com
    description: Staging
tags:
  - name: Authentication
    description: Login, 2FA upgrade, session management
  - name: Identity
    description: User profile, password, 2FA devices
  - name: Tenant
    description: Tenants, services, memberships
  - name: RBAC
    description: Permission & role checks
  - name: Application Token
    description: Service-account tokens
  - name: SSO
    description: SSO page customization
  - name: Compatibility
    description: Endpoints compatíveis com formato ID1
x-i18n:
  defaultLocale: en-US
  locales:
    - en-US
    - pt-BR
  notes:
    en-US: OpenAPI has no official multilingual fields; LIAM uses x-i18n/x-field-dictionary extensions.
    pt-BR: OpenAPI nao possui campos multilingues oficiais; o LIAM usa extensoes x-i18n/x-field-dictionary.
x-field-dictionary:
  identity_id:
    type: string
    format: uuid
    description:
      en-US: Unique LIAM identity identifier (person or service account).
      pt-BR: Identificador unico da identidade no LIAM (pessoa ou conta de servico).
  tenant_id:
    type: string
    format: uuid
    description:
      en-US: Tenant scope identifier used for isolation and RBAC scoping.
      pt-BR: Identificador do tenant para isolamento e escopo de RBAC.
  permission_key:
    type: string
    description:
      en-US: "Canonical permission key (example: identity.admin.read)."
      pt-BR: "Chave canonica de permissao (exemplo: identity.admin.read)."
  role_id:
    type: string
    format: uuid
    description:
      en-US: Role identifier assigned to identities within a tenant or globally.
      pt-BR: Identificador de role atribuido a identidades em escopo global ou de tenant.
  permission_group_id:
    type: string
    format: uuid
    description:
      en-US: Permission group identifier used as an intermediate RBAC layer.
      pt-BR: Identificador do grupo de permissoes usado como camada intermediaria de RBAC.
paths:
  /login/authenticate/v1.0:
    post:
      operationId: loginAuthenticate
      tags:
        - Authentication
      summary: Authenticate identity (email + password)
      description: |
        Autentica uma identidade via email e senha.
        Se 2FA estiver ativo, retorna `session_status: pending_upgrade`.
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_email
                - identity_password
              properties:
                identity_email:
                  type: string
                  maxLength: 255
                identity_password:
                  type: string
                  maxLength: 255
      responses:
        "200":
          description: Authentication successful
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthenticateResponse"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: |-
            Unauthorized

            **Endpoint-specific:**
            - `2000001` — Invalid credentials / *Credenciais inválidas*
            - `2000002` — Account is suspended / *Conta suspensa*
            - `2000003` — Account is blocked / *Conta bloqueada*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2000002
          - 2000003
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /login/upgrade/v1.0:
    post:
      operationId: loginUpgrade
      tags:
        - Authentication
      summary: Upgrade session with 2FA
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - session_id
              properties:
                session_id:
                  type: string
                  format: uuid
                totp_code:
                  type: string
                  maxLength: 10
                recovery_code:
                  type: string
                  maxLength: 20
      responses:
        "200":
          description: Session upgraded to active
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpgradeResponse"
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2000009` — Must provide either totp_code or recovery_code / *Deve fornecer totp_code ou recovery_code*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: |-
            Unauthorized

            **Endpoint-specific:**
            - `2000005` — Invalid or expired 2FA code / *Código 2FA inválido ou expirado*
            - `2000006` — Invalid or already used recovery code / *Código de recuperação inválido ou já utilizado*
            - `2000007` — Session not found or expired / *Sessão não encontrada ou expirada*
            - `2000008` — Session is not pending upgrade / *Sessão não está pendente de upgrade*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000005
          - 2000006
          - 2000007
          - 2000008
          - 2000009
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /token/validate/v1.0:
    post:
      operationId: tokenValidate
      tags:
        - Authentication
      summary: Validate a session token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - token
              properties:
                token:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Session is valid
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValidateResponse"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000007` — Session not found or expired / *Sessão não encontrada ou expirada*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000007
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /token/revoke/v1.0:
    post:
      operationId: tokenRevoke
      tags:
        - Authentication
      summary: Revoke a specific session
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - session_id
              properties:
                session_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Session revoked.
          content:
            application/json:
              schema:
                type: object
                properties:
                  revoked:
                    type: string
                    format: uuid
                    description: The session_id that was revoked.
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2003001` — Permission denied / *Permissão negada*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2003001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /token/revoke_all/v1.0:
    post:
      operationId: tokenRevokeAll
      tags:
        - Authentication
      summary: Revoke all sessions for the authenticated identity
      security:
        - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                except_current:
                  type: boolean
                  default: true
      responses:
        "200":
          description: All sessions revoked.
          content:
            application/json:
              schema:
                type: object
                properties:
                  revoked_count:
                    type: integer
                    description: Number of sessions revoked.
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /token/search/v1.0:
    post:
      operationId: tokenSearch
      tags:
        - Authentication
      summary: Search sessions for the authenticated identity
      security:
        - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                session_statuses:
                  type: array
                  items:
                    type: string
                  description: Optional status filter. Default is active when omitted.
                session_date_created_from:
                  type: string
                  format: date-time
                session_date_created_to:
                  type: string
                  format: date-time
                session_date_expire_from:
                  type: string
                  format: date-time
                session_date_expire_to:
                  type: string
                  format: date-time
                session_date_last_activity_from:
                  type: string
                  format: date-time
                session_date_last_activity_to:
                  type: string
                  format: date-time
      responses:
        "200":
          description: Session list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  sessions:
                    type: array
                    items:
                      $ref: "#/components/schemas/Session"
                  count:
                    type: integer
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/get/v1.0:
    post:
      operationId: userGet
      tags:
        - Identity
      summary: Get identity profile
      security:
        - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                identity_id:
                  type: string
                  format: uuid
                  description: Omit to get current user
      responses:
        "200":
          description: Identity data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Identity"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/update/v1.0:
    post:
      operationId: userUpdate
      tags:
        - Identity
      summary: Update identity profile
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                identity_name:
                  type: string
                  maxLength: 255
                identity_language:
                  type: string
                  maxLength: 10
      responses:
        "200":
          description: Updated identity profile.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Identity"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /identity/admin/create/v1.0:
    post:
      operationId: identityAdminCreate
      tags:
        - Identity
      summary: Create identity as administrator
      description: |-
        Creates a new identity and optionally assigns initial tenant membership/role.
        Password strength is enforced by backend policy.
      x-i18n:
        pt-BR:
          summary: Criar identidade como administrador
          description: Cria uma nova identidade e opcionalmente ja associa tenant/role iniciais. A forca da senha e validada no
            backend.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_type
                - identity_email
                - identity_name
                - identity_password
              properties:
                identity_type:
                  type: string
                  enum:
                    - person
                    - server
                identity_email:
                  type: string
                  maxLength: 255
                identity_name:
                  type: string
                  maxLength: 255
                identity_password:
                  type: string
                  maxLength: 255
                identity_language:
                  type: string
                  enum:
                    - pt-BR
                    - en-US
                identity_allowed_ips:
                  type: string
                  maxLength: 2048
                  description: JSON string containing CIDR/IP array accepted by backend.
                tenant_id:
                  type: string
                  maxLength: 36
                role_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Identity created
          content:
            application/json:
              schema:
                type: object
                properties:
                  identity_id:
                    type: string
                    format: uuid
        "400":
          description: >-
            Bad Request


            **Endpoint-specific:**

            - `2001003` — New password does not meet strength requirements / *Nova senha não atende aos requisitos mínimos de segurança*

            - `2001012` — identity_allowed_ips must be a JSON array of CIDR strings / *identity_allowed_ips deve ser um array JSON de strings CIDR*


            **API Global:**

            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2001010` — An identity with this email already exists / *Já existe uma identidade com este e-mail*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001003
          - 2001010
          - 2001012
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /identity/admin/get/v1.0:
    post:
      operationId: identityAdminGet
      tags:
        - Identity
      summary: Read identity by ID (admin)
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
              properties:
                identity_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Identity data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Identity"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /identity/admin/update/v1.0:
    post:
      operationId: identityAdminUpdate
      tags:
        - Identity
      summary: Update identity as administrator
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
              properties:
                identity_id:
                  type: string
                  maxLength: 36
                identity_name:
                  type: string
                  maxLength: 255
                identity_language:
                  type: string
                  enum:
                    - pt-BR
                    - en-US
                identity_status_id:
                  type: integer
                identity_allowed_ips:
                  type: string
                  maxLength: 2048
                  description: JSON string containing CIDR/IP array accepted by backend.
      responses:
        "200":
          description: Updated identity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Identity"
        "400":
          description: >-
            Bad Request


            **Endpoint-specific:**

            - `2001012` — identity_allowed_ips must be a JSON array of CIDR strings / *identity_allowed_ips deve ser um array JSON de strings CIDR*


            **API Global:**

            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
          - 2001012
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /identity/admin/delete/v1.0:
    post:
      operationId: identityAdminDelete
      tags:
        - Identity
      summary: Delete identity (soft-delete semantics)
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
              properties:
                identity_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Identity soft-deleted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  identity_id:
                    type: string
                    format: uuid
                  removed:
                    type: boolean
                    example: true
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2001011` — Identity is already removed / *Identidade já foi removida*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
          - 2001011
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /identity/admin/search/v1.0:
    post:
      operationId: identityAdminSearch
      tags:
        - Identity
      summary: Search identity by email (admin)
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_email
              properties:
                identity_email:
                  type: string
                  maxLength: 255
      responses:
        "200":
          description: Identity match (single)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Identity"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/password/change/v1.0:
    post:
      operationId: userPasswordChange
      tags:
        - Identity
      summary: Change identity password
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - current_password
                - new_password
              properties:
                current_password:
                  type: string
                new_password:
                  type: string
      responses:
        "200":
          description: Password changed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  changed:
                    type: boolean
                    example: true
        "400":
          description: >-
            Bad Request


            **Endpoint-specific:**

            - `2001002` — Current password is incorrect / *Senha atual incorreta*

            - `2001003` — New password does not meet strength requirements / *Nova senha não atende aos requisitos mínimos de segurança*


            **API Global:**

            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2001004` — Password was already used recently / *Senha já foi utilizada recentemente*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
          - 2001002
          - 2001003
          - 2001004
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/tfa/methods/v1.0:
    post:
      operationId: userTfaMethods
      tags:
        - Identity
      summary: List configured 2FA methods
      security:
        - bearerAuth: []
      responses:
        "200":
          description: 2FA methods list
          content:
            application/json:
              schema:
                type: object
                properties:
                  totp_devices:
                    type: array
                    items:
                      type: object
                      properties:
                        totp_device_id:
                          type: string
                        totp_device_name:
                          type: string
                  recovery_codes_remaining:
                    type: integer
                    description: Number of unused recovery codes available
                  tfa_configured:
                    type: boolean
                    description: True if at least one 2FA method (TOTP or recovery code) is configured
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/tfa/totp/create/v1.0:
    post:
      operationId: userTfaTotpCreate
      tags:
        - Identity
      summary: Register a new TOTP device
      description: |-
        Creates and validates a TOTP device for the authenticated identity.
        The device name is optional in runtime contract; a default label may be used
        by the backend when omitted.
      x-i18n:
        pt-BR:
          summary: Registrar novo dispositivo TOTP
          description: Cria e valida um dispositivo TOTP para a identidade autenticada. O nome do dispositivo e opcional.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - totp_code
              properties:
                totp_device_name:
                  type: string
                  maxLength: 100
                  description: Optional human-readable label for the device.
                totp_code:
                  type: string
                  description: Code from authenticator to verify setup
      responses:
        "200":
          description: TOTP device created
          content:
            application/json:
              schema:
                type: object
                properties:
                  totp_device_id:
                    type: string
                  totp_secret:
                    type: string
                  provisioning_uri:
                    type: string
                  qr_code_base64:
                    type: string
        "400":
          description: >-
            Bad Request


            **Endpoint-specific:**

            - `2001005` — Invalid TOTP code for device registration / *Código TOTP inválido para registro do dispositivo*


            **API Global:**

            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
          - 2001005
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/tfa/totp/remove/v1.0:
    post:
      operationId: userTfaTotpRemove
      tags:
        - Identity
      summary: Remove a TOTP device
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - totp_device_id
              properties:
                totp_device_id:
                  type: string
      responses:
        "200":
          description: TOTP device removed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  removed:
                    type: string
                    format: uuid
                    description: The totp_device_id that was removed.
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*
            - `2001006` — TOTP device not found / *Dispositivo TOTP não encontrado*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: >-
            Conflict


            **Endpoint-specific:**

            - `2001007` — Cannot remove the last 2FA method when 2FA is required / *Não é possível remover o último método 2FA quando 2FA é obrigatório*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
          - 2001006
          - 2001007
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/tfa/recovery/generate/v1.0:
    post:
      operationId: userTfaRecoveryGenerate
      tags:
        - Identity
      summary: Generate new recovery codes (replaces existing)
      security:
        - bearerAuth: []
      responses:
        "200":
          description: Recovery codes generated
          content:
            application/json:
              schema:
                type: object
                properties:
                  recovery_codes:
                    type: array
                    items:
                      type: string
                    description: One-time display — store securely
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/tfa/recovery/remove/v1.0:
    post:
      operationId: userTfaRecoveryRemove
      tags:
        - Identity
      summary: Remove all recovery codes
      security:
        - bearerAuth: []
      responses:
        "200":
          description: Recovery codes removed.
          content:
            application/json:
              schema:
                type: object
                properties:
                  removed:
                    type: boolean
                    example: true
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: >-
            Conflict


            **Endpoint-specific:**

            - `2001007` — Cannot remove the last 2FA method when 2FA is required / *Não é possível remover o último método 2FA quando 2FA é obrigatório*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
          - 2001007
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /tenant/get/v1.0:
    post:
      operationId: tenantGet
      tags:
        - Tenant
      summary: Get tenant details
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - tenant_id
              properties:
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Tenant data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Tenant"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2003001` — Permission denied / *Permissão negada*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2002001` — Tenant not found / *Tenant não encontrado*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2002001
          - 2003001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /tenant/service/check/v1.0:
    post:
      operationId: tenantServiceCheck
      tags:
        - Tenant
      summary: Check if tenant has access to a service
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - tenant_id
                - service_definition_id
              properties:
                tenant_id:
                  type: string
                  format: uuid
                service_definition_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Service check result
          content:
            application/json:
              schema:
                type: object
                properties:
                  has_service:
                    type: boolean
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2003001` — Permission denied / *Permissão negada*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2003001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /tenant/service/list/v1.0:
    post:
      operationId: tenantServiceList
      tags:
        - Tenant
      summary: List active services for a tenant
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - tenant_id
              properties:
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Service list
          content:
            application/json:
              schema:
                type: object
                properties:
                  services:
                    type: array
                    items:
                      $ref: "#/components/schemas/ServiceDefinition"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2003001` — Permission denied / *Permissão negada*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2003001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /identity/memberships/v1.0:
    post:
      operationId: identityMemberships
      tags:
        - Tenant
      summary: List tenant memberships for an identity
      security:
        - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                identity_id:
                  type: string
                  format: uuid
                  description: Omit to use current identity
      responses:
        "200":
          description: Memberships list
          content:
            application/json:
              schema:
                type: object
                properties:
                  memberships:
                    type: array
                    items:
                      $ref: "#/components/schemas/Membership"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2003001` — Permission denied / *Permissão negada*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001001
          - 2003001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /permission/check/v1.0:
    post:
      operationId: permissionCheck
      tags:
        - RBAC
      summary: Check if identity has a permission
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_key
              properties:
                identity_id:
                  type: string
                  format: uuid
                permission_key:
                  type: string
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Permission check result
          content:
            application/json:
              schema:
                type: object
                properties:
                  has_permission:
                    type: boolean
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2003001` — Permission denied / *Permissão negada*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2003001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /permission/check/batch/v1.0:
    post:
      operationId: permissionCheckBatch
      tags:
        - RBAC
      summary: Check multiple permissions at once
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permissions
              properties:
                identity_id:
                  type: string
                  format: uuid
                permissions:
                  type: array
                  items:
                    type: string
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Batch permission check results
          content:
            application/json:
              schema:
                type: object
                properties:
                  permissions:
                    type: object
                    additionalProperties:
                      type: boolean
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2003001` — Permission denied / *Permissão negada*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2003001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/role/create/v1.0:
    post:
      operationId: rbac_role_create_v1_0
      tags:
        - RBAC
      summary: Role Create
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - role_name
                - role_scope
              properties:
                role_name:
                  type: string
                role_scope:
                  type: string
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Role created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  role_id:
                    type: string
                    format: uuid
        "400":
          description: >-
            Bad Request


            **Endpoint-specific:**

            - `2005001` — Tenant ID is required for tenant scope roles / *ID do Tenant é obrigatório para roles de escopo tenant*


            **API Global:**

            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2005001
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/role/update/v1.0:
    post:
      operationId: rbac_role_update_v1_0
      tags:
        - RBAC
      summary: Role Update
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - role_id
                - role_name
                - role_scope
              properties:
                role_id:
                  type: string
                  format: uuid
                role_name:
                  type: string
                role_scope:
                  type: string
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Role updated.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: >-
            Bad Request


            **Endpoint-specific:**

            - `2005001` — Tenant ID is required for tenant scope roles / *ID do Tenant é obrigatório para roles de escopo tenant*


            **API Global:**

            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2005002` — Role not found / *Role não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2005001
          - 2005002
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/role/delete/v1.0:
    post:
      operationId: rbac_role_delete_v1_0
      tags:
        - RBAC
      summary: Role Delete
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - role_id
              properties:
                role_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Role deleted.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2005002` — Role not found / *Role não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2005002
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/role/search/v1.0:
    post:
      operationId: rbac_role_search_v1_0
      tags:
        - RBAC
      summary: Role Search
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                scope:
                  type: string
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Matching roles.
          content:
            application/json:
              schema:
                type: object
                properties:
                  roles:
                    type: array
                    items:
                      $ref: "#/components/schemas/Role"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific: []
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/role/grant/v1.0:
    post:
      operationId: rbac_identity_role_grant_v1_0
      tags:
        - RBAC
      summary: Identity Role Grant
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
                - role_id
                - tenant_id
              properties:
                identity_id:
                  type: string
                  format: uuid
                role_id:
                  type: string
                  format: uuid
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Role granted to identity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2005002` — Role not found / *Role não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2005002
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/role/revoke/v1.0:
    post:
      operationId: rbac_identity_role_revoke_v1_0
      tags:
        - RBAC
      summary: Identity Role Revoke
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
                - role_id
                - tenant_id
              properties:
                identity_id:
                  type: string
                  format: uuid
                role_id:
                  type: string
                  format: uuid
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Role revoked from identity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific: []
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/role/list/v1.0:
    post:
      operationId: rbac_identity_role_list_v1_0
      tags:
        - RBAC
      summary: Identity Role List
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
              properties:
                identity_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Identity's assigned roles.
          content:
            application/json:
              schema:
                type: object
                properties:
                  roles:
                    type: array
                    items:
                      $ref: "#/components/schemas/RoleAssignment"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: |-
            Forbidden

            **Endpoint-specific:**
            - `2003001` — Permission denied / *Permissão negada*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2003001
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/permission/grant/v1.0:
    post:
      operationId: rbac_identity_permission_grant_v1_0
      tags:
        - RBAC
      summary: Identity Permission Grant
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
                - permission_key
              properties:
                identity_id:
                  type: string
                  format: uuid
                permission_key:
                  type: string
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Permission granted to identity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2003002` — Permission not found / *Permissão não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2001004` — Password was already used recently / *Senha já foi utilizada recentemente*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001004
          - 2003002
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/permission/revoke/v1.0:
    post:
      operationId: rbac_identity_permission_revoke_v1_0
      tags:
        - RBAC
      summary: Identity Permission Revoke
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
                - permission_key
              properties:
                identity_id:
                  type: string
                  format: uuid
                permission_key:
                  type: string
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Permission revoked from identity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2001004` — Password was already used recently / *Senha já foi utilizada recentemente*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001004
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/permission/list/v1.0:
    post:
      operationId: rbac_identity_permission_list_v1_0
      tags:
        - RBAC
      summary: Identity Permission List
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
              properties:
                identity_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Identity's directly-assigned permissions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permissions:
                    type: array
                    items:
                      $ref: "#/components/schemas/PermissionItem"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: |-
            Forbidden

            **Endpoint-specific:**
            - `2003001` — Permission denied / *Permissão negada*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2003001
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/permission_group/grant/v1.0:
    post:
      operationId: rbac_identity_permission_group_grant_v1_0
      tags:
        - RBAC
      summary: Identity Permission_Group Grant
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
                - permission_group_id
              properties:
                identity_id:
                  type: string
                  format: uuid
                permission_group_id:
                  type: string
                  format: uuid
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Permission group granted to identity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2003002` — Permission not found / *Permissão não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2001004` — Password was already used recently / *Senha já foi utilizada recentemente*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001004
          - 2003002
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/permission_group/revoke/v1.0:
    post:
      operationId: rbac_identity_permission_group_revoke_v1_0
      tags:
        - RBAC
      summary: Identity Permission_Group Revoke
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
                - permission_group_id
              properties:
                identity_id:
                  type: string
                  format: uuid
                permission_group_id:
                  type: string
                  format: uuid
                tenant_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Permission group revoked from identity.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            **Forbidden**


            - **`113`** — Caller lacks one of the RBAC permission keys required by this endpoint (see `data` for the list of missing permissions)

            - **`2003001`** — Application-level permission denied (global scope required)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2001004` — Password was already used recently / *Senha já foi utilizada recentemente*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2001004
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/identity/permission_group/list/v1.0:
    post:
      operationId: rbac_identity_permission_group_list_v1_0
      tags:
        - RBAC
      summary: Identity Permission_Group List
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
              properties:
                identity_id:
                  type: string
                  format: uuid
      responses:
        "200":
          description: Identity's assigned permission groups.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permission_groups:
                    type: array
                    items:
                      $ref: "#/components/schemas/PermissionGroupAssignment"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: |-
            Forbidden

            **Endpoint-specific:**
            - `2003001` — Permission denied / *Permissão negada*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2003001
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /app_token/create/v1.0:
    post:
      operationId: appTokenCreate
      tags:
        - Application Token
      summary: Create an application token
      description: |-
        Creates a token bound to an identity, optionally scoped to a tenant
        and custom permission set.
      x-i18n:
        pt-BR:
          summary: Criar application token
          description: Cria um token vinculado a uma identidade, opcionalmente com escopo de tenant e permissoes customizadas.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - identity_id
              properties:
                identity_id:
                  type: string
                  format: uuid
                app_token_name:
                  type: string
                  maxLength: 100
                  description: Optional friendly label used for administration.
                tenant_id:
                  type: string
                  format: uuid
                app_token_permissions:
                  type: array
                  items:
                    type: string
                  description: Explicit permission keys granted to this token.
                app_token_expire_days:
                  type: integer
                  description: Token TTL in days. Null or omitted means backend default policy.
      responses:
        "200":
          description: Token created (raw token shown only once)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApplicationTokenCreated"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /app_token/revoke/v1.0:
    post:
      operationId: appTokenRevoke
      tags:
        - Application Token
      summary: Revoke an application token
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - app_token_id
              properties:
                app_token_id:
                  type: string
      responses:
        "200":
          description: Application token revoked.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2004001` — Application token not found / *Application token não encontrado*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2004001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /app_token/list/v1.0:
    post:
      operationId: appTokenList
      tags:
        - Application Token
      summary: List application tokens
      security:
        - bearerAuth: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                identity_id:
                  type: string
                  format: uuid
                  description: Optional identity filter. Omit to list tokens for current identity scope.
      responses:
        "200":
          description: Token list (hashes not exposed)
          content:
            application/json:
              schema:
                type: object
                properties:
                  tokens:
                    type: array
                    items:
                      $ref: "#/components/schemas/ApplicationToken"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /app_token/validate/v1.0:
    post:
      operationId: appTokenValidate
      tags:
        - Application Token
      summary: Validate an application token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - app_token
              properties:
                app_token:
                  type: string
      responses:
        "200":
          description: Token is valid
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApplicationTokenValidated"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2004002` — Application token is revoked or expired / *Application token revogado ou expirado*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2004001` — Application token not found / *Application token não encontrado*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2004001
          - 2004002
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /app_token/permission/grant/v1.0:
    post:
      operationId: appTokenPermissionGrant
      tags:
        - Application Token
      summary: Grant a permission to an application token
      description: |-
        Grants an individual permission to an existing **active** application token
        owned by the authenticated user. The token must be in `active` status.
        The `permission_key` must already exist in the permission catalogue.
      x-i18n:
        pt-BR:
          summary: Conceder permissão a um application token
          description: Concede uma permissão avulsa a um application token ativo do usuário autenticado.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - app_token_id
                - permission_key
              properties:
                app_token_id:
                  type: string
                  format: uuid
                  description: ID of the target application token (must be owned by caller).
                permission_key:
                  type: string
                  maxLength: 100
                  description: Permission key to grant (must exist in the permission catalogue).
                  example: "tenant.self.read"
      responses:
        "200":
          description: Permission granted to the application token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  app_token_id:
                    type: string
                  permission_key:
                    type: string
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2004001` — Application token not found (or not owned by caller) / *Application token não encontrado ou não pertence ao usuário*
            - `2004003` — Permission key not found in catalogue / *Chave de permissão não encontrada no catálogo*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2004004` — Permission is already assigned to this application token / *A permissão já está atribuída a este application token*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "422":
          description: |-
            Unprocessable Entity

            **Endpoint-specific:**
            - `2004005` — Application token is not active — permissions cannot be modified / *Application token não está ativo — permissões não podem ser modificadas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2004001
          - 2004003
          - 2004004
          - 2004005
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /app_token/permission/revoke/v1.0:
    post:
      operationId: appTokenPermissionRevoke
      tags:
        - Application Token
      summary: Revoke a permission from an application token
      description: |-
        Revokes an individual permission from an application token owned by the
        authenticated user. The token does not need to be active to have a
        permission revoked. Returns 404 if the binding does not exist.
      x-i18n:
        pt-BR:
          summary: Revogar permissão de um application token
          description: Revoga uma permissão avulsa de um application token do usuário autenticado.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - app_token_id
                - permission_key
              properties:
                app_token_id:
                  type: string
                  format: uuid
                  description: ID of the target application token (must be owned by caller).
                permission_key:
                  type: string
                  maxLength: 100
                  description: Permission key to revoke.
                  example: "tenant.self.read"
      responses:
        "200":
          description: Permission revoked from the application token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  app_token_id:
                    type: string
                  permission_key:
                    type: string
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2004001` — Application token not found (or not owned by caller) / *Application token não encontrado ou não pertence ao usuário*
            - `2004003` — Permission key not found, or it was not assigned to this token / *Chave de permissão não encontrada, ou não estava atribuída ao token*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2004001
          - 2004003
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /app_token/permission/list/v1.0:
    post:
      operationId: appTokenPermissionList
      tags:
        - Application Token
      summary: List permissions of an application token
      description: |-
        Returns the sorted list of permission keys currently granted to an
        application token owned by the authenticated user.
      x-i18n:
        pt-BR:
          summary: Listar permissões de um application token
          description: Retorna as permissões atribuídas a um application token do usuário autenticado.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - app_token_id
              properties:
                app_token_id:
                  type: string
                  format: uuid
                  description: ID of the target application token (must be owned by caller).
      responses:
        "200":
          description: Permission list for the application token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permissions:
                    type: array
                    items:
                      type: string
                    description: Sorted list of permission keys assigned to the token.
                    example:
                      - "tenant.self.read"
                      - "tenant.self.service.list"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2004001` — Application token not found (or not owned by caller) / *Application token não encontrado ou não pertence ao usuário*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2004001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /sso/customization/get/v1.0:
    post:
      operationId: ssoCustomizationGet
      tags:
        - SSO
      summary: Get SSO page customization by hostname
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - hostname
              properties:
                hostname:
                  type: string
                  maxLength: 255
      responses:
        "200":
          description: SSO customization data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SSOCustomization"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: >-
            Not Found


            **Endpoint-specific:**

            - `2006001` — SSO customization not found for this hostname / *Customização SSO não encontrada para este hostname*


            **API Global:**

            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2006001
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/get:
    post:
      operationId: userGetCompat
      tags:
        - Compatibility
      summary: "[Compat] Get user — ID1 format"
      security:
        - bearerAuth: []
      responses:
        "200":
          description: User data in ID1 format
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ID1User"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /user/revalidate_password:
    post:
      operationId: userRevalidatePasswordCompat
      tags:
        - Compatibility
      summary: "[Compat] Revalidate password — ID1 format"
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - password
              properties:
                password:
                  type: string
      responses:
        "200":
          description: Password revalidated
          content:
            application/json:
              schema:
                type: object
                properties:
                  validated:
                    type: boolean
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **Endpoint-specific:**

            - `2000001` — Invalid credentials / *Credenciais inválidas*

            - `2000005` — Invalid or expired 2FA code / *Código 2FA inválido ou expirado*


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2000004` — Two-factor authentication required / *Autenticação de dois fatores necessária*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2001001` — Identity not found / *Identidade não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2000001
          - 2000004
          - 2000005
          - 2001001
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /health:
    get:
      operationId: health
      tags:
        - Authentication
      summary: Health check
      security: []
      responses:
        "200":
          description: Service is healthy
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific: []
        api_global:
          - 2
          - 102
          - 106
          - 107
          - 111
          - 112
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission_group/create/v1.0:
    post:
      operationId: rbac_permission_group_create_v1_0
      tags:
        - RBAC
      summary: Create a new global permission group
      description: Creates a permission group container used to aggregate permission keys.
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_group_name
              properties:
                permission_group_id:
                  type: string
                  maxLength: 36
                  description: Optional explicit UUID. If omitted backend generates one.
                permission_group_name:
                  type: string
                  maxLength: 100
      responses:
        "200":
          description: Permission group created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permission_group_id:
                    type: string
                    format: uuid
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008034` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2008035` — Permission group already exists / *Grupo de permissão já existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008034
          - 2008035
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission_group/update/v1.0:
    post:
      operationId: rbac_permission_group_update_v1_0
      tags:
        - RBAC
      summary: Update name of permission group
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_group_id
                - permission_group_name
              properties:
                permission_group_id:
                  type: string
                  maxLength: 36
                permission_group_name:
                  type: string
                  maxLength: 100
      responses:
        "200":
          description: Permission group updated.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008034` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008034
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission_group/delete/v1.0:
    post:
      operationId: rbac_permission_group_delete_v1_0
      tags:
        - RBAC
      summary: Delete a global permission group
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_group_id
              properties:
                permission_group_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Permission group deleted.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008034` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2008036` — Permission group not found / *Grupo de permissão não encontrado*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008034
          - 2008036
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission_group/list/v1.0:
    post:
      operationId: rbac_permission_group_list_v1_0
      tags:
        - RBAC
      summary: List global permission groups
      security:
        - bearerAuth: []
      responses:
        "200":
          description: All permission groups.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permission_groups:
                    type: array
                    items:
                      $ref: "#/components/schemas/PermissionGroup"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific: []
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission/create/v1.0:
    post:
      operationId: rbac_permission_create_v1_0
      tags:
        - RBAC
      summary: Create new root permission node
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_key
                - permission_description
              properties:
                permission_key:
                  type: string
                  maxLength: 150
                permission_description:
                  type: string
                  maxLength: 255
      responses:
        "200":
          description: Permission key registered.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permission_id:
                    type: string
                    format: uuid
                  permission_key:
                    type: string
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008037` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: |-
            Conflict

            **Endpoint-specific:**
            - `2008038` — Permission already exists / *Permissão já existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008037
          - 2008038
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission/list/v1.0:
    post:
      operationId: rbac_permission_list_v1_0
      tags:
        - RBAC
      summary: List all static definitions of permissions in the system
      security:
        - bearerAuth: []
      responses:
        "200":
          description: All registered permissions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permissions:
                    type: array
                    items:
                      $ref: "#/components/schemas/Permission"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific: []
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/role/permission_group/grant/v1.0:
    post:
      operationId: rbac_role_permission_group_grant_v1_0
      tags:
        - RBAC
      summary: Link an entire permission group to a role
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - role_id
                - permission_group_id
              properties:
                role_id:
                  type: string
                  maxLength: 36
                permission_group_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Permission group granted to role.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008039` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2008041` — No permission to manage this role / *Sem permissão para gerenciar esta role*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2008040` — Role not found / *Role não encontrada*
            - `2008042` — Permission group or role not found / *Grupo de permissão ou role não encontrado*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008039
          - 2008040
          - 2008041
          - 2008042
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/role/permission_group/revoke/v1.0:
    post:
      operationId: rbac_role_permission_group_revoke_v1_0
      tags:
        - RBAC
      summary: Unlink group from role
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - role_id
                - permission_group_id
              properties:
                role_id:
                  type: string
                  maxLength: 36
                permission_group_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Permission group revoked from role.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008039` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **Endpoint-specific:**

            - `2008041` — No permission to manage this role / *Sem permissão para gerenciar esta role*


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2008040` — Role not found / *Role não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008039
          - 2008040
          - 2008041
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/role/permission_group/list/v1.0:
    post:
      operationId: rbac_role_permission_group_list_v1_0
      tags:
        - RBAC
      summary: List groups of a role
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - role_id
              properties:
                role_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Permission groups assigned to role.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permission_groups:
                    type: array
                    items:
                      $ref: "#/components/schemas/PermissionGroup"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific: []
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission_group/permission/grant/v1.0:
    post:
      operationId: rbac_permission_group_permission_grant_v1_0
      tags:
        - RBAC
      summary: Assign bare permission to a group
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_group_id
                - permission_key
              properties:
                permission_group_id:
                  type: string
                  maxLength: 36
                permission_key:
                  type: string
                  maxLength: 150
      responses:
        "200":
          description: Permission added to group.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008043` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **Endpoint-specific:**
            - `2008044` — Permission key not found / *Chave de permissão não encontrada*

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008043
          - 2008044
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission_group/permission/revoke/v1.0:
    post:
      operationId: rbac_permission_group_permission_revoke_v1_0
      tags:
        - RBAC
      summary: Remove bare permission from a group
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_group_id
                - permission_key
              properties:
                permission_group_id:
                  type: string
                  maxLength: 36
                permission_key:
                  type: string
                  maxLength: 150
      responses:
        "200":
          description: Permission removed from group.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empty"
        "400":
          description: |-
            Bad Request

            **Endpoint-specific:**
            - `2008043` — Missing required fields / *Campos obrigatórios ausentes*

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*

            - `114` — Using the DRY RUN option with this endpoint is not allowed. All actions are effective / *O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific:
          - 2008043
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 114
          - 115
        dictionary_ref: "#/x-error-dictionary"
  /rbac/permission_group/permission/list/v1.0:
    post:
      operationId: rbac_permission_group_permission_list_v1_0
      tags:
        - RBAC
      summary: List permissions aggregated inside a group
      security:
        - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - permission_group_id
              properties:
                permission_group_id:
                  type: string
                  maxLength: 36
      responses:
        "200":
          description: Permissions in group.
          content:
            application/json:
              schema:
                type: object
                properties:
                  permissions:
                    type: array
                    items:
                      $ref: "#/components/schemas/PermissionInGroup"
        "400":
          description: |-
            Bad Request

            **API Global:**
            - `106` — The input is not a valid JSON / *O dado de entrada não é um JSON válido*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          description: >-
            Unauthorized


            **API Global:**

            - `103` — Your IP address is not allowed to call this API action / *Seu endereço de IP não pode chamar essa ação de API*

            - `104` — The 'Authorization' header required for authenticated actions was not found / *O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado*

            - `105` — Your session is invalid or has expired. Please login again / *Sua sessão não é valida ou expirou. Refaça o login*

            - `110` — One of the token codes that were provided is not valid or is not active / *Um dos códigos token que foram informados não é válido ou não está ativo*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: >-
            Forbidden


            **API Global:**

            - `113` — You do not have access to this action. Access denied on required ACLs / *Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ForbiddenResponse"
        "404":
          description: |-
            Not Found

            **API Global:**
            - `112` — The requested resource does not exists / *O recurso solicitado não existe*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: >-
            Method Not Allowed


            **API Global:**

            - `102` — This API endpoint does not support the used HTTP request method / *Esta terminação de API não suporta o método de requisição HTTP utilizado*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "406":
          description: >-
            Not Acceptable


            **API Global:**

            - `107` — Parameter errors has been found on the input data / *Erros de parâmetros foram encontrados no dado de entrada*

            - `111` — Generic parameter validation error by the API method / *Erro genérico na validação de parâmetros pelo método da API*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "429":
          description: |-
            Too Many Requests

            **API Global:**
            - `115` — Too many requests. Please try again later / *Muitas requisições. Tente novamente em instantes*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          description: |-
            Internal Server Error

            **API Global:**
            - `2` — Internal and unknown server error / *Erro interno e desconhecido do servidor*
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
      x-error-codes:
        endpoint_specific: []
        api_global:
          - 2
          - 102
          - 103
          - 104
          - 105
          - 106
          - 107
          - 110
          - 111
          - 112
          - 113
          - 115
        dictionary_ref: "#/x-error-dictionary"
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: UUID
      description: Session token (UUID) returned by login/authenticate
  responses:
    Unauthorized:
      description: Authentication failed or session expired
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Error"
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Error"
  schemas:
    Error:
      type: object
      description: Standard error envelope returned by this API for all non-2xx responses.
      properties:
        meta:
          type: object
          description: Response metadata.
          properties:
            code:
              type: integer
              description: Internal response code. Non-zero for errors.
            message:
              type: object
              properties:
                _method:
                  type: string
                  nullable: true
                  description: Extra message from the endpoint handler, if any.
                en-us:
                  type: string
                pt-br:
                  type: string
            id:
              type: string
              format: uuid
              description: Unique request trace ID.
            time:
              type: string
              format: date-time
            elapsed_time:
              type: number
              description: Processing time in milliseconds.
            action:
              type: string
              example: rbac/role/create/v1.0
            dry_run:
              type: boolean
        data:
          nullable: true
          description: Additional error context. `null` for most errors (see `ForbiddenResponse` for the 403 exception).
    AuthenticateResponse:
      type: object
      properties:
        session_id:
          type: string
          format: uuid
        session_status:
          type: string
          enum:
            - active
            - pending_upgrade
        identity_id:
          type: string
          format: uuid
        identity_name:
          type: string
        identity_email:
          type: string
    UpgradeResponse:
      type: object
      properties:
        session_id:
          type: string
          format: uuid
        session_status:
          type: string
          example: active
    ValidateResponse:
      type: object
      description: |
        Resposta de validação de sessão. Os memberships aqui são uma versão
        resumida (sem roles) — para roles completas, use /identity/memberships.
      properties:
        identity_id:
          type: string
          format: uuid
        identity_type:
          type: string
          enum:
            - person
            - server
        identity_name:
          type: string
        identity_email:
          type: string
        identity_language:
          type: string
          enum:
            - pt-BR
            - en-US
        identity_allowed_ips:
          type: array
          items:
            type: string
          nullable: true
        session_id:
          type: string
          format: uuid
        memberships:
          type: array
          items:
            type: object
            properties:
              tenant_id:
                type: string
                format: uuid
              actor_type:
                type: string
                enum:
                  - staff
                  - admin
                  - user
              membership_status:
                type: string
                enum:
                  - active
                  - suspended
                  - blocked
    Identity:
      type: object
      properties:
        identity_id:
          type: string
          format: uuid
        identity_type:
          type: string
          enum:
            - person
            - server
        identity_email:
          type: string
        identity_name:
          type: string
        identity_language:
          type: string
          enum:
            - pt-BR
            - en-US
        identity_status_id:
          type: integer
          description: 1=active, 2=suspended, 3=blocked, 4=deleted
        identity_tfa_required:
          type: boolean
        identity_allowed_ips:
          type: array
          items:
            type: string
          nullable: true
          description: Lista de IPs permitidos (null = sem restrição)
        identity_date_created:
          type: string
          format: date-time
        identity_date_changed:
          type: string
          format: date-time
          nullable: true
    Session:
      type: object
      description: A LIAM session token.
      properties:
        session_id:
          type: string
          format: uuid
        session_status:
          type: string
          enum:
            - active
            - pending_upgrade
            - revoked
            - expired
        identity_id:
          type: string
          format: uuid
        session_date_created:
          type: string
          format: date-time
        session_date_expire:
          type: string
          format: date-time
        session_date_last_activity:
          type: string
          format: date-time
          nullable: true
    Tenant:
      type: object
      properties:
        tenant_id:
          type: string
          format: uuid
        tenant_name:
          type: string
        tenant_type:
          type: string
          enum:
            - laniway
            - partner
            - customer
            - account
          description: |
            Tipo hierárquico do tenant:
            - laniway: tenant raiz (único)
            - partner: revendedor da Laniway
            - customer: cliente direto ou de parceiro
            - account: contrato/serviço dentro de um customer
        tenant_parent_id:
          type: string
          format: uuid
          nullable: true
          description: ID do tenant pai na hierarquia
        tenant_status:
          type: string
          enum:
            - active
            - suspended
            - blocked
        tenant_date_created:
          type: string
          format: date-time
    ServiceDefinition:
      type: object
      properties:
        service_id:
          type: string
        service_key:
          type: string
        service_name:
          type: string
        granted_at:
          type: string
          format: date-time
    Membership:
      type: object
      properties:
        tenant_id:
          type: string
          format: uuid
        tenant_name:
          type: string
          nullable: true
        actor_type:
          type: string
          enum:
            - staff
            - admin
            - user
          description: |
            Classificador rápido de nível de acesso:
            - staff: funcionário Laniway
            - admin: administrador do tenant (equivale a Master no LAM2)
            - user: usuário regular
        membership_status:
          type: string
          enum:
            - active
            - suspended
            - blocked
        roles:
          type: array
          description: Roles atribuídas neste tenant (presente em /identity/memberships, ausente em /token/validate)
          items:
            type: object
            properties:
              role_id:
                type: string
              role_name:
                type: string
              role_scope:
                type: string
                enum:
                  - global
                  - tenant
        membership_date_created:
          type: string
          format: date-time
          nullable: true
    ApplicationTokenCreated:
      type: object
      properties:
        application_token_id:
          type: string
        token_name:
          type: string
        token:
          type: string
          description: Raw token — shown only once
        expires_at:
          type: string
          format: date-time
          nullable: true
    ApplicationToken:
      type: object
      properties:
        application_token_id:
          type: string
        token_name:
          type: string
        is_active:
          type: boolean
        permissions:
          type: array
          items:
            type: string
        expires_at:
          type: string
          format: date-time
          nullable: true
        revoked_at:
          type: string
          format: date-time
          nullable: true
        created_at:
          type: string
          format: date-time
        last_used_at:
          type: string
          format: date-time
          nullable: true
    ApplicationTokenValidated:
      type: object
      properties:
        application_token_id:
          type: string
        identity_id:
          type: string
          format: uuid
        tenant_id:
          type: string
          format: uuid
        token_name:
          type: string
        permissions:
          type: array
          items:
            type: string
    SSOCustomization:
      type: object
      properties:
        sso_page_id:
          type: string
        tenant_id:
          type: string
          format: uuid
        hostname:
          type: string
        page_title:
          type: string
          nullable: true
        logo_url:
          type: string
          nullable: true
        background_color:
          type: string
          nullable: true
        primary_color:
          type: string
          nullable: true
        custom_css:
          type: string
          nullable: true
    ID1User:
      type: object
      description: Formato legado compatível com Laniway ID1
      properties:
        user_id:
          type: string
        user_email:
          type: string
        user_name:
          type: string
        user_language:
          type: string
        user_status:
          type: integer
        user_date_created:
          type: string
        user_date_changed:
          type: string
        user_2fa_required:
          type: boolean
        user_tenant_id:
          type: string
          nullable: true
        user_tenant_name:
          type: string
          nullable: true
        user_roles:
          type: array
          items:
            type: string
    Empty:
      type: object
      description: Empty response body — operation completed successfully.
      properties: {}
    Role:
      type: object
      description: A RBAC role that can be assigned to identities.
      properties:
        role_id:
          type: string
          format: uuid
        role_name:
          type: string
        role_scope:
          type: string
          enum:
            - global
            - tenant
          description: "`global` roles apply across all tenants; `tenant` roles are scoped to a specific tenant."
        tenant_id:
          type: string
          format: uuid
          nullable: true
          description: Present only when role_scope is `tenant`.
    RoleAssignment:
      type: object
      description: A role assignment linking an identity to a role within an optional tenant scope.
      properties:
        identity_id:
          type: string
          format: uuid
        role_id:
          type: string
          format: uuid
        role_name:
          type: string
        role_scope:
          type: string
          enum:
            - global
            - tenant
        tenant_id:
          type: string
          format: uuid
          nullable: true
    Permission:
      type: object
      description: A named permission key registered in the system.
      properties:
        permission_id:
          type: string
          format: uuid
        permission_key:
          type: string
          example: identity.admin.read
        permission_description:
          type: string
    PermissionItem:
      type: object
      description: A permission directly assigned to an identity, optionally scoped to a tenant.
      properties:
        permission_key:
          type: string
          example: identity.admin.read
        permission_description:
          type: string
        tenant_id:
          type: string
          format: uuid
          nullable: true
    PermissionGroup:
      type: object
      description: A named group that aggregates multiple permission keys.
      properties:
        permission_group_id:
          type: string
          format: uuid
        permission_group_name:
          type: string
    PermissionGroupAssignment:
      type: object
      description: A permission group assigned to an identity, optionally scoped to a tenant.
      properties:
        permission_group_id:
          type: string
          format: uuid
        permission_group_name:
          type: string
        tenant_id:
          type: string
          format: uuid
          nullable: true
    PermissionInGroup:
      type: object
      description: A permission key that belongs to a permission group.
      properties:
        permission_id:
          type: string
          format: uuid
        permission_key:
          type: string
          example: identity.admin.read
        permission_description:
          type: string
    ErrorMeta:
      type: object
      description: Metadata present in every API response.
      properties:
        code:
          type: integer
          description: Internal numeric response code. `0` = success; non-zero = error.
        message:
          type: object
          description: Bilingual message object.
          properties:
            _method:
              type: string
              nullable: true
              description: Extra free-text message added by the endpoint handler, if any.
            en-us:
              type: string
            pt-br:
              type: string
        id:
          type: string
          format: uuid
          description: Unique request trace ID.
        time:
          type: string
          format: date-time
        elapsed_time:
          type: number
          description: Processing time in milliseconds.
        action:
          type: string
          example: rbac/role/create/v1.0
        dry_run:
          type: boolean
    ErrorResponse:
      type: object
      description: Standard error envelope returned by this API for all non-2xx responses.
      properties:
        meta:
          $ref: "#/components/schemas/ErrorMeta"
        data:
          nullable: true
          description: Additional error context, if any. `null` for most errors.
    ForbiddenResponse:
      allOf:
        - $ref: "#/components/schemas/Error"
      description: >-
        403 Forbidden response. The `data` field differs depending on the denial layer:

        - **Gateway-level** (code `113` — lacking a permission declared in `broker_actions.json`): `data` is an array of objects listing every missing RBAC permission key.

        - **Application-level** (e.g. code `2003001`, `2008041`): `data` is `null`.
      example:
        meta:
          code: 113
          message:
            _method: null
            en-us: You do not have access to this action. Access denied on required ACLs
            pt-br: Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias
          id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
          time: 2026-03-28T12:00:00.000+00:00
          elapsed_time: 4
          action: rbac/role/create/v1.0
          dry_run: false
        data:
          - missing_permission: rbac.role.create
    MissingPermission:
      type: object
      description: One entry in `data` for gateway-level 403 responses.
      properties:
        missing_permission:
          type: string
          example: rbac.role.create
          description: The RBAC permission key that is required but was not held by the caller.
x-error-dictionary:
  api_global:
    "0":
      http: 200
      message:
        en-us: Operation performed successfully
        pt-br: Operação realizada com sucesso
    "1":
      http: 503
      message:
        en-us: No request for this action method execution was made
        pt-br: Não houve solicitação para execução do método da ação
    "2":
      http: 500
      message:
        en-us: Internal and unknown server error
        pt-br: Erro interno e desconhecido do servidor
    "3":
      http: 503
      message:
        en-us: A requested database by action does not exist on the application config
        pt-br: Uma base de dados solicitada pela ação não existe nas configurações da aplicação
    "4":
      http: 503
      message:
        en-us: Failed to setup a database connection or a transaction
        pt-br: Falha ao estabelecer uma conexão ou transação com a base de dados
    "5":
      http: 503
      message:
        en-us: Failed to commit/rollback or close a database transaction or connection. Some data might not be applied
        pt-br: Falha ao aplicar/desfazer ou fechar uma transação ou conexão com a base de dados. Alguns dados podem não ter sido
          aplicados
    "6":
      http: 501
      message:
        en-us: One or more requested action parameters has a type that cannot be validated by the request handler
        pt-br: Um ou mais parâmetros solicitados na ação possui um tipo que não pode ser validado pelo processador de
          requisições
    "7":
      http: 503
      message:
        en-us: Internal error on action validation - check actions JSON file and log records
        pt-br: Erro interno na validação de ação - revisar arquivo JSON de ações e o registro de eventos
    "8":
      http: 501
      message:
        en-us: The requested action exists in the actions JSON file but not in the endpoints mapping
        pt-br: A ação solicitada existe no arquivo JSON de ações porém não no mapeamento de terminações (endpoints)
    "9":
      http: 501
      message:
        en-us: One of the requested parameter validators returned an error in its execution
        pt-br: Um dos validadores de parâmetro solicitado retornou erro em sua execução
    "100":
      http: 404
      message:
        en-us: This application is not configured to handle this endpoint
        pt-br: Esta aplicação não tem rotas definidas para esta terminação
    "101":
      http: 202
      message:
        en-us: Performing CORS validation for the OPTIONS HTTP method
        pt-br: Executando validação CORS para método o HTTP OPTIONS
    "102":
      http: 405
      message:
        en-us: This API endpoint does not support the used HTTP request method
        pt-br: Esta terminação de API não suporta o método de requisição HTTP utilizado
    "103":
      http: 401
      message:
        en-us: Your IP address is not allowed to call this API action
        pt-br: Seu endereço de IP não pode chamar essa ação de API
    "104":
      http: 401
      message:
        en-us: The 'Authorization' header required for authenticated actions was not found
        pt-br: O cabeçalho 'Authorization' requerido para ações autenticadas não foi encontrado
    "105":
      http: 401
      message:
        en-us: Your session is invalid or has expired. Please login again
        pt-br: Sua sessão não é valida ou expirou. Refaça o login
    "106":
      http: 400
      message:
        en-us: The input is not a valid JSON
        pt-br: O dado de entrada não é um JSON válido
    "107":
      http: 406
      message:
        en-us: Parameter errors has been found on the input data
        pt-br: Erros de parâmetros foram encontrados no dado de entrada
    "110":
      http: 401
      message:
        en-us: One of the token codes that were provided is not valid or is not active
        pt-br: Um dos códigos token que foram informados não é válido ou não está ativo
    "111":
      http: 406
      message:
        en-us: Generic parameter validation error by the API method
        pt-br: Erro genérico na validação de parâmetros pelo método da API
    "112":
      http: 404
      message:
        en-us: The requested resource does not exists
        pt-br: O recurso solicitado não existe
    "113":
      http: 403
      message:
        en-us: You do not have access to this action. Access denied on required ACLs
        pt-br: Você não tem acesso a esta ação. Permissão negada nas ACLs necessárias
    "114":
      http: 406
      message:
        en-us: Using the DRY RUN option with this endpoint is not allowed. All actions are effective
        pt-br: O uso da opção DRY RUN com este endpoint não é permitida. Todas as ações são efetivas
    "115":
      http: 429
      message:
        en-us: Too many requests. Please try again later
        pt-br: Muitas requisições. Tente novamente em instantes
  endpoint_specific:
    "2000001":
      http: 401
      message:
        en-us: Invalid credentials
        pt-br: Credenciais inválidas
    "2000002":
      http: 401
      message:
        en-us: Account is suspended
        pt-br: Conta suspensa
    "2000003":
      http: 401
      message:
        en-us: Account is blocked
        pt-br: Conta bloqueada
    "2000004":
      http: 403
      message:
        en-us: Two-factor authentication required
        pt-br: Autenticação de dois fatores necessária
    "2000005":
      http: 401
      message:
        en-us: Invalid or expired 2FA code
        pt-br: Código 2FA inválido ou expirado
    "2000006":
      http: 401
      message:
        en-us: Invalid or already used recovery code
        pt-br: Código de recuperação inválido ou já utilizado
    "2000007":
      http: 401
      message:
        en-us: Session not found or expired
        pt-br: Sessão não encontrada ou expirada
    "2000008":
      http: 401
      message:
        en-us: Session is not pending upgrade
        pt-br: Sessão não está pendente de upgrade
    "2000009":
      http: 400
      message:
        en-us: Must provide either totp_code or recovery_code
        pt-br: Deve fornecer totp_code ou recovery_code
    "2000010":
      http: 401
      message:
        en-us: Account not found
        pt-br: Conta não encontrada
    "2001001":
      http: 404
      message:
        en-us: Identity not found
        pt-br: Identidade não encontrada
    "2001002":
      http: 400
      message:
        en-us: Current password is incorrect
        pt-br: Senha atual incorreta
    "2001003":
      http: 400
      message:
        en-us: New password does not meet strength requirements
        pt-br: Nova senha não atende aos requisitos mínimos de segurança
    "2001004":
      http: 409
      message:
        en-us: Password was already used recently
        pt-br: Senha já foi utilizada recentemente
    "2001005":
      http: 400
      message:
        en-us: Invalid TOTP code for device registration
        pt-br: Código TOTP inválido para registro do dispositivo
    "2001006":
      http: 404
      message:
        en-us: TOTP device not found
        pt-br: Dispositivo TOTP não encontrado
    "2001007":
      http: 409
      message:
        en-us: Cannot remove the last 2FA method when 2FA is required
        pt-br: Não é possível remover o último método 2FA quando 2FA é obrigatório
    "2001010":
      http: 409
      message:
        en-us: An identity with this email already exists
        pt-br: Já existe uma identidade com este e-mail
    "2001011":
      http: 409
      message:
        en-us: Identity is already removed
        pt-br: Identidade já foi removida
    "2001012":
      http: 400
      message:
        en-us: identity_allowed_ips must be a JSON array of CIDR strings
        pt-br: identity_allowed_ips deve ser um array JSON de strings CIDR
    "2001013":
      http: 403
      message:
        en-us: This identity is protected and cannot be modified or removed
        pt-br: Esta identidade é protegida e não pode ser modificada ou removida
    "2002001":
      http: 404
      message:
        en-us: Tenant not found
        pt-br: Tenant não encontrado
    "2002002":
      http: 404
      message:
        en-us: Service not found or not active for this tenant
        pt-br: Serviço não encontrado ou inativo para este tenant
    "2003001":
      http: 403
      message:
        en-us: Permission denied
        pt-br: Permissão negada
    "2003002":
      http: 404
      message:
        en-us: Permission not found
        pt-br: Permissão não encontrada
    "2004001":
      http: 404
      message:
        en-us: Application token not found
        pt-br: Application token não encontrado
    "2004002":
      http: 401
      message:
        en-us: Application token is revoked or expired
        pt-br: Application token revogado ou expirado
    "2004003":
      http: 404
      message:
        en-us: Permission not found, or it was not assigned to this token
        pt-br: Permissão não encontrada, ou não estava atribuída ao token
    "2004004":
      http: 409
      message:
        en-us: Permission is already assigned to this application token
        pt-br: A permissão já está atribuída a este application token
    "2004005":
      http: 422
      message:
        en-us: Application token is not active — permissions cannot be modified
        pt-br: Application token não está ativo — permissões não podem ser modificadas
    "2005001":
      http: 400
      message:
        en-us: Tenant ID is required for tenant scope roles
        pt-br: ID do Tenant é obrigatório para roles de escopo tenant
    "2005002":
      http: 404
      message:
        en-us: Role not found
        pt-br: Role não encontrada
    "2006001":
      http: 404
      message:
        en-us: SSO customization not found for this hostname
        pt-br: Customização SSO não encontrada para este hostname
    "2008034":
      http: 400
      message:
        en-us: Missing required fields
        pt-br: Campos obrigatórios ausentes
    "2008035":
      http: 409
      message:
        en-us: Permission group already exists
        pt-br: Grupo de permissão já existe
    "2008036":
      http: 404
      message:
        en-us: Permission group not found
        pt-br: Grupo de permissão não encontrado
    "2008037":
      http: 400
      message:
        en-us: Missing required fields
        pt-br: Campos obrigatórios ausentes
    "2008038":
      http: 409
      message:
        en-us: Permission already exists
        pt-br: Permissão já existe
    "2008039":
      http: 400
      message:
        en-us: Missing required fields
        pt-br: Campos obrigatórios ausentes
    "2008040":
      http: 404
      message:
        en-us: Role not found
        pt-br: Role não encontrada
    "2008041":
      http: 403
      message:
        en-us: No permission to manage this role
        pt-br: Sem permissão para gerenciar esta role
    "2008042":
      http: 404
      message:
        en-us: Permission group or role not found
        pt-br: Grupo de permissão ou role não encontrado
    "2008043":
      http: 400
      message:
        en-us: Missing required fields
        pt-br: Campos obrigatórios ausentes
    "2008044":
      http: 404
      message:
        en-us: Permission key not found
        pt-br: Chave de permissão não encontrada
  notes:
    en-US: Operation-level errors are listed in each endpoint x-error-codes extension.
    pt-BR: Os erros por operacao estao listados na extensao x-error-codes de cada endpoint.
