{
  "openapi": "3.1.0",
  "info": {
    "title": "Presente API",
    "version": "1",
    "description": "Reference for the endpoints, parameters, models and errors of the Presente API. Each route states who may call it and its rate limit. The routes are the same ones the app uses: there is no separate API for integrations, and internal routes carry no stability guarantee. For the concepts (authentication, permissions, paging, errors), start with the [integration guide](/en/integrar/)."
  },
  "servers": [
    {
      "url": "https://app.presente.app.br/api",
      "description": "Produção"
    },
    {
      "url": "https://demo.presente.app.br/api",
      "description": "Demonstração (dados fictícios)"
    }
  ],
  "security": [
    {
      "bearer": []
    }
  ],
  "paths": {
    "/auditoria": {
      "get": {
        "operationId": "Auditoria_lista",
        "tags": [
          "Auditoria"
        ],
        "parameters": [
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "acao",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z0-9_.]{0,59}$"
            }
          },
          {
            "name": "instituicaoId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "atorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fuso",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 200,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditoriaPagina"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR"
        },
        "summary": "List the institution's audit events"
      }
    },
    "/auditoria/estatisticas": {
      "get": {
        "operationId": "Auditoria_estatisticas",
        "tags": [
          "Auditoria"
        ],
        "parameters": [
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "acao",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z0-9_.]{0,59}$"
            }
          },
          {
            "name": "instituicaoId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "atorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fuso",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditoriaEstatisticas"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR"
        },
        "summary": "Audit event statistics"
      }
    },
    "/auditoria/exportar": {
      "get": {
        "operationId": "Auditoria_exporta",
        "tags": [
          "Auditoria"
        ],
        "parameters": [
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "acao",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z0-9_.]{0,59}$"
            }
          },
          {
            "name": "instituicaoId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "atorId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fuso",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "summary": "Export the audit log as CSV"
      }
    },
    "/auth/aceitar-convite": {
      "post": {
        "operationId": "Auth_aceitarConvite",
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AceitarConviteInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sessao"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Accept the invitation and set the password"
      }
    },
    "/auth/esqueci-senha": {
      "post": {
        "operationId": "Auth_esqueciSenha",
        "tags": [
          "Auth"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EsqueciSenhaInput"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "OK"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 5,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Request the password recovery email",
        "description": "Always answers the same way, whether or not the email exists, so as not to reveal who is registered."
      }
    },
    "/auth/login": {
      "post": {
        "operationId": "Auth_login",
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sessao"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 20,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Sign in with email and password",
        "description": "Returns `accessToken` (valid for 15 minutes) and `refreshToken` (single use, up to 30 days). Five consecutive failures within 15 minutes block the attempt with 429 and `retryAfterSeg`."
      }
    },
    "/auth/logout": {
      "post": {
        "operationId": "Auth_logout",
        "tags": [
          "Auth"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogoutInput"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 60,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "End the session of a refresh token"
      }
    },
    "/auth/logout-todas": {
      "post": {
        "operationId": "Auth_logoutTodas",
        "tags": [
          "Auth"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "End all of the account's sessions"
      }
    },
    "/auth/me": {
      "get": {
        "operationId": "Auth_me",
        "tags": [
          "Auth"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Me"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Signed-in person's data and bindings"
      }
    },
    "/auth/primeiro-acesso/codigo": {
      "post": {
        "operationId": "Auth_primeiroAcessoCodigo",
        "tags": [
          "Auth"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrimeiroAcessoSolicitarInput"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "OK"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 5,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Request the first-access code"
      }
    },
    "/auth/primeiro-acesso/confirmar": {
      "post": {
        "operationId": "Auth_primeiroAcessoConfirmar",
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrimeiroAcessoConfirmarInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sessao"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Confirm first access with the code"
      }
    },
    "/auth/redefinir-senha": {
      "post": {
        "operationId": "Auth_redefinirSenha",
        "tags": [
          "Auth"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RedefinirSenhaInput"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Reset the password with the emailed token"
      }
    },
    "/auth/refresh": {
      "post": {
        "operationId": "Auth_refresh",
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sessao"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 60,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Exchange the refresh token for a new session",
        "description": "The refresh token is single use: reusing one that was already used ends all of the account's sessions. Always store the new pair returned."
      }
    },
    "/auth/trocar-senha": {
      "post": {
        "operationId": "Auth_trocarSenha",
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "user-agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrocarSenhaInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sessao"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Change your own password"
      }
    },
    "/contato": {
      "post": {
        "operationId": "Contato_enviar",
        "tags": [
          "Contato"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContatoSite"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "OK"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 3,
          "janelaSeg": 600
        },
        "security": [],
        "summary": "Send a message through the contact form"
      }
    },
    "/disciplinas/{disciplinaId}": {
      "get": {
        "operationId": "Disciplinas_le",
        "tags": [
          "Disciplinas"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisciplinaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Read a discipline"
      },
      "patch": {
        "operationId": "Disciplinas_atualiza",
        "tags": [
          "Disciplinas"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisciplinaAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisciplinaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Update a discipline"
      }
    },
    "/disciplinas/{disciplinaId}/atividades-profissionais": {
      "get": {
        "operationId": "Catalogo_lista",
        "tags": [
          "Catalogo"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadesProfissionais"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "List the discipline's activity catalog"
      },
      "post": {
        "operationId": "Catalogo_cria",
        "tags": [
          "Catalogo"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AtividadeProfissionalCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadeProfissionalDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Create an item in the discipline catalog"
      }
    },
    "/disciplinas/{disciplinaId}/atividades-profissionais/{itemId}": {
      "patch": {
        "operationId": "Catalogo_atualiza",
        "tags": [
          "Catalogo"
        ],
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AtividadeProfissionalAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadeProfissionalDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Update a catalog item"
      }
    },
    "/disciplinas/{disciplinaId}/atividades-profissionais/{itemId}/mesclar": {
      "post": {
        "operationId": "Catalogo_mescla",
        "tags": [
          "Catalogo"
        ],
        "parameters": [
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AtividadeProfissionalMesclar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadeProfissionalDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Merge a catalog item into another"
      }
    },
    "/disciplinas/{disciplinaId}/criterios": {
      "get": {
        "operationId": "Criterios_lista",
        "tags": [
          "Criterios"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Criterios"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "List the discipline's assessment criteria"
      },
      "post": {
        "operationId": "Criterios_cria",
        "tags": [
          "Criterios"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CriterioCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CriterioDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Create an assessment criterion"
      }
    },
    "/disciplinas/{disciplinaId}/criterios/{criterioId}": {
      "patch": {
        "operationId": "Criterios_atualiza",
        "tags": [
          "Criterios"
        ],
        "parameters": [
          {
            "name": "criterioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CriterioAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CriterioDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Update an assessment criterion"
      }
    },
    "/disciplinas/{disciplinaId}/turmas": {
      "get": {
        "operationId": "Turmas_lista",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TurmaDto"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER"
        },
        "summary": "List a discipline's classes"
      },
      "post": {
        "operationId": "Turmas_cria",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "disciplinaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurmaCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TurmaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "disciplinaId": "params.disciplinaId"
          }
        },
        "summary": "Create a class in the discipline",
        "description": "Not idempotent: a class has no unique identifier, so repeating the call creates another class."
      }
    },
    "/evolucao/alunos": {
      "get": {
        "operationId": "Evolucao_alunos",
        "tags": [
          "Evolucao"
        ],
        "parameters": [
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvolucaoAlunos"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 300,
          "janelaSeg": 60
        },
        "summary": "List students with the progress the person can see"
      }
    },
    "/feedback": {
      "post": {
        "operationId": "Perfil_feedback",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SusRespostaInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SusEnviada"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "summary": "Submit the satisfaction survey answer"
      }
    },
    "/feedback/resumo": {
      "get": {
        "operationId": "Perfil_resumoFeedback",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SusResumo"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "PLATAFORMA"
        },
        "summary": "Satisfaction survey summary"
      }
    },
    "/health": {
      "get": {
        "operationId": "Health_get",
        "tags": [
          "Health"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Health"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "security": [],
        "summary": "Check that the API is up",
        "description": "Needs no sign-in. Use it to monitor whether the service responds."
      }
    },
    "/instituicoes": {
      "get": {
        "operationId": "Instituicoes_lista",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/InstituicaoDto"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER"
        },
        "summary": "List the institutions the person can see"
      },
      "post": {
        "operationId": "Instituicoes_cria",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstituicaoCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstituicaoDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "PLATAFORMA"
        },
        "summary": "Create an institution and invite its first curator"
      }
    },
    "/instituicoes/{instituicaoId}": {
      "get": {
        "operationId": "Instituicoes_le",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstituicaoDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Read an institution"
      },
      "patch": {
        "operationId": "Instituicoes_atualiza",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstituicaoAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstituicaoDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Update an institution"
      }
    },
    "/instituicoes/{instituicaoId}/disciplinas": {
      "get": {
        "operationId": "Disciplinas_lista",
        "tags": [
          "Disciplinas"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/DisciplinaDto"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER"
        },
        "summary": "List an institution's disciplines"
      },
      "post": {
        "operationId": "Disciplinas_cria",
        "tags": [
          "Disciplinas"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisciplinaCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisciplinaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Create a discipline in the institution",
        "description": "`sigla` and `nome` are unique within the institution: repeating returns 409 `taken`."
      }
    },
    "/instituicoes/{instituicaoId}/importacoes/pessoas": {
      "post": {
        "operationId": "Importacao_pessoas",
        "tags": [
          "Importacao"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportacaoEntrada"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportacaoRelatorio"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "x-presente-limite": {
          "max": 20,
          "janelaSeg": 60
        },
        "summary": "Import people (staff and students) by CSV",
        "description": "The CSV is sent as text in the `csv` field (max 500 rows and 90,000 characters). Use `modo: simular` to see the report before `aplicar`. Importing is idempotent: someone who already exists comes back as `JA_EXISTE`."
      }
    },
    "/instituicoes/{instituicaoId}/parametros": {
      "get": {
        "operationId": "Parametros_leInstituicao",
        "tags": [
          "Parametros"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParametrosDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Read the institution's parameters"
      },
      "put": {
        "operationId": "Parametros_atualizaInstituicao",
        "tags": [
          "Parametros"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParametrosInstituicaoAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParametrosDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Update the institution's parameters"
      }
    },
    "/instituicoes/{instituicaoId}/politica-privacidade": {
      "get": {
        "operationId": "Instituicoes_politicaVigente",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoliticaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Read the institution's current privacy policy"
      },
      "put": {
        "operationId": "Instituicoes_publicaPolitica",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermoPublicar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoliticaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Publish a new version of the privacy policy"
      }
    },
    "/instituicoes/{instituicaoId}/termo": {
      "get": {
        "operationId": "Instituicoes_termoVigente",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermoDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Read the institution's current terms of use"
      },
      "put": {
        "operationId": "Instituicoes_publicaTermo",
        "tags": [
          "Instituicoes"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermoPublicar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermoDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Publish a new version of the terms of use"
      }
    },
    "/instituicoes/{instituicaoId}/usuarios": {
      "get": {
        "operationId": "Usuarios_lista",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "tipo",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "equipe",
                "alunos"
              ]
            }
          },
          {
            "name": "papel",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CURADOR",
                "PRECEPTOR",
                "COORDENADOR",
                "PROFESSOR",
                "AUXILIAR",
                "ALUNO"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CONVIDADO",
                "ATIVO",
                "SUSPENSO"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsuarioLista"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "List the institution's people"
      },
      "post": {
        "operationId": "Usuarios_criaEquipe",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EquipeCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsuarioDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "x-presente-limite": {
          "max": 120,
          "janelaSeg": 60
        },
        "summary": "Create a staff member and bind them"
      }
    },
    "/instituicoes/{instituicaoId}/usuarios/{usuarioId}": {
      "get": {
        "operationId": "Usuarios_le",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "usuarioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsuarioDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Read a person of the institution"
      },
      "patch": {
        "operationId": "Usuarios_atualiza",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "usuarioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UsuarioAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsuarioDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Update a person of the institution"
      }
    },
    "/instituicoes/{instituicaoId}/usuarios/{usuarioId}/convite": {
      "post": {
        "operationId": "Usuarios_reenviaConvite",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "usuarioId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "x-presente-limite": {
          "max": 30,
          "janelaSeg": 60
        },
        "summary": "Resend the invitation email"
      }
    },
    "/instituicoes/{instituicaoId}/vinculos": {
      "get": {
        "operationId": "Usuarios_listaVinculos",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "usuarioId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VinculoItem"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "List the institution's bindings"
      },
      "post": {
        "operationId": "Usuarios_criaVinculo",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VinculoCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VinculoItem"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "x-presente-limite": {
          "max": 120,
          "janelaSeg": 60
        },
        "summary": "Create a binding (role and scope) for a person"
      }
    },
    "/instituicoes/{instituicaoId}/vinculos/{vinculoId}": {
      "patch": {
        "operationId": "Usuarios_atualizaVinculo",
        "tags": [
          "Usuarios"
        ],
        "parameters": [
          {
            "name": "vinculoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "instituicaoId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VinculoAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VinculoItem"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "ADMINISTRAR",
          "alvo": {
            "instituicaoId": "params.instituicaoId"
          }
        },
        "summary": "Update a binding"
      }
    },
    "/matriculas/{matriculaId}/evolucao": {
      "get": {
        "operationId": "Evolucao_daMatricula",
        "tags": [
          "Evolucao"
        ],
        "parameters": [
          {
            "name": "matriculaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvolucaoAluno"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 300,
          "janelaSeg": 60
        },
        "summary": "A student's progress (by enrollment)"
      }
    },
    "/me": {
      "delete": {
        "operationId": "Conta_exclui",
        "tags": [
          "Conta"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExcluirContaInput"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "summary": "Delete your own account (confirm with the password)"
      },
      "patch": {
        "operationId": "Perfil_atualiza",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PerfilAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Me"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Update your own profile"
      }
    },
    "/me/atividades": {
      "get": {
        "operationId": "Me_atividades",
        "tags": [
          "Me"
        ],
        "parameters": [
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 100,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MinhasAtividades"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "List the person's activities as a student"
      }
    },
    "/me/atividades/{atividadeId}/presenca": {
      "post": {
        "operationId": "PresencaAluno_solicita",
        "tags": [
          "PresencaAluno"
        ],
        "parameters": [
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PresencaSolicitar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresencaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 600,
          "janelaSeg": 60
        },
        "summary": "Request attendance for an activity"
      }
    },
    "/me/atividades/{atividadeId}/presenca/relato": {
      "put": {
        "operationId": "PresencaAluno_editaRelato",
        "tags": [
          "PresencaAluno"
        ],
        "parameters": [
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RelatoEditar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresencaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 600,
          "janelaSeg": 60
        },
        "summary": "Edit the account of your own attendance"
      }
    },
    "/me/atividades/{atividadeId}/qr": {
      "get": {
        "operationId": "PresencaAluno_qr",
        "tags": [
          "PresencaAluno"
        ],
        "parameters": [
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QrToken"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 600,
          "janelaSeg": 60
        },
        "summary": "Generate the activity QR for the student"
      }
    },
    "/me/cockpit": {
      "get": {
        "operationId": "Me_inicio",
        "tags": [
          "Me"
        ],
        "parameters": [
          {
            "name": "instituicaoId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cockpit"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "The person's home (student, assessor and management)"
      }
    },
    "/me/conversas": {
      "get": {
        "operationId": "Conversa_minhas",
        "tags": [
          "Conversa"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MinhasConversas"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "List the person's class conversations"
      }
    },
    "/me/dispositivos": {
      "post": {
        "operationId": "Dispositivos_registra",
        "tags": [
          "Dispositivos"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DispositivoRegistrar"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 20,
          "janelaSeg": 60
        },
        "summary": "Register a device to receive push"
      },
      "delete": {
        "operationId": "Dispositivos_remove",
        "tags": [
          "Dispositivos"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DispositivoRemover"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 20,
          "janelaSeg": 60
        },
        "summary": "Remove a device from push"
      }
    },
    "/me/estatisticas": {
      "get": {
        "operationId": "Me_estatisticas",
        "tags": [
          "Me"
        ],
        "parameters": [
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "turmaId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaAtiva",
            "in": "query",
            "required": false,
            "schema": {
              "default": "true",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Estatisticas"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "The person's attendance statistics"
      }
    },
    "/me/evolucao": {
      "get": {
        "operationId": "Evolucao_minha",
        "tags": [
          "Evolucao"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EvolucaoAluno"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 300,
          "janelaSeg": 60
        },
        "summary": "Your own progress by discipline"
      }
    },
    "/me/foto": {
      "get": {
        "operationId": "Perfil_foto",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Download your own profile photo"
      },
      "put": {
        "operationId": "Perfil_salvaFoto",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "description": "image/jpeg, image/png ou image/webp",
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerfilDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 20,
          "janelaSeg": 60
        },
        "summary": "Upload your own profile photo"
      },
      "delete": {
        "operationId": "Perfil_removeFoto",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Remove your own profile photo"
      }
    },
    "/me/notificacoes": {
      "get": {
        "operationId": "Notificacoes_lista",
        "tags": [
          "Notificacoes"
        ],
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 200,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          },
          {
            "name": "naoLidas",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "0",
                "1"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificacoesPagina"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "List the person's notifications"
      }
    },
    "/me/notificacoes/contador": {
      "get": {
        "operationId": "Notificacoes_contador",
        "tags": [
          "Notificacoes"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContadorNotificacoes"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Count of unread notifications"
      }
    },
    "/me/notificacoes/lidas": {
      "post": {
        "operationId": "Notificacoes_lidas",
        "tags": [
          "Notificacoes"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarcarLidas"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContadorNotificacoes"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 60,
          "janelaSeg": 60
        },
        "summary": "Mark notifications as read"
      }
    },
    "/me/notificacoes/preferencias": {
      "get": {
        "operationId": "Notificacoes_preferencias",
        "tags": [
          "Notificacoes"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preferencias"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Read notification preferences"
      },
      "put": {
        "operationId": "Notificacoes_atualiza",
        "tags": [
          "Notificacoes"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreferenciasAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Preferencias"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 30,
          "janelaSeg": 60
        },
        "summary": "Update notification preferences"
      }
    },
    "/me/painel": {
      "get": {
        "operationId": "Me_painel",
        "tags": [
          "Me"
        ],
        "parameters": [
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "instituicaoId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "disciplinaId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "alunoId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "estados",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "turmaAtiva",
            "in": "query",
            "required": false,
            "schema": {
              "default": "true",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 300,
              "type": "integer",
              "minimum": 1,
              "maximum": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Painel"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "The person's activity panel, with filters"
      }
    },
    "/me/perfil": {
      "get": {
        "operationId": "Perfil_perfilCompleto",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerfilDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Read your own full profile"
      }
    },
    "/me/sessoes": {
      "get": {
        "operationId": "Perfil_sessoes",
        "tags": [
          "Perfil"
        ],
        "parameters": [
          {
            "name": "x-refresh-token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessoesAtivas"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "List the person's active connections"
      }
    },
    "/me/sessoes/{id}": {
      "delete": {
        "operationId": "Perfil_encerraSessao",
        "tags": [
          "Perfil"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "End one connection"
      }
    },
    "/me/sessoes/encerrar-outras": {
      "post": {
        "operationId": "Perfil_encerraOutras",
        "tags": [
          "Perfil"
        ],
        "parameters": [
          {
            "name": "x-refresh-token",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EncerrarOutrasResultado"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "summary": "End all other connections"
      }
    },
    "/me/termos": {
      "get": {
        "operationId": "Perfil_termos",
        "tags": [
          "Perfil"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermosDosMeus"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Current terms and policies of my institutions"
      }
    },
    "/me/turmas/{turmaId}/autoavaliacao-final": {
      "get": {
        "operationId": "Autoavaliacao_minha",
        "tags": [
          "Autoavaliacao"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutoavaliacaoDoAluno"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 600,
          "janelaSeg": 60
        },
        "summary": "Read your own final self-assessment for the class"
      },
      "put": {
        "operationId": "Autoavaliacao_grava",
        "tags": [
          "Autoavaliacao"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutoavaliacaoEscrever"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutoavaliacaoDoAluno"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 120,
          "janelaSeg": 60
        },
        "summary": "Save your final self-assessment for the class"
      }
    },
    "/me/turmas/{turmaId}/avaliacao": {
      "get": {
        "operationId": "Avaliacao_minha",
        "tags": [
          "Avaliacao"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvaliacaoMatricula"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 600,
          "janelaSeg": 60
        },
        "summary": "My grades and assessment in a class"
      }
    },
    "/me/turmas/{turmaId}/feedback-final": {
      "get": {
        "operationId": "Feedback_meu",
        "tags": [
          "Feedback"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackFinalDoAluno"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 600,
          "janelaSeg": 60
        },
        "summary": "My final feedback in a class"
      }
    },
    "/parametros": {
      "get": {
        "operationId": "Parametros_lePlataforma",
        "tags": [
          "Parametros"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParametrosDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "PLATAFORMA"
        },
        "summary": "Read the platform parameters"
      },
      "put": {
        "operationId": "Parametros_atualizaPlataforma",
        "tags": [
          "Parametros"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParametrosPlataformaAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ParametrosDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "PLATAFORMA"
        },
        "summary": "Update the platform parameters"
      }
    },
    "/presencas/pendentes": {
      "get": {
        "operationId": "PresencaAvaliador_filaAgregada",
        "tags": [
          "PresencaAvaliador"
        ],
        "parameters": [
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilaAvaliacao"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR"
        },
        "summary": "Pending requests across all classes"
      }
    },
    "/presencas/qr": {
      "post": {
        "operationId": "PresencaAvaliador_resolveQr",
        "tags": [
          "PresencaAvaliador"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QrResolver"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QrResolvido"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 600,
          "janelaSeg": 60
        },
        "summary": "Resolve a scanned QR and open the attendance request"
      }
    },
    "/publico/excluir-conta": {
      "post": {
        "operationId": "Conta_solicita",
        "tags": [
          "Conta"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExcluirContaSolicitarInput"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "OK"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 5,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Request account deletion on the web (step 1)",
        "description": "Needs no sign-in. Always answers the same way, whether or not the account exists, so as not to reveal who is registered."
      }
    },
    "/publico/excluir-conta/confirmar": {
      "post": {
        "operationId": "Conta_confirma",
        "tags": [
          "Conta"
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExcluirContaConfirmarInput"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Confirm account deletion via the link (step 2)"
      }
    },
    "/publico/privacidade/{sigla}": {
      "get": {
        "operationId": "PoliticaPublica_politica",
        "tags": [
          "PoliticaPublica"
        ],
        "parameters": [
          {
            "name": "sigla",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PoliticaPublica"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 60,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "An institution's public privacy policy"
      }
    },
    "/publico/push-web": {
      "get": {
        "operationId": "PushWeb_config",
        "tags": [
          "PushWeb"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PushWebConfig"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "publica"
        },
        "x-presente-limite": {
          "max": 60,
          "janelaSeg": 60
        },
        "security": [],
        "summary": "Public browser push configuration"
      }
    },
    "/turmas": {
      "get": {
        "operationId": "Turmas_listaTodas",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "disciplinaId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TurmaDto"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER"
        },
        "summary": "List the classes the person can see"
      }
    },
    "/turmas/{turmaId}": {
      "get": {
        "operationId": "Turmas_le",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TurmaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Read a class"
      },
      "patch": {
        "operationId": "Turmas_atualiza",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurmaAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TurmaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Update a class"
      }
    },
    "/turmas/{turmaId}/atividades": {
      "get": {
        "operationId": "Atividades_lista",
        "tags": [
          "Atividades"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AtividadeDto"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "List a class's activities"
      },
      "post": {
        "operationId": "Atividades_cria",
        "tags": [
          "Atividades"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AtividadeCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadeDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Create an activity in the class"
      }
    },
    "/turmas/{turmaId}/atividades-profissionais": {
      "get": {
        "operationId": "Catalogo_daTurma",
        "tags": [
          "Catalogo"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadesProfissionais"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Activity catalog of the class's discipline"
      }
    },
    "/turmas/{turmaId}/atividades/{atividadeId}": {
      "get": {
        "operationId": "Atividades_le",
        "tags": [
          "Atividades"
        ],
        "parameters": [
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadeDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Read an activity"
      },
      "delete": {
        "operationId": "Atividades_remove",
        "tags": [
          "Atividades"
        ],
        "parameters": [
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Sem conteúdo"
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Remove an activity (if it has no attendance)",
        "description": "Only possible while the activity has no attendance; otherwise cancel it instead of removing it."
      },
      "patch": {
        "operationId": "Atividades_atualiza",
        "tags": [
          "Atividades"
        ],
        "parameters": [
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AtividadeAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AtividadeDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Update an activity"
      }
    },
    "/turmas/{turmaId}/atividades/{atividadeId}/matriculas/{matriculaId}/presenca": {
      "put": {
        "operationId": "PresencaAvaliador_avalia",
        "tags": [
          "PresencaAvaliador"
        ],
        "parameters": [
          {
            "name": "matriculaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AvaliarPresenca"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresencaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Confirm or reject a student's attendance"
      }
    },
    "/turmas/{turmaId}/atividades/{atividadeId}/presencas": {
      "get": {
        "operationId": "PresencaAvaliador_daAtividade",
        "tags": [
          "PresencaAvaliador"
        ],
        "parameters": [
          {
            "name": "atividadeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PresencaLinhas"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "List an activity's attendance requests"
      }
    },
    "/turmas/{turmaId}/auxiliares": {
      "get": {
        "operationId": "Turmas_auxiliares",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VinculoItem"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "List the class's assistants"
      }
    },
    "/turmas/{turmaId}/conversa": {
      "get": {
        "operationId": "Conversa_lista",
        "tags": [
          "Conversa"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "antes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 200,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "depois",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 200,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "alteradasDesde",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversaPagina"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "List the class conversation's messages"
      }
    },
    "/turmas/{turmaId}/conversa/mensagens": {
      "post": {
        "operationId": "Conversa_envia",
        "tags": [
          "Conversa"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MensagemTexto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 60,
          "janelaSeg": 60
        },
        "summary": "Send a message to the class conversation"
      }
    },
    "/turmas/{turmaId}/conversa/mensagens/{mensagemId}": {
      "delete": {
        "operationId": "Conversa_remove",
        "tags": [
          "Conversa"
        ],
        "parameters": [
          {
            "name": "mensagemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "summary": "Remove a message"
      },
      "patch": {
        "operationId": "Conversa_edita",
        "tags": [
          "Conversa"
        ],
        "parameters": [
          {
            "name": "mensagemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MensagemTexto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MensagemDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "autenticada"
        },
        "x-presente-limite": {
          "max": 60,
          "janelaSeg": 60
        },
        "summary": "Edit a message"
      }
    },
    "/turmas/{turmaId}/criterios": {
      "get": {
        "operationId": "Criterios_daTurma",
        "tags": [
          "Criterios"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Criterios"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Assessment criteria of the class's discipline"
      }
    },
    "/turmas/{turmaId}/estatisticas/exportar": {
      "get": {
        "operationId": "EstatisticasTurma_exporta",
        "tags": [
          "EstatisticasTurma"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "x-presente-limite": {
          "max": 10,
          "janelaSeg": 60
        },
        "summary": "Export the class statistics as CSV"
      }
    },
    "/turmas/{turmaId}/feedback-final": {
      "get": {
        "operationId": "Feedback_daTurma",
        "tags": [
          "Feedback"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackFinalTurma"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "List the class's final feedback, by student"
      }
    },
    "/turmas/{turmaId}/frequencia": {
      "get": {
        "operationId": "Frequencia_daTurma",
        "tags": [
          "Frequencia"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "de",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "ate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FrequenciaTurma"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "The class attendance grid"
      }
    },
    "/turmas/{turmaId}/importacoes/alunos": {
      "post": {
        "operationId": "Importacao_alunos",
        "tags": [
          "Importacao"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportacaoEntrada"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportacaoRelatorio"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "x-presente-limite": {
          "max": 20,
          "janelaSeg": 60
        },
        "summary": "Import the class's students by CSV",
        "description": "The CSV is sent as text in the `csv` field (max 500 rows and 90,000 characters). Use `modo: simular` before `aplicar`. Repeating the import does not duplicate enrollments."
      }
    },
    "/turmas/{turmaId}/importacoes/atividades": {
      "post": {
        "operationId": "Importacao_atividades",
        "tags": [
          "Importacao"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportacaoEntrada"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportacaoRelatorio"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "x-presente-limite": {
          "max": 20,
          "janelaSeg": 60
        },
        "summary": "Import the class's activities by CSV",
        "description": "An activity is recognised by date, start time and description; importing only creates, never changes or deletes. Use `modo: simular` before `aplicar`."
      }
    },
    "/turmas/{turmaId}/matriculas": {
      "get": {
        "operationId": "Matriculas_lista",
        "tags": [
          "Matriculas"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "busca",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "limite",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "deslocamento",
            "in": "query",
            "required": false,
            "schema": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 100000
            }
          },
          {
            "name": "inativos",
            "in": "query",
            "required": false,
            "schema": {
              "default": "false",
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MatriculaDto"
                      }
                    },
                    "total": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "items",
                    "total"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "List the class's enrollments"
      },
      "post": {
        "operationId": "Matriculas_cria",
        "tags": [
          "Matriculas"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatriculaCriar"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatriculaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "x-presente-limite": {
          "max": 120,
          "janelaSeg": 60
        },
        "summary": "Enroll a student in the class",
        "description": "Provide `usuarioId` (existing student) or `email` and `nome` (new account, with an invitation by email)."
      }
    },
    "/turmas/{turmaId}/matriculas/{matriculaId}": {
      "patch": {
        "operationId": "Matriculas_atualiza",
        "tags": [
          "Matriculas"
        ],
        "parameters": [
          {
            "name": "matriculaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MatriculaAtualizar"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatriculaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Activate or deactivate an enrollment",
        "description": "Deactivating an enrollment only toggles `ativo`: nothing is deleted, and reactivating puts the student back in the class."
      }
    },
    "/turmas/{turmaId}/matriculas/{matriculaId}/avaliacao": {
      "get": {
        "operationId": "Avaliacao_daMatricula",
        "tags": [
          "Avaliacao"
        ],
        "parameters": [
          {
            "name": "matriculaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvaliacaoMatricula"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "A student's grades and assessment in the class"
      }
    },
    "/turmas/{turmaId}/matriculas/{matriculaId}/feedback-final": {
      "get": {
        "operationId": "Feedback_daMatricula",
        "tags": [
          "Feedback"
        ],
        "parameters": [
          {
            "name": "matriculaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackFinalMatricula"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Read a student's final feedback"
      },
      "put": {
        "operationId": "Feedback_grava",
        "tags": [
          "Feedback"
        ],
        "parameters": [
          {
            "name": "matriculaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeedbackFinalEscrever"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedbackFinalMatricula"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Save a student's final feedback"
      }
    },
    "/turmas/{turmaId}/periodo": {
      "put": {
        "operationId": "Turmas_definePeriodo",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TurmaPeriodo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TurmaDto"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "LER",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Set the class period (start and end)"
      }
    },
    "/turmas/{turmaId}/presencas/{presencaId}/relato/versoes": {
      "get": {
        "operationId": "PresencaAvaliador_versoesRelato",
        "tags": [
          "PresencaAvaliador"
        ],
        "parameters": [
          {
            "name": "presencaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatoVersoes"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Earlier versions of an attendance account"
      }
    },
    "/turmas/{turmaId}/presencas/confirmar-lote": {
      "post": {
        "operationId": "PresencaAvaliador_confirmaLote",
        "tags": [
          "PresencaAvaliador"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmarLote"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfirmarLoteResultado"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "Confirm several attendance requests at once"
      }
    },
    "/turmas/{turmaId}/presencas/pendentes": {
      "get": {
        "operationId": "PresencaAvaliador_pendentes",
        "tags": [
          "PresencaAvaliador"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pendentes"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "AVALIAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "The class's pending request queue"
      }
    },
    "/turmas/{turmaId}/prontidao": {
      "get": {
        "operationId": "Turmas_prontidao",
        "tags": [
          "Turmas"
        ],
        "parameters": [
          {
            "name": "turmaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TurmaProntidao"
                }
              }
            }
          },
          "default": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErroApi"
                }
              }
            }
          }
        },
        "x-presente-acesso": {
          "tipo": "acesso",
          "capacidade": "CADASTRAR",
          "alvo": {
            "turmaId": "params.turmaId"
          }
        },
        "summary": "What is already in place in the class (counts)",
        "description": "Returns counts only (students with access, assessors, upcoming activities…), never names or emails."
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "AceitarConviteInput": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 20,
            "maxLength": 200
          },
          "senha": {
            "$ref": "#/components/schemas/Senha"
          },
          "nationality": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "pattern": "^[A-Za-z]{2}$"
          },
          "locale": {
            "type": "string",
            "enum": [
              "pt-BR",
              "es",
              "en-US"
            ]
          },
          "aceites": {
            "default": [],
            "maxItems": 4,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "documento": {
                  "type": "string",
                  "enum": [
                    "TERMO_USO",
                    "POLITICA_PRIVACIDADE"
                  ]
                },
                "versao": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 20
                }
              },
              "required": [
                "documento",
                "versao"
              ]
            },
            "description": "Accepted terms (version of the current document)."
          }
        },
        "required": [
          "token",
          "senha"
        ]
      },
      "AtividadeAtualizar": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Data"
          },
          "atividadeProfissionalId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "horaInicio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "horaFim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "descricao": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "observacoes": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 5000
              },
              {
                "type": "null"
              }
            ]
          },
          "local": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "obrigatoria": {
            "type": "boolean"
          },
          "cancelada": {
            "type": "boolean"
          },
          "cercaAtiva": {
            "type": "boolean"
          },
          "cercaRaioM": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10,
                "maximum": 5000
              },
              {
                "type": "null"
              }
            ]
          },
          "lat": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              {
                "type": "null"
              }
            ]
          },
          "lng": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "AtividadeCriar": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Data"
          },
          "atividadeProfissionalId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "horaInicio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "horaFim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "descricao": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "observacoes": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 5000
              },
              {
                "type": "null"
              }
            ]
          },
          "local": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "obrigatoria": {
            "type": "boolean"
          },
          "cancelada": {
            "type": "boolean"
          },
          "cercaAtiva": {
            "type": "boolean"
          },
          "cercaRaioM": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10,
                "maximum": 5000
              },
              {
                "type": "null"
              }
            ]
          },
          "lat": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              {
                "type": "null"
              }
            ]
          },
          "lng": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data"
        ]
      },
      "AtividadeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "turmaId": {
            "type": "string",
            "format": "uuid"
          },
          "data": {
            "$ref": "#/components/schemas/Data"
          },
          "horaInicio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "horaFim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "atividadeProfissionalId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "atividadeProfissionalNome": {
            "type": [
              "string",
              "null"
            ],
            "description": "Catalog item name (for lists and screens that do not load the catalog)."
          },
          "descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "observacoes": {
            "type": [
              "string",
              "null"
            ]
          },
          "local": {
            "type": [
              "string",
              "null"
            ]
          },
          "obrigatoria": {
            "type": "boolean"
          },
          "cancelada": {
            "type": "boolean"
          },
          "cercaAtiva": {
            "type": "boolean"
          },
          "cercaRaioM": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "type": [
              "number",
              "null"
            ]
          },
          "comPresencas": {
            "type": "boolean",
            "description": "Attendance already exists: date and time are locked."
          }
        },
        "required": [
          "id",
          "turmaId",
          "data",
          "horaInicio",
          "horaFim",
          "atividadeProfissionalId",
          "atividadeProfissionalNome",
          "descricao",
          "observacoes",
          "local",
          "obrigatoria",
          "cancelada",
          "cercaAtiva",
          "cercaRaioM",
          "lat",
          "lng",
          "comPresencas"
        ],
        "additionalProperties": false
      },
      "AtividadeProfissionalAtualizar": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "descricao": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "ativo": {
            "type": "boolean"
          }
        }
      },
      "AtividadeProfissionalCriar": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "descricao": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "nome"
        ]
      },
      "AtividadeProfissionalDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "disciplinaId": {
            "type": "string",
            "format": "uuid"
          },
          "nome": {
            "type": "string"
          },
          "descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "ativo": {
            "type": "boolean"
          },
          "atividades": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "How many activities (occurrences) point to the item."
          }
        },
        "required": [
          "id",
          "disciplinaId",
          "nome",
          "descricao",
          "ativo",
          "atividades"
        ],
        "additionalProperties": false
      },
      "AtividadeProfissionalMesclar": {
        "type": "object",
        "properties": {
          "destinoId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "destinoId"
        ],
        "additionalProperties": false
      },
      "AtividadesProfissionais": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AtividadeProfissionalDto"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "AuditoriaEstatisticas": {
        "type": "object",
        "properties": {
          "de": {
            "$ref": "#/components/schemas/Data"
          },
          "ate": {
            "$ref": "#/components/schemas/Data"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "porAcao": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "acao": {
                  "type": "string"
                },
                "total": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "acao",
                "total"
              ],
              "additionalProperties": false
            }
          },
          "porDia": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dia": {
                  "$ref": "#/components/schemas/Data"
                },
                "total": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "dia",
                "total"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "de",
          "ate",
          "total",
          "porAcao",
          "porDia"
        ],
        "additionalProperties": false
      },
      "AuditoriaItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "criadoEm": {
            "type": "string"
          },
          "acao": {
            "type": "string"
          },
          "entidade": {
            "type": "string"
          },
          "entidadeId": {
            "type": [
              "string",
              "null"
            ]
          },
          "instituicaoId": {
            "type": [
              "string",
              "null"
            ]
          },
          "instituicaoSigla": {
            "type": [
              "string",
              "null"
            ]
          },
          "ator": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "nome": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "nome"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Who did it: only the id and display name. Null = the system itself or an already deleted account (anonymised accounts appear as “Person removed”)."
          },
          "dados": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                },
                {
                  "type": "array",
                  "items": {
                    "type": [
                      "string",
                      "number",
                      "boolean"
                    ]
                  }
                }
              ]
            },
            "description": "Event details, already filtered: fields that could hold free text are left out."
          },
          "omitidos": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "How many detail fields were omitted because they could hold free text."
          }
        },
        "required": [
          "id",
          "criadoEm",
          "acao",
          "entidade",
          "entidadeId",
          "instituicaoId",
          "instituicaoSigla",
          "ator",
          "dados",
          "omitidos"
        ],
        "additionalProperties": false
      },
      "AuditoriaPagina": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuditoriaItem"
            }
          },
          "proximo": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "items",
          "proximo"
        ],
        "additionalProperties": false
      },
      "AutoavaliacaoDoAluno": {
        "type": "object",
        "properties": {
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "janela": {
            "$ref": "#/components/schemas/JanelaFeedback"
          },
          "podeEscrever": {
            "type": "boolean"
          },
          "criterios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CriterioDto"
            }
          },
          "minha": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AutoavaliacaoDto"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "turma",
          "janela",
          "podeEscrever",
          "criterios",
          "minha"
        ],
        "additionalProperties": false
      },
      "AutoavaliacaoDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "comentario": {
            "type": "string"
          },
          "notas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "criterioId": {
                  "type": "string",
                  "format": "uuid"
                },
                "valor": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "criterioId",
                "valor"
              ],
              "additionalProperties": false
            }
          },
          "criadoEm": {
            "type": "string"
          },
          "atualizadoEm": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "matriculaId",
          "comentario",
          "notas",
          "criadoEm",
          "atualizadoEm"
        ],
        "additionalProperties": false
      },
      "AutoavaliacaoEscrever": {
        "type": "object",
        "properties": {
          "notas": {
            "maxItems": 200,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "criterioId": {
                  "type": "string",
                  "format": "uuid"
                },
                "valor": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "criterioId",
                "valor"
              ],
              "additionalProperties": false
            }
          },
          "comentario": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000
          }
        },
        "required": [
          "notas",
          "comentario"
        ],
        "additionalProperties": false
      },
      "AvaliacaoMatricula": {
        "type": "object",
        "properties": {
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "aluno": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "liberada": {
            "type": "boolean"
          },
          "notasVisiveisEm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          },
          "criterios": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "nome": {
                  "type": "string"
                },
                "notaMin": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "notaMax": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "ativo": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "nome",
                "notaMin",
                "notaMax",
                "ativo"
              ],
              "additionalProperties": false
            }
          },
          "presencas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "presencaId": {
                  "type": "string",
                  "format": "uuid"
                },
                "atividade": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "data": {
                      "$ref": "#/components/schemas/Data"
                    },
                    "descricao": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "data",
                    "descricao"
                  ],
                  "additionalProperties": false
                },
                "notas": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "criterioId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "valor": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "rotulo": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "criterioId",
                      "valor",
                      "rotulo"
                    ],
                    "additionalProperties": false
                  }
                },
                "nivelSupervisao": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/NivelSupervisao"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "presencaId",
                "atividade",
                "notas"
              ],
              "additionalProperties": false
            }
          },
          "avaliacaoFinal": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "texto": {
                    "type": "string"
                  },
                  "em": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "por": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "nome": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "nome"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "texto",
                  "em"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "matriculaId",
          "turma",
          "aluno",
          "liberada",
          "notasVisiveisEm",
          "criterios",
          "presencas",
          "avaliacaoFinal"
        ],
        "additionalProperties": false
      },
      "AvaliarPresenca": {
        "type": "object",
        "properties": {
          "estado": {
            "type": "string",
            "enum": [
              "CONFIRMADA",
              "REJEITADA"
            ]
          },
          "comentario": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "notas": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Nota"
            }
          },
          "nivelSupervisao": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NivelSupervisao"
              },
              {
                "type": "null"
              }
            ],
            "description": "Absent = keeps what was there; null = clears; only applies when confirming."
          }
        },
        "required": [
          "estado"
        ],
        "additionalProperties": false
      },
      "Cockpit": {
        "type": "object",
        "properties": {
          "aluno": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CockpitAluno"
              },
              {
                "type": "null"
              }
            ]
          },
          "avaliador": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CockpitAvaliador"
              },
              {
                "type": "null"
              }
            ]
          },
          "gestao": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CockpitGestao"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "aluno",
          "avaliador",
          "gestao"
        ],
        "additionalProperties": false
      },
      "CockpitAluno": {
        "type": "object",
        "properties": {
          "instituicoes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "sigla": {
                  "type": "string"
                },
                "nome": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "sigla",
                "nome"
              ],
              "additionalProperties": false
            },
            "description": "Institutions where the person has an enrollment (active or past): always all of them, even with the `instituicaoId` filter. May be missing on older servers."
          },
          "proximas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "data": {
                  "$ref": "#/components/schemas/Data"
                },
                "horaInicio": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Hora"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "horaFim": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Hora"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "descricao": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "turma": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "disciplina": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "sigla": {
                      "type": "string"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "sigla",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "estado": {
                  "type": "string",
                  "enum": [
                    "NAO_SOLICITADA",
                    "SOLICITADA",
                    "CONFIRMADA",
                    "REJEITADA"
                  ]
                },
                "obrigatoria": {
                  "type": "boolean"
                },
                "janela": {
                  "type": "object",
                  "properties": {
                    "abre": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "fecha": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "fase": {
                      "type": "string",
                      "enum": [
                        "antes",
                        "aberta",
                        "encerrada"
                      ]
                    },
                    "fuso": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "abre",
                    "fecha",
                    "fase"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "id",
                "data",
                "horaInicio",
                "horaFim",
                "descricao",
                "turma",
                "disciplina",
                "estado"
              ],
              "additionalProperties": false
            },
            "description": "Upcoming activities (from today on, in the institution's time zone), with the status of the attendance request."
          },
          "semPedido": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Activities from the last 30 days that have passed and have no attendance request yet."
          },
          "rejeitadas": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Requests rejected in the last 60 days: the person can redo them."
          },
          "frequencia": {
            "type": "object",
            "properties": {
              "confirmadas": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "realizadas": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "percentual": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "confirmadas",
              "realizadas",
              "percentual"
            ],
            "additionalProperties": false,
            "description": "`confirmadas` and `realizadas` count all activities (the “X of N” on the home screen); `percentual` considers mandatory ones only."
          },
          "turmas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "turma": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "disciplina": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "sigla": {
                      "type": "string"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "sigla",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "liberada": {
                  "type": "boolean"
                },
                "feedbackFinalLiberado": {
                  "type": "boolean"
                },
                "autoavaliacaoAberta": {
                  "type": "boolean"
                },
                "autoavaliacaoEnviada": {
                  "type": "boolean"
                },
                "criterios": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "criterioId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "nome": {
                        "type": "string"
                      },
                      "notaMin": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "notaMax": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "media": {
                        "type": "number"
                      },
                      "quantidade": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      }
                    },
                    "required": [
                      "criterioId",
                      "nome",
                      "notaMin",
                      "notaMax",
                      "media",
                      "quantidade"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "turma",
                "disciplina",
                "liberada",
                "feedbackFinalLiberado",
                "autoavaliacaoAberta",
                "autoavaliacaoEnviada",
                "criterios"
              ],
              "additionalProperties": false
            },
            "description": "Grades per class. They only carry values after the class releases them; before that, `liberada` is false and `criterios` is empty."
          }
        },
        "required": [
          "proximas",
          "semPedido",
          "rejeitadas",
          "frequencia",
          "turmas"
        ],
        "additionalProperties": false
      },
      "CockpitAvaliador": {
        "type": "object",
        "properties": {
          "pendentes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "comExcecao": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Pending requests outside the window or the geofence (exception queue)."
          },
          "atividadesHoje": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Today's activities in the classes the person assesses."
          },
          "turmas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "turma": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "disciplina": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "sigla": {
                      "type": "string"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "sigla",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "pendentes": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "comExcecao": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "turma",
                "disciplina",
                "pendentes",
                "comExcecao"
              ],
              "additionalProperties": false
            },
            "description": "Classes with requests waiting, fullest first (up to 10)."
          },
          "feedbackFinal": {
            "type": "object",
            "properties": {
              "pendentes": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "turmas": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "turma": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "nome": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "nome"
                      ],
                      "additionalProperties": false
                    },
                    "disciplina": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "sigla": {
                          "type": "string"
                        },
                        "nome": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "sigla",
                        "nome"
                      ],
                      "additionalProperties": false
                    },
                    "ate": {
                      "$ref": "#/components/schemas/Data"
                    },
                    "pendentes": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "turma",
                    "disciplina",
                    "ate",
                    "pendentes"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "pendentes",
              "turmas"
            ],
            "additionalProperties": false,
            "description": "Final feedback still to write: in classes the person assesses whose deadline is open, students (other than themselves) without their feedback. Most urgent (nearest deadline) first, up to 10 classes."
          }
        },
        "required": [
          "pendentes",
          "comExcecao",
          "atividadesHoje",
          "turmas",
          "feedbackFinal"
        ],
        "additionalProperties": false
      },
      "CockpitGestao": {
        "type": "object",
        "properties": {
          "instituicoes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "disciplinas": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "turmas": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "alunos": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "semCriterios": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "sigla": {
                  "type": "string"
                },
                "nome": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "sigla",
                "nome"
              ],
              "additionalProperties": false
            },
            "description": "Active disciplines with no active criterion: nobody can grade them (up to 5; the total is in `semCriteriosTotal`)."
          },
          "semCriteriosTotal": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "pendencias": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tipo": {
                  "type": "string",
                  "enum": [
                    "SEM_CENTRO",
                    "SEM_ATIVIDADE",
                    "SEM_ALUNOS",
                    "CONVITE_PENDENTE"
                  ]
                },
                "total": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "turmas": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "turma": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "nome": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "nome"
                        ],
                        "additionalProperties": false
                      },
                      "disciplina": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "sigla": {
                            "type": "string"
                          },
                          "nome": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "sigla",
                          "nome"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "turma",
                      "disciplina"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "tipo",
                "total",
                "turmas"
              ],
              "additionalProperties": false
            },
            "description": "Active classes not yet ready to receive attendance, by reason: no centre (the geofence has no reference), no activity from today on, no student, or a student who has not accepted the invitation. Up to 5 classes per reason; the total is in `total`. Classes and counts only, no person names."
          },
          "listaTurmas": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "itens": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nome": {
                      "type": "string"
                    },
                    "disciplina": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "sigla": {
                          "type": "string"
                        },
                        "nome": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "sigla",
                        "nome"
                      ],
                      "additionalProperties": false
                    },
                    "atividadesHoje": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "pendencias": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "SEM_CENTRO",
                          "SEM_ATIVIDADE",
                          "SEM_ALUNOS",
                          "CONVITE_PENDENTE"
                        ]
                      }
                    },
                    "semCriterio": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "nome",
                    "disciplina",
                    "atividadesHoje",
                    "pendencias",
                    "semCriterio"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "total",
              "itens"
            ],
            "additionalProperties": false,
            "description": "Status of each active class in scope (the same ones counted in `turmas`), by discipline code and class name, up to 50 (the total is in `total`): how many activities today and which pending items it has, with the same rules as `pendencias`. `semCriterio`: the discipline has no active criterion (blocks assessment). Ids, codes and counts only. May be missing on older servers."
          }
        },
        "required": [
          "instituicoes",
          "disciplinas",
          "turmas",
          "alunos",
          "semCriterios",
          "semCriteriosTotal",
          "pendencias"
        ],
        "additionalProperties": false
      },
      "ConfirmarLote": {
        "type": "object",
        "properties": {
          "ids": {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "ids"
        ],
        "additionalProperties": false
      },
      "ConfirmarLoteResultado": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PresencaDto"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "ContadorNotificacoes": {
        "type": "object",
        "properties": {
          "naoLidas": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "naoLidas"
        ],
        "additionalProperties": false
      },
      "ContatoSite": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "maxLength": 120
          },
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "telefone": {
            "type": "string",
            "maxLength": 30
          },
          "mensagem": {
            "type": "string",
            "minLength": 20,
            "maxLength": 2000
          },
          "site": {
            "type": "string",
            "maxLength": 200
          }
        },
        "required": [
          "email",
          "mensagem"
        ]
      },
      "ConversaPagina": {
        "type": "object",
        "properties": {
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              },
              "disciplinaNome": {
                "type": "string"
              },
              "ativa": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "nome",
              "disciplinaNome",
              "ativa"
            ],
            "additionalProperties": false
          },
          "itens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MensagemDto"
            },
            "description": "Oldest to newest."
          },
          "anteriores": {
            "type": [
              "string",
              "null"
            ],
            "description": "Cursor to fetch earlier messages; null = reached the beginning."
          },
          "podeEscrever": {
            "type": "boolean"
          },
          "podeModerar": {
            "type": "boolean"
          },
          "alteradas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MensagemDto"
            },
            "description": "Messages edited or removed since `alteradasDesde` (for polling): the client replaces the ones it has."
          },
          "agora": {
            "type": "string",
            "description": "Server clock at read time (use it as the next `alteradasDesde`)."
          }
        },
        "required": [
          "turma",
          "itens",
          "anteriores",
          "podeEscrever",
          "podeModerar",
          "alteradas",
          "agora"
        ],
        "additionalProperties": false
      },
      "CriterioAtualizar": {
        "type": "object",
        "properties": {
          "nomes": {
            "type": "object",
            "properties": {
              "pt-BR": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "es": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "en-US": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              }
            },
            "additionalProperties": false
          },
          "descricoes": {
            "$ref": "#/components/schemas/CriterioDescricoes"
          },
          "rubricas": {
            "$ref": "#/components/schemas/CriterioRubricas"
          },
          "ordem": {
            "type": "integer",
            "minimum": 0,
            "maximum": 999
          },
          "ativo": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CriterioCriar": {
        "type": "object",
        "properties": {
          "chave": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_]{1,39}$"
          },
          "notaMin": {
            "type": "integer",
            "minimum": 0,
            "maximum": 99
          },
          "notaMax": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "permiteNa": {
            "default": false,
            "type": "boolean"
          },
          "ordem": {
            "type": "integer",
            "minimum": 0,
            "maximum": 999
          },
          "nomes": {
            "$ref": "#/components/schemas/CriterioNomes"
          },
          "descricoes": {
            "$ref": "#/components/schemas/CriterioDescricoes"
          },
          "rubricas": {
            "$ref": "#/components/schemas/CriterioRubricas"
          }
        },
        "required": [
          "chave",
          "notaMin",
          "notaMax",
          "nomes"
        ],
        "additionalProperties": false
      },
      "CriterioDescricoes": {
        "type": "object",
        "properties": {
          "pt-BR": {
            "type": "string",
            "maxLength": 300
          },
          "es": {
            "type": "string",
            "maxLength": 300
          },
          "en-US": {
            "type": "string",
            "maxLength": 300
          }
        },
        "additionalProperties": false
      },
      "CriterioDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "disciplinaId": {
            "type": "string",
            "format": "uuid"
          },
          "chave": {
            "type": "string"
          },
          "notaMin": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "notaMax": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "permiteNa": {
            "type": "boolean"
          },
          "ordem": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "ativo": {
            "type": "boolean"
          },
          "nome": {
            "type": "string",
            "description": "Name in the requester's language (falls back to Portuguese, then any language)."
          },
          "nomes": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "pt-BR",
                "es",
                "en-US"
              ]
            },
            "additionalProperties": {
              "type": "string"
            },
            "description": "All registered names, per language (for editing)."
          },
          "descricao": {
            "type": "string",
            "description": "How-to-assess description in the requester's language (falls back to Portuguese; empty if none)."
          },
          "descricoes": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "pt-BR",
                "es",
                "en-US"
              ]
            },
            "additionalProperties": {
              "type": "string"
            },
            "description": "All registered descriptions, per language (for editing)."
          },
          "rubrica": {
            "$ref": "#/components/schemas/Rubrica",
            "description": "Rubric in the requester's language (falls back to Portuguese; empty if none)."
          },
          "rubricas": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "enum": [
                "pt-BR",
                "es",
                "en-US"
              ]
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/Rubrica"
            },
            "description": "All registered rubrics, per language (for editing)."
          }
        },
        "required": [
          "id",
          "disciplinaId",
          "chave",
          "notaMin",
          "notaMax",
          "permiteNa",
          "ordem",
          "ativo",
          "nome",
          "nomes",
          "descricao",
          "descricoes",
          "rubrica",
          "rubricas"
        ],
        "additionalProperties": false
      },
      "CriterioNomes": {
        "type": "object",
        "properties": {
          "pt-BR": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "es": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "en-US": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          }
        },
        "required": [
          "pt-BR"
        ],
        "additionalProperties": false
      },
      "CriterioRubricas": {
        "type": "object",
        "properties": {
          "pt-BR": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Rubrica"
              },
              {
                "type": "null"
              }
            ]
          },
          "es": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Rubrica"
              },
              {
                "type": "null"
              }
            ]
          },
          "en-US": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Rubrica"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "Criterios": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CriterioDto"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "Data": {
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "DisciplinaAtualizar": {
        "type": "object",
        "properties": {
          "sigla": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$"
          },
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "ementa": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 10000
              },
              {
                "type": "null"
              }
            ]
          },
          "semanas": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 520
              },
              {
                "type": "null"
              }
            ]
          },
          "ativo": {
            "type": "boolean"
          }
        }
      },
      "DisciplinaCriar": {
        "type": "object",
        "properties": {
          "sigla": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$"
          },
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "ementa": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 10000
              },
              {
                "type": "null"
              }
            ]
          },
          "semanas": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 520
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "sigla",
          "nome"
        ]
      },
      "DisciplinaDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "instituicaoId": {
            "type": "string",
            "format": "uuid"
          },
          "sigla": {
            "type": "string"
          },
          "nome": {
            "type": "string"
          },
          "ementa": {
            "type": [
              "string",
              "null"
            ]
          },
          "semanas": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "ativo": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "instituicaoId",
          "sigla",
          "nome",
          "ementa",
          "semanas",
          "ativo"
        ],
        "additionalProperties": false
      },
      "DispositivoRegistrar": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 8,
            "maxLength": 4096,
            "pattern": "^[\\x21-\\x7E]+$"
          },
          "plataforma": {
            "type": "string",
            "enum": [
              "IOS",
              "ANDROID",
              "WEB"
            ]
          }
        },
        "required": [
          "token",
          "plataforma"
        ]
      },
      "DispositivoRemover": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 8,
            "maxLength": 4096,
            "pattern": "^[\\x21-\\x7E]+$"
          }
        },
        "required": [
          "token"
        ]
      },
      "Email": {
        "type": "string",
        "maxLength": 254,
        "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$"
      },
      "EncerrarOutrasResultado": {
        "type": "object",
        "properties": {
          "encerradas": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "encerradas"
        ],
        "additionalProperties": false
      },
      "EquipeCriar": {
        "type": "object",
        "properties": {
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "nationality": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "pattern": "^[A-Za-z]{2}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "papel": {
            "type": "string",
            "enum": [
              "CURADOR",
              "PRECEPTOR",
              "COORDENADOR",
              "PROFESSOR",
              "AUXILIAR"
            ]
          },
          "disciplinaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "turmaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "podeAvaliar": {
            "default": false,
            "type": "boolean"
          },
          "podeCadastrar": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "email",
          "nome",
          "papel"
        ]
      },
      "ErroApi": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "VALIDATION_FAILED",
              "UNAUTHENTICATED",
              "FORBIDDEN",
              "NOT_FOUND",
              "METHOD_NOT_ALLOWED",
              "CONFLICT",
              "PAYLOAD_TOO_LARGE",
              "UNPROCESSABLE",
              "RATE_LIMITED",
              "TOKEN_INVALID",
              "EXCEPTION_REQUIRED",
              "ACTIVITY_CANCELLED",
              "ALREADY_CONFIRMED",
              "NOT_PENDING",
              "EXCEPTION_REVIEW_REQUIRED",
              "BATCH_REJECTED",
              "FEEDBACK_CLOSED",
              "LAST_ADMIN",
              "LAST_CURATOR",
              "INTERNAL"
            ]
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "enum": [
                "required",
                "invalid",
                "too_short",
                "too_long",
                "out_of_range",
                "taken",
                "weak",
                "reused",
                "too_soon",
                "wrong_password",
                "locked"
              ]
            }
          },
          "excecoes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "falhas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "code": {
                  "type": "string",
                  "enum": [
                    "VALIDATION_FAILED",
                    "UNAUTHENTICATED",
                    "FORBIDDEN",
                    "NOT_FOUND",
                    "METHOD_NOT_ALLOWED",
                    "CONFLICT",
                    "PAYLOAD_TOO_LARGE",
                    "UNPROCESSABLE",
                    "RATE_LIMITED",
                    "TOKEN_INVALID",
                    "EXCEPTION_REQUIRED",
                    "ACTIVITY_CANCELLED",
                    "ALREADY_CONFIRMED",
                    "NOT_PENDING",
                    "EXCEPTION_REVIEW_REQUIRED",
                    "BATCH_REJECTED",
                    "FEEDBACK_CLOSED",
                    "LAST_ADMIN",
                    "LAST_CURATOR",
                    "INTERNAL"
                  ]
                }
              },
              "required": [
                "id",
                "code"
              ]
            }
          },
          "retryAfterSeg": {
            "type": "integer",
            "minimum": 0
          },
          "requestId": {
            "type": "string"
          }
        },
        "required": [
          "code"
        ]
      },
      "EsqueciSenhaInput": {
        "type": "object",
        "properties": {
          "email": {
            "$ref": "#/components/schemas/Email"
          }
        },
        "required": [
          "email"
        ]
      },
      "EstatisticaAluno": {
        "type": "object",
        "properties": {
          "alunoId": {
            "type": "string",
            "format": "uuid"
          },
          "nome": {
            "type": "string"
          },
          "proprio": {
            "type": "boolean",
            "description": "It is the requesting person themself."
          },
          "confirmadas": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "pendentes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "rejeitadas": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "naoSolicitadas": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "obrigatorias": {
            "type": "object",
            "properties": {
              "confirmadas": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "total": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "confirmadas",
              "total"
            ],
            "additionalProperties": false,
            "description": "Confirmed and held counts among mandatory activities only: the basis of `percentual`."
          },
          "percentual": {
            "type": [
              "number",
              "null"
            ],
            "description": "Confirmed mandatory ÷ held mandatory, from 0 to 100 with 1 decimal; null if no mandatory activity has been held yet. Optional activities do not count."
          },
          "medias": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaCriterio"
            },
            "description": "Average per criterion (confirmed attendance in the window, excluding “not applicable”). Absent from the person's own row until the class releases grades. Criteria without grades do not appear."
          }
        },
        "required": [
          "alunoId",
          "nome",
          "proprio",
          "confirmadas",
          "pendentes",
          "rejeitadas",
          "naoSolicitadas",
          "obrigatorias",
          "percentual"
        ],
        "additionalProperties": false
      },
      "Estatisticas": {
        "type": "object",
        "properties": {
          "turmas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EstatisticaTurma"
            }
          }
        },
        "required": [
          "turmas"
        ],
        "additionalProperties": false
      },
      "EstatisticaTurma": {
        "type": "object",
        "properties": {
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              },
              "ativo": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "nome",
              "ativo"
            ],
            "additionalProperties": false
          },
          "disciplina": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "sigla",
              "nome"
            ],
            "additionalProperties": false
          },
          "instituicao": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "sigla",
              "nome"
            ],
            "additionalProperties": false
          },
          "atividades": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Non-cancelled activities that have already happened in the window."
          },
          "alunos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EstatisticaAluno"
            },
            "description": "Assessors see all students; someone who is only a student sees only themself."
          },
          "criterios": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "nome": {
                  "type": "string"
                },
                "notaMin": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "notaMax": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "id",
                "nome",
                "notaMin",
                "notaMax"
              ],
              "additionalProperties": false
            },
            "description": "Criteria shown in the averages (active or graded), in the discipline's order and the person's language."
          },
          "notasLiberadas": {
            "type": "boolean",
            "description": "The class has already released grades to the student."
          },
          "mediasTurma": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaCriterio"
            },
            "description": "Class average per criterion: only for those who assess the class; never for students."
          },
          "podeAvaliar": {
            "type": "boolean",
            "description": "The requester assesses the class (can export)."
          }
        },
        "required": [
          "turma",
          "disciplina",
          "instituicao",
          "atividades",
          "alunos"
        ],
        "additionalProperties": false
      },
      "EvolucaoAluno": {
        "type": "object",
        "properties": {
          "aluno": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "disciplinas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvolucaoDisciplina"
            }
          },
          "turmasNaoLiberadas": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Only in the student's own view: their classes whose grades have not been released yet (they are not in the series)."
          }
        },
        "required": [
          "aluno",
          "disciplinas",
          "turmasNaoLiberadas"
        ],
        "additionalProperties": false
      },
      "EvolucaoAlunoItem": {
        "type": "object",
        "properties": {
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "nome": {
            "type": "string"
          },
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "disciplina": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "matriculaId",
          "nome",
          "turma",
          "disciplina"
        ],
        "additionalProperties": false
      },
      "EvolucaoAlunos": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EvolucaoAlunoItem"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "EvolucaoDisciplina": {
        "type": "object",
        "properties": {
          "disciplina": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "instituicao": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "sigla",
              "nome"
            ],
            "additionalProperties": false,
            "description": "The discipline's institution: with a single account across several institutions, the screen filters by it. May be missing on older servers."
          },
          "turmas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "matriculaId": {
                  "type": "string",
                  "format": "uuid"
                },
                "nome": {
                  "type": "string"
                },
                "dataInicio": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Data"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "dataFim": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Data"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "matriculaId",
                "nome",
                "dataInicio",
                "dataFim"
              ],
              "additionalProperties": false
            }
          },
          "presencasAvaliadas": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "avaliadores": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "criterios": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "nome": {
                  "type": "string"
                },
                "notaMin": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "notaMax": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "pontos": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "atividadeId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "turmaId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "data": {
                        "$ref": "#/components/schemas/Data"
                      },
                      "valor": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      }
                    },
                    "required": [
                      "atividadeId",
                      "turmaId",
                      "data",
                      "valor"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "id",
                "nome",
                "notaMin",
                "notaMax",
                "pontos"
              ],
              "additionalProperties": false
            }
          },
          "atividadesProfissionais": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "nome": {
                  "type": "string"
                },
                "pontos": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "atividadeId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "turmaId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "data": {
                        "$ref": "#/components/schemas/Data"
                      },
                      "nivel": {
                        "$ref": "#/components/schemas/NivelSupervisao"
                      }
                    },
                    "required": [
                      "atividadeId",
                      "turmaId",
                      "data",
                      "nivel"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "id",
                "nome",
                "pontos"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "disciplina",
          "turmas",
          "presencasAvaliadas",
          "avaliadores",
          "criterios",
          "atividadesProfissionais"
        ],
        "additionalProperties": false
      },
      "ExcluirContaConfirmarInput": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 20,
            "maxLength": 200
          }
        },
        "required": [
          "token"
        ]
      },
      "ExcluirContaInput": {
        "type": "object",
        "properties": {
          "senha": {
            "$ref": "#/components/schemas/Senha"
          }
        },
        "required": [
          "senha"
        ]
      },
      "ExcluirContaSolicitarInput": {
        "type": "object",
        "properties": {
          "email": {
            "$ref": "#/components/schemas/Email"
          }
        },
        "required": [
          "email"
        ]
      },
      "FeedbackFinalDoAluno": {
        "type": "object",
        "properties": {
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "liberado": {
            "type": "boolean"
          },
          "liberaEm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          },
          "criterios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CriterioDto"
            }
          },
          "feedbacks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeedbackFinalDto"
            }
          }
        },
        "required": [
          "turma",
          "liberado",
          "liberaEm",
          "criterios",
          "feedbacks"
        ],
        "additionalProperties": false
      },
      "FeedbackFinalDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "autor": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "nome": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "nome"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Null when the author deleted their account."
          },
          "comentario": {
            "type": "string"
          },
          "comentarioInterno": {
            "type": [
              "string",
              "null"
            ]
          },
          "notas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "criterioId": {
                  "type": "string",
                  "format": "uuid"
                },
                "valor": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "criterioId",
                "valor"
              ],
              "additionalProperties": false
            }
          },
          "criadoEm": {
            "type": "string"
          },
          "atualizadoEm": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "matriculaId",
          "autor",
          "comentario",
          "notas",
          "criadoEm",
          "atualizadoEm"
        ],
        "additionalProperties": false
      },
      "FeedbackFinalEscrever": {
        "type": "object",
        "properties": {
          "notas": {
            "maxItems": 200,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "criterioId": {
                  "type": "string",
                  "format": "uuid"
                },
                "valor": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "criterioId",
                "valor"
              ],
              "additionalProperties": false
            }
          },
          "comentario": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000
          },
          "comentarioInterno": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "notas",
          "comentario"
        ],
        "additionalProperties": false
      },
      "FeedbackFinalMatricula": {
        "type": "object",
        "properties": {
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              },
              "dataInicio": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Data"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "dataFim": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Data"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "nome",
              "dataInicio",
              "dataFim"
            ],
            "additionalProperties": false
          },
          "aluno": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "janela": {
            "$ref": "#/components/schemas/JanelaFeedback"
          },
          "criterios": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CriterioDto"
            }
          },
          "meu": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FeedbackFinalDto"
              },
              {
                "type": "null"
              }
            ]
          },
          "podeEscrever": {
            "type": "boolean"
          },
          "verTudo": {
            "type": "boolean"
          },
          "equipe": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeedbackFinalDto"
            }
          },
          "autoavaliacao": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AutoavaliacaoDto"
              },
              {
                "type": "null"
              }
            ],
            "description": "The student's self-assessment. Only for `verTudo`; null for the others and when the student has not written one."
          }
        },
        "required": [
          "matriculaId",
          "turma",
          "aluno",
          "janela",
          "criterios",
          "meu",
          "podeEscrever",
          "verTudo",
          "equipe"
        ],
        "additionalProperties": false
      },
      "FeedbackFinalTurma": {
        "type": "object",
        "properties": {
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              },
              "dataInicio": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Data"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "dataFim": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Data"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "nome",
              "dataInicio",
              "dataFim"
            ],
            "additionalProperties": false
          },
          "janela": {
            "$ref": "#/components/schemas/JanelaFeedback"
          },
          "podeEscrever": {
            "type": "boolean"
          },
          "verTudo": {
            "type": "boolean"
          },
          "itens": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "matriculaId": {
                  "type": "string",
                  "format": "uuid"
                },
                "aluno": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "meuEm": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "total": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "matriculaId",
                "aluno",
                "meuEm",
                "total"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "turma",
          "janela",
          "podeEscrever",
          "verTudo",
          "itens"
        ],
        "additionalProperties": false
      },
      "FilaAvaliacao": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FilaAvaliacaoItem"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "items",
          "total"
        ],
        "additionalProperties": false
      },
      "FilaAvaliacaoItem": {
        "type": "object",
        "properties": {
          "atividade": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "descricao": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "data": {
                "$ref": "#/components/schemas/Data"
              },
              "horaInicio": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Hora"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "horaFim": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/Hora"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "obrigatoria": {
                "type": "boolean"
              },
              "turma": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "nome": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "nome"
                ],
                "additionalProperties": false
              },
              "disciplina": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "sigla": {
                    "type": "string"
                  },
                  "nome": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "sigla",
                  "nome"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "descricao",
              "data",
              "horaInicio",
              "horaFim",
              "obrigatoria",
              "turma",
              "disciplina"
            ],
            "additionalProperties": false
          },
          "linha": {
            "$ref": "#/components/schemas/PresencaLinha"
          },
          "elegivelLote": {
            "type": "boolean",
            "description": "Eligible for batch confirmation: pending and without an exception (rule computed on the server)."
          }
        },
        "required": [
          "atividade",
          "linha",
          "elegivelLote"
        ],
        "additionalProperties": false
      },
      "FrequenciaTurma": {
        "type": "object",
        "properties": {
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "hoje": {
            "$ref": "#/components/schemas/Data",
            "description": "Today's date in the institution's time zone (to highlight the “today” column)."
          },
          "de": {
            "$ref": "#/components/schemas/Data"
          },
          "ate": {
            "$ref": "#/components/schemas/Data"
          },
          "atividades": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "data": {
                  "$ref": "#/components/schemas/Data"
                },
                "horaInicio": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "horaFim": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "descricao": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "obrigatoria": {
                  "type": "boolean"
                },
                "cancelada": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "data",
                "horaInicio",
                "horaFim",
                "descricao",
                "obrigatoria",
                "cancelada"
              ],
              "additionalProperties": false
            },
            "description": "Activities in the window, by start date and time."
          },
          "alunos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "matriculaId": {
                  "type": "string",
                  "format": "uuid"
                },
                "nome": {
                  "type": "string"
                },
                "celulas": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "atividadeId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "estado": {
                        "type": "string",
                        "enum": [
                          "NAO_SOLICITADA",
                          "SOLICITADA",
                          "CONFIRMADA",
                          "REJEITADA"
                        ]
                      }
                    },
                    "required": [
                      "atividadeId",
                      "estado"
                    ],
                    "additionalProperties": false
                  }
                },
                "obrigatorias": {
                  "type": "object",
                  "properties": {
                    "confirmadas": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "total": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "confirmadas",
                    "total"
                  ],
                  "additionalProperties": false
                },
                "opcionais": {
                  "type": "object",
                  "properties": {
                    "confirmadas": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "total": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "confirmadas",
                    "total"
                  ],
                  "additionalProperties": false
                },
                "percentual": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "matriculaId",
                "nome",
                "celulas",
                "obrigatorias",
                "opcionais",
                "percentual"
              ],
              "additionalProperties": false
            },
            "description": "Students with an active enrollment, alphabetical."
          },
          "truncado": {
            "type": "object",
            "properties": {
              "atividades": {
                "type": "boolean"
              },
              "alunos": {
                "type": "boolean"
              }
            },
            "required": [
              "atividades",
              "alunos"
            ],
            "additionalProperties": false,
            "description": "The list was cut at the maximum number of students and activities; the grid and totals cover only what was returned."
          }
        },
        "required": [
          "turma",
          "hoje",
          "de",
          "ate",
          "atividades",
          "alunos",
          "truncado"
        ],
        "additionalProperties": false
      },
      "Fuso": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      },
      "Health": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "degraded"
            ]
          },
          "db": {
            "type": "string",
            "enum": [
              "up",
              "down"
            ]
          },
          "version": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "db",
          "version",
          "locale"
        ],
        "additionalProperties": false
      },
      "Hora": {
        "type": "string",
        "pattern": "^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$",
        "description": "HH:MM ou HH:MM:SS; a resposta traz sempre HH:MM:SS."
      },
      "ImportacaoEntrada": {
        "type": "object",
        "properties": {
          "csv": {
            "type": "string",
            "minLength": 1,
            "maxLength": 90000
          },
          "modo": {
            "type": "string",
            "enum": [
              "simular",
              "aplicar"
            ],
            "description": "`simular` only validates and shows what would happen; `aplicar` writes all or nothing (unless `parcial`)."
          },
          "parcial": {
            "type": "boolean",
            "description": "Partial mode (with safeguards): imports only valid rows and returns the skipped ones in the response. `simular` with `parcial` returns `hashConteudo`; `aplicar` with `parcial` requires the same `hashConteudo` (missing or different = 409 `CONFLICT`). Absent or `false` = all or nothing."
          },
          "hashConteudo": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "Hash returned by the partial dry run of the same content (SHA-256 of the normalised content, 64 hex characters)."
          }
        },
        "required": [
          "csv",
          "modo"
        ]
      },
      "ImportacaoRelatorio": {
        "type": "object",
        "properties": {
          "tipo": {
            "type": "string",
            "enum": [
              "pessoas",
              "alunos",
              "atividades"
            ]
          },
          "modo": {
            "type": "string",
            "enum": [
              "simular",
              "aplicar"
            ]
          },
          "aplicado": {
            "type": "boolean",
            "description": "On `aplicar`: `true` = written; `false` = some row had an error, nothing was written. On `simular`, always `false`."
          },
          "erroArquivo": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "empty",
                  "too_many_lines",
                  "unterminated_quote",
                  "too_large",
                  "missing_column"
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Error of the file as a whole (empty, too large, required column missing)."
          },
          "colunaAusente": {
            "type": [
              "string",
              "null"
            ]
          },
          "resumo": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "linhas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaRelatorio"
            }
          },
          "convites": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ],
            "description": "Invitations that will be sent (new accounts). `null` = not reported (`simular` does not reveal whether an email already has an account)."
          },
          "parcial": {
            "type": "boolean",
            "description": "Partial mode only. `true` = the request was partial."
          },
          "hashConteudo": {
            "type": "string",
            "description": "Only on a partial `simular`: SHA-256 of the normalised content (type, target and rows read), which the partial `aplicar` sends back."
          },
          "contagens": {
            "type": "object",
            "properties": {
              "importadas": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "ignoradas": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "importadas",
              "ignoradas"
            ],
            "additionalProperties": false,
            "description": "Partial mode only: `importadas` = valid rows (CRIADA, INCLUIDA, REATIVADA or JA_EXISTE, detailed in `resumo`); `ignoradas` = rows with ERRO. Imported + skipped = rows read. On `simular`, it is the forecast."
          },
          "ignoradas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LinhaRelatorio"
            },
            "description": "Only on a partial `aplicar`: the rows left out (row, field and reason). It exists only in this response: it is not stored."
          }
        },
        "required": [
          "tipo",
          "modo",
          "aplicado",
          "erroArquivo",
          "colunaAusente",
          "resumo",
          "linhas",
          "convites"
        ],
        "additionalProperties": false
      },
      "InstituicaoAtualizar": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "$ref": "#/components/schemas/Fuso"
          },
          "retencaoMeses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 600
              },
              {
                "type": "null"
              }
            ]
          },
          "controladorNome": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ],
            "description": "Privacy (LGPD): `null` clears the value and goes back to the platform default."
          },
          "encarregadoNome": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "contatoPrivacidade": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Email"
              },
              {
                "type": "null"
              }
            ]
          },
          "ativo": {
            "type": "boolean"
          }
        }
      },
      "InstituicaoCriar": {
        "type": "object",
        "properties": {
          "sigla": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{1,19}$"
          },
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "default": "America/Sao_Paulo",
            "$ref": "#/components/schemas/Fuso"
          },
          "retencaoMeses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 600
              },
              {
                "type": "null"
              }
            ]
          },
          "curador": {
            "type": "object",
            "properties": {
              "email": {
                "$ref": "#/components/schemas/Email"
              },
              "nome": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              }
            },
            "required": [
              "email",
              "nome"
            ],
            "description": "The institution's first curator: receives the invitation by email."
          }
        },
        "required": [
          "sigla",
          "nome"
        ]
      },
      "InstituicaoDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "sigla": {
            "type": "string"
          },
          "nome": {
            "type": "string"
          },
          "ativo": {
            "type": "boolean"
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "type": "string"
          },
          "retencaoMeses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "controladorNome": {
            "type": [
              "string",
              "null"
            ],
            "description": "The institution's privacy data; the API always sends them (null when not provided)."
          },
          "encarregadoNome": {
            "type": [
              "string",
              "null"
            ]
          },
          "contatoPrivacidade": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "sigla",
          "nome",
          "ativo",
          "locale",
          "timezone",
          "retencaoMeses"
        ],
        "additionalProperties": false
      },
      "JanelaFeedback": {
        "type": "object",
        "properties": {
          "estado": {
            "type": "string",
            "enum": [
              "sem_data",
              "nao_abriu",
              "aberta",
              "encerrada"
            ]
          },
          "prazoDias": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "abreEm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ],
            "description": "First day it can be written (the class end date); null without an end date."
          },
          "ate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ],
            "description": "Last day it can be written or adjusted; null without an end date."
          }
        },
        "required": [
          "estado",
          "prazoDias",
          "abreEm",
          "ate"
        ],
        "additionalProperties": false
      },
      "LinhaRelatorio": {
        "type": "object",
        "properties": {
          "linha": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "situacao": {
            "type": "string",
            "enum": [
              "VALIDA",
              "CRIADA",
              "VINCULADA",
              "INCLUIDA",
              "REATIVADA",
              "JA_EXISTE",
              "ERRO"
            ]
          },
          "rotulo": {
            "type": "string",
            "description": "What identifies the row for the importer (the email, or the date and description from the file itself)."
          },
          "campo": {
            "type": "string"
          },
          "codigo": {
            "type": "string",
            "enum": [
              "required",
              "invalid",
              "too_long",
              "out_of_range",
              "duplicate",
              "not_found"
            ]
          }
        },
        "required": [
          "linha",
          "situacao",
          "rotulo"
        ],
        "additionalProperties": false
      },
      "LoginInput": {
        "type": "object",
        "properties": {
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "senha": {
            "$ref": "#/components/schemas/Senha"
          }
        },
        "required": [
          "email",
          "senha"
        ]
      },
      "LogoutInput": {
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string",
            "minLength": 20,
            "maxLength": 200
          },
          "dispositivoToken": {
            "type": "string",
            "minLength": 8,
            "maxLength": 4096,
            "pattern": "^[\\x21-\\x7E]+$"
          }
        },
        "required": [
          "refreshToken"
        ]
      },
      "MarcarLidas": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "ids": {
                "minItems": 1,
                "maxItems": 100,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            },
            "required": [
              "ids"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "todas": {
                "type": "boolean",
                "const": true
              }
            },
            "required": [
              "todas"
            ],
            "additionalProperties": false
          }
        ]
      },
      "MatriculaAtualizar": {
        "type": "object",
        "properties": {
          "ativo": {
            "type": "boolean"
          }
        },
        "required": [
          "ativo"
        ]
      },
      "MatriculaCriar": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "usuarioId": {
                "type": "string",
                "format": "uuid"
              }
            },
            "required": [
              "usuarioId"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "email": {
                "$ref": "#/components/schemas/Email"
              },
              "nome": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "nationality": {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "pattern": "^[A-Za-z]{2}$"
              }
            },
            "required": [
              "email",
              "nome"
            ],
            "additionalProperties": false
          }
        ]
      },
      "MatriculaDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "turmaId": {
            "type": "string",
            "format": "uuid"
          },
          "usuarioId": {
            "type": "string",
            "format": "uuid"
          },
          "ativo": {
            "type": "boolean"
          },
          "nome": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "CONVIDADO",
              "ATIVO",
              "SUSPENSO"
            ]
          },
          "jaExistia": {
            "type": "boolean",
            "description": "Only in the create-by-email response: the email already had an account and the person was bound to it."
          }
        },
        "required": [
          "id",
          "turmaId",
          "usuarioId",
          "ativo",
          "nome",
          "email",
          "status"
        ],
        "additionalProperties": false
      },
      "Me": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "type": "string"
          },
          "nome": {
            "type": "string"
          },
          "locale": {
            "type": "string",
            "enum": [
              "pt-BR",
              "es",
              "en-US"
            ]
          },
          "nationality": {
            "type": [
              "string",
              "null"
            ]
          },
          "vinculos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VinculoDto"
            }
          }
        },
        "required": [
          "id",
          "email",
          "nome",
          "locale",
          "nationality",
          "vinculos"
        ],
        "additionalProperties": false
      },
      "MediaCriterio": {
        "type": "object",
        "properties": {
          "criterioId": {
            "type": "string",
            "format": "uuid"
          },
          "media": {
            "type": "number"
          },
          "quantidade": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "criterioId",
          "media",
          "quantidade"
        ],
        "additionalProperties": false
      },
      "MensagemDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "turmaId": {
            "type": "string",
            "format": "uuid"
          },
          "autor": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "nome": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "nome"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Null when the author deleted their account."
          },
          "texto": {
            "type": [
              "string",
              "null"
            ],
            "description": "Null when the message was removed (the text is erased on removal)."
          },
          "criadaEm": {
            "type": "string"
          },
          "editadaEm": {
            "type": [
              "string",
              "null"
            ]
          },
          "removida": {
            "type": "boolean"
          },
          "removidaPorModeracao": {
            "type": "boolean",
            "description": "Removed by a moderator (not by the author)."
          },
          "cursor": {
            "type": "string",
            "description": "This message's cursor (use it in `depois` or `antes`)."
          }
        },
        "required": [
          "id",
          "turmaId",
          "autor",
          "texto",
          "criadaEm",
          "editadaEm",
          "removida",
          "removidaPorModeracao",
          "cursor"
        ],
        "additionalProperties": false
      },
      "MensagemTexto": {
        "type": "object",
        "properties": {
          "texto": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          }
        },
        "required": [
          "texto"
        ]
      },
      "MinhaAtividadeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "data": {
            "$ref": "#/components/schemas/Data"
          },
          "horaInicio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "horaFim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "local": {
            "type": [
              "string",
              "null"
            ]
          },
          "obrigatoria": {
            "type": "boolean"
          },
          "cancelada": {
            "type": "boolean"
          },
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "disciplina": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "sigla",
              "nome"
            ],
            "additionalProperties": false
          },
          "instituicao": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "sigla",
              "nome"
            ],
            "additionalProperties": false
          },
          "estado": {
            "type": "string",
            "enum": [
              "NAO_SOLICITADA",
              "SOLICITADA",
              "CONFIRMADA",
              "REJEITADA"
            ]
          },
          "presencaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "solicitadaEm": {
            "type": [
              "string",
              "null"
            ],
            "description": "When the request was made, if any."
          },
          "avaliadaEm": {
            "type": [
              "string",
              "null"
            ],
            "description": "When it was confirmed or rejected (null until assessed). The assessor is not included: students do not see staff names."
          },
          "comentarioAvaliador": {
            "type": [
              "string",
              "null"
            ],
            "description": "The assessor's comment. Only reaches the student themself and those who assess the class. To the student: the reason for a rejection always; for a confirmation only once the class releases grades."
          },
          "relato": {
            "type": [
              "string",
              "null"
            ],
            "description": "The account of the person's own attendance (the student may rewrite it). Only on the person's own rows."
          },
          "regrasPedido": {
            "type": "object",
            "properties": {
              "janelaInicio": {
                "type": "string"
              },
              "janelaFim": {
                "type": "string"
              },
              "fuso": {
                "type": "string"
              },
              "exigeLocal": {
                "type": "boolean"
              }
            },
            "required": [
              "janelaInicio",
              "janelaFim",
              "fuso",
              "exigeLocal"
            ],
            "additionalProperties": false,
            "description": "So clients can warn before sending what the server will require: the request window (with the class tolerances), the institution's time zone (another day = different local date) and whether the geofence applies (without location, a justification is needed). The server still decides: this only avoids send, error, resend."
          }
        },
        "required": [
          "id",
          "matriculaId",
          "data",
          "horaInicio",
          "horaFim",
          "descricao",
          "local",
          "obrigatoria",
          "cancelada",
          "turma",
          "disciplina",
          "instituicao",
          "estado",
          "presencaId",
          "solicitadaEm",
          "avaliadaEm",
          "comentarioAvaliador",
          "regrasPedido"
        ],
        "additionalProperties": false
      },
      "MinhaConversa": {
        "type": "object",
        "properties": {
          "turmaId": {
            "type": "string",
            "format": "uuid"
          },
          "turmaNome": {
            "type": "string"
          },
          "disciplinaNome": {
            "type": "string"
          },
          "instituicaoSigla": {
            "type": "string"
          },
          "ativa": {
            "type": "boolean"
          },
          "naoLida": {
            "type": "boolean",
            "description": "There is an unread message notification in this class."
          }
        },
        "required": [
          "turmaId",
          "turmaNome",
          "disciplinaNome",
          "instituicaoSigla",
          "ativa",
          "naoLida"
        ],
        "additionalProperties": false
      },
      "MinhasAtividades": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MinhaAtividadeDto"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "MinhasConversas": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MinhaConversa"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "NivelSupervisao": {
        "type": "integer",
        "minimum": 1,
        "maximum": 5
      },
      "Nota": {
        "type": "object",
        "properties": {
          "criterioId": {
            "type": "string",
            "format": "uuid"
          },
          "valor": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 100
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "criterioId",
          "valor"
        ],
        "additionalProperties": false
      },
      "NotificacaoDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "evento": {
            "type": "string",
            "enum": [
              "PEDIDO_PENDENTE",
              "LEMBRETE_AVALIADOR",
              "AVALIACAO_FEITA",
              "MENSAGEM_CHAT",
              "LEMBRETE_ATIVIDADE",
              "CONVITE_SUS",
              "CONTA_EXCLUIDA"
            ]
          },
          "criadaEm": {
            "type": "string"
          },
          "lida": {
            "type": "boolean"
          },
          "turmaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ],
            "description": "Only ids and class/activity names, to build the text and link in the reader's language. Never message text."
          },
          "turmaNome": {
            "type": [
              "string",
              "null"
            ]
          },
          "instituicaoNome": {
            "default": null,
            "type": [
              "string",
              "null"
            ],
            "description": "Institution name (only in the deleted-account notice, which has no class)."
          },
          "atividadeId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "atividadeData": {
            "type": [
              "string",
              "null"
            ],
            "description": "Activity date (YYYY-MM-DD), when there is one."
          },
          "quantidade": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991,
            "description": "How many events this notification groups (e.g. 3 new messages)."
          }
        },
        "required": [
          "id",
          "evento",
          "criadaEm",
          "lida",
          "turmaId",
          "turmaNome",
          "instituicaoNome",
          "atividadeId",
          "atividadeData",
          "quantidade"
        ],
        "additionalProperties": false
      },
      "NotificacoesPagina": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificacaoDto"
            }
          },
          "proximo": {
            "type": [
              "string",
              "null"
            ]
          },
          "naoLidas": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "items",
          "proximo",
          "naoLidas"
        ],
        "additionalProperties": false
      },
      "Painel": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PainelItem"
            }
          },
          "truncado": {
            "type": "boolean",
            "description": "There were more rows than the limit."
          },
          "opcoes": {
            "type": "object",
            "properties": {
              "instituicoes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "sigla": {
                      "type": "string"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "sigla",
                    "nome"
                  ],
                  "additionalProperties": false
                }
              },
              "disciplinas": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "sigla": {
                      "type": "string"
                    },
                    "nome": {
                      "type": "string"
                    },
                    "instituicaoId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "id",
                    "sigla",
                    "nome",
                    "instituicaoId"
                  ],
                  "additionalProperties": false
                }
              },
              "turmas": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nome": {
                      "type": "string"
                    },
                    "disciplinaId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "ativo": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "nome",
                    "disciplinaId",
                    "ativo"
                  ],
                  "additionalProperties": false
                }
              },
              "alunos": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "nome"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "instituicoes",
              "disciplinas",
              "turmas",
              "alunos"
            ],
            "additionalProperties": false,
            "description": "Filter options: everything the person can see, regardless of the active filters."
          }
        },
        "required": [
          "items",
          "truncado",
          "opcoes"
        ],
        "additionalProperties": false
      },
      "PainelItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "data": {
            "$ref": "#/components/schemas/Data"
          },
          "horaInicio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "horaFim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Hora"
              },
              {
                "type": "null"
              }
            ]
          },
          "descricao": {
            "type": [
              "string",
              "null"
            ]
          },
          "local": {
            "type": [
              "string",
              "null"
            ]
          },
          "obrigatoria": {
            "type": "boolean"
          },
          "cancelada": {
            "type": "boolean"
          },
          "turma": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "disciplina": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "sigla",
              "nome"
            ],
            "additionalProperties": false
          },
          "instituicao": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "sigla",
              "nome"
            ],
            "additionalProperties": false
          },
          "estado": {
            "type": "string",
            "enum": [
              "NAO_SOLICITADA",
              "SOLICITADA",
              "CONFIRMADA",
              "REJEITADA"
            ]
          },
          "presencaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "solicitadaEm": {
            "type": [
              "string",
              "null"
            ]
          },
          "avaliadaEm": {
            "type": [
              "string",
              "null"
            ]
          },
          "comentarioAvaliador": {
            "type": [
              "string",
              "null"
            ]
          },
          "relato": {
            "type": [
              "string",
              "null"
            ]
          },
          "regrasPedido": {
            "type": "object",
            "properties": {
              "janelaInicio": {
                "type": "string"
              },
              "janelaFim": {
                "type": "string"
              },
              "fuso": {
                "type": "string"
              },
              "exigeLocal": {
                "type": "boolean"
              }
            },
            "required": [
              "janelaInicio",
              "janelaFim",
              "fuso",
              "exigeLocal"
            ],
            "additionalProperties": false
          },
          "aluno": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "nome"
            ],
            "additionalProperties": false
          },
          "proprio": {
            "type": "boolean",
            "description": "The row belongs to the person themself (as a student)."
          },
          "podeAvaliar": {
            "type": "boolean",
            "description": "Can confirm or reject this attendance (assesses the class and it is not their own)."
          }
        },
        "required": [
          "id",
          "matriculaId",
          "data",
          "horaInicio",
          "horaFim",
          "descricao",
          "local",
          "obrigatoria",
          "cancelada",
          "turma",
          "disciplina",
          "instituicao",
          "estado",
          "presencaId",
          "solicitadaEm",
          "avaliadaEm",
          "comentarioAvaliador",
          "regrasPedido",
          "aluno",
          "proprio",
          "podeAvaliar"
        ],
        "additionalProperties": false
      },
      "ParametrosDto": {
        "type": "object",
        "properties": {
          "nivel": {
            "type": "string",
            "enum": [
              "plataforma",
              "instituicao"
            ]
          },
          "valores": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "herdados": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        },
        "required": [
          "nivel",
          "valores",
          "herdados"
        ],
        "additionalProperties": false
      },
      "ParametrosInstituicaoAtualizar": {
        "type": "object",
        "properties": {
          "turma.tolerancia_antes_min": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "turma.tolerancia_depois_min": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "senha.tamanho_minimo": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 8,
                "maximum": 128
              },
              {
                "type": "null"
              }
            ]
          },
          "senha.historico": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 24
              },
              {
                "type": "null"
              }
            ]
          },
          "senha.intervalo_min_horas": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 168
              },
              {
                "type": "null"
              }
            ]
          },
          "sessao.expira_dias": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 365
              },
              {
                "type": "null"
              }
            ]
          },
          "auditoria.retencao_meses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 240
              },
              {
                "type": "null"
              }
            ]
          },
          "lembrete.atividade_antecedencia_min": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 1440
              },
              {
                "type": "null"
              }
            ]
          },
          "lembrete.avaliador_pendencia_horas": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 168
              },
              {
                "type": "null"
              }
            ]
          },
          "notificacao.silencio_inicio_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 23
              },
              {
                "type": "null"
              }
            ]
          },
          "notificacao.silencio_fim_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 23
              },
              {
                "type": "null"
              }
            ]
          },
          "sus.convite_intervalo_dias": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 730
              },
              {
                "type": "null"
              }
            ]
          },
          "feedback.prazo_dias": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 180
              },
              {
                "type": "null"
              }
            ]
          },
          "chat.retencao_meses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 240
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "ParametrosPlataformaAtualizar": {
        "type": "object",
        "properties": {
          "turma.tolerancia_antes_min": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "turma.tolerancia_depois_min": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "senha.tamanho_minimo": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 8,
                "maximum": 128
              },
              {
                "type": "null"
              }
            ]
          },
          "senha.historico": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 24
              },
              {
                "type": "null"
              }
            ]
          },
          "senha.intervalo_min_horas": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 168
              },
              {
                "type": "null"
              }
            ]
          },
          "sessao.expira_dias": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 365
              },
              {
                "type": "null"
              }
            ]
          },
          "auditoria.retencao_meses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 240
              },
              {
                "type": "null"
              }
            ]
          },
          "dados.retencao_meses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 240
              },
              {
                "type": "null"
              }
            ]
          },
          "lembrete.atividade_antecedencia_min": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 1440
              },
              {
                "type": "null"
              }
            ]
          },
          "lembrete.avaliador_pendencia_horas": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 168
              },
              {
                "type": "null"
              }
            ]
          },
          "notificacao.silencio_inicio_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 23
              },
              {
                "type": "null"
              }
            ]
          },
          "notificacao.silencio_fim_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 23
              },
              {
                "type": "null"
              }
            ]
          },
          "sus.convite_intervalo_dias": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 730
              },
              {
                "type": "null"
              }
            ]
          },
          "feedback.prazo_dias": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 180
              },
              {
                "type": "null"
              }
            ]
          },
          "chat.retencao_meses": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 240
              },
              {
                "type": "null"
              }
            ]
          },
          "notificacao.retencao_dias": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 3650
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "Pendente": {
        "type": "object",
        "properties": {
          "atividade": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "data": {
                "$ref": "#/components/schemas/Data"
              },
              "descricao": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "data",
              "descricao"
            ],
            "additionalProperties": false
          },
          "linha": {
            "$ref": "#/components/schemas/PresencaLinha"
          }
        },
        "required": [
          "atividade",
          "linha"
        ],
        "additionalProperties": false
      },
      "Pendentes": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Pendente"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "PerfilAtualizar": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "nationality": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "pattern": "^[A-Za-z]{2}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "lattesUrl": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "string",
                    "const": ""
                  },
                  {
                    "type": "string",
                    "maxLength": 300
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Lattes CV address (https)."
          },
          "conselhoCodigo": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 60
              },
              {
                "type": "null"
              }
            ],
            "description": "Number at the professional council. Only the person themself sees it."
          },
          "anoGraduacao": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1930,
                "maximum": 2100
              },
              {
                "type": "null"
              }
            ]
          },
          "residencia": {
            "type": "boolean"
          },
          "especializacao": {
            "type": "boolean"
          },
          "mestrado": {
            "type": "boolean"
          },
          "doutorado": {
            "type": "boolean"
          },
          "minibio": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "PerfilDto": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "nationality": {
            "type": [
              "string",
              "null"
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "lattesUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "conselhoCodigo": {
            "type": [
              "string",
              "null"
            ]
          },
          "anoGraduacao": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "residencia": {
            "type": "boolean"
          },
          "especializacao": {
            "type": "boolean"
          },
          "mestrado": {
            "type": "boolean"
          },
          "doutorado": {
            "type": "boolean"
          },
          "minibio": {
            "type": [
              "string",
              "null"
            ]
          },
          "temFoto": {
            "type": "boolean",
            "description": "Is there a profile photo? The photo itself comes from `GET /me/foto`."
          },
          "fotoEm": {
            "type": [
              "string",
              "null"
            ],
            "description": "Changes with each photo change (use it to refresh the avatar cache)."
          }
        },
        "required": [
          "nome",
          "email",
          "nationality",
          "locale",
          "lattesUrl",
          "conselhoCodigo",
          "anoGraduacao",
          "residencia",
          "especializacao",
          "mestrado",
          "doutorado",
          "minibio",
          "temFoto",
          "fotoEm"
        ],
        "additionalProperties": false
      },
      "PoliticaDto": {
        "type": "object",
        "properties": {
          "versao": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "textos": {
            "$ref": "#/components/schemas/TermoTextos"
          },
          "publicadoEm": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "urlPublica": {
            "type": "string"
          }
        },
        "required": [
          "versao",
          "textos",
          "publicadoEm",
          "urlPublica"
        ],
        "additionalProperties": false
      },
      "PoliticaPublica": {
        "type": "object",
        "properties": {
          "instituicao": {
            "type": "object",
            "properties": {
              "sigla": {
                "type": "string"
              },
              "nome": {
                "type": "string"
              }
            },
            "required": [
              "sigla",
              "nome"
            ],
            "additionalProperties": false
          },
          "politica": {
            "$ref": "#/components/schemas/TermoDto"
          },
          "privacidade": {
            "$ref": "#/components/schemas/PrivacidadeDto"
          },
          "urlPublica": {
            "type": "string"
          }
        },
        "required": [
          "instituicao",
          "politica",
          "privacidade",
          "urlPublica"
        ],
        "additionalProperties": false
      },
      "Preferencia": {
        "type": "object",
        "properties": {
          "evento": {
            "type": "string",
            "enum": [
              "PEDIDO_PENDENTE",
              "LEMBRETE_AVALIADOR",
              "AVALIACAO_FEITA",
              "MENSAGEM_CHAT",
              "LEMBRETE_ATIVIDADE",
              "CONVITE_SUS",
              "CONTA_EXCLUIDA"
            ]
          },
          "inApp": {
            "type": "boolean"
          },
          "push": {
            "type": "boolean"
          }
        },
        "required": [
          "evento",
          "inApp",
          "push"
        ],
        "additionalProperties": false
      },
      "Preferencias": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Preferencia"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "PreferenciasAtualizar": {
        "type": "object",
        "properties": {
          "items": {
            "minItems": 1,
            "maxItems": 7,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Preferencia"
            }
          }
        },
        "required": [
          "items"
        ]
      },
      "PresencaDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "atividadeId": {
            "type": "string",
            "format": "uuid"
          },
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "estado": {
            "type": "string",
            "enum": [
              "SOLICITADA",
              "CONFIRMADA",
              "REJEITADA"
            ]
          },
          "solicitadaEm": {
            "type": "string"
          },
          "capturadaEm": {
            "type": [
              "string",
              "null"
            ]
          },
          "relato": {
            "type": [
              "string",
              "null"
            ]
          },
          "justificativa": {
            "type": [
              "string",
              "null"
            ]
          },
          "excecoes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FORA_DA_JANELA",
                "FORA_DA_CERCA",
                "OUTRO_DIA"
              ]
            }
          },
          "avaliadaEm": {
            "type": [
              "string",
              "null"
            ]
          },
          "comentarioAvaliador": {
            "type": [
              "string",
              "null"
            ]
          },
          "notas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Nota"
            },
            "description": "Only for those who assess the class. Students see their grades in the panel after the class releases them."
          },
          "nivelSupervisao": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/NivelSupervisao"
              },
              {
                "type": "null"
              }
            ],
            "description": "Supervision level given by the last assessor; null = not provided. Only for assessors (students read it in the assessment after release)."
          },
          "relatoEditadoEm": {
            "type": [
              "string",
              "null"
            ],
            "description": "Last edit of the account by the student; null = never edited. After `avaliadaEm` = edited after the assessment."
          },
          "relatoVersoes": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "How many earlier versions of the account exist (assessors read them at `.../relato/versoes`)."
          }
        },
        "required": [
          "id",
          "atividadeId",
          "matriculaId",
          "estado",
          "solicitadaEm",
          "capturadaEm",
          "relato",
          "justificativa",
          "excecoes",
          "avaliadaEm",
          "comentarioAvaliador",
          "notas"
        ],
        "additionalProperties": false
      },
      "PresencaLinha": {
        "type": "object",
        "properties": {
          "matriculaId": {
            "type": "string",
            "format": "uuid"
          },
          "usuarioId": {
            "type": "string",
            "format": "uuid"
          },
          "nome": {
            "type": "string"
          },
          "presenca": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PresencaDto"
              },
              {
                "type": "null"
              }
            ]
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "type": [
              "number",
              "null"
            ]
          },
          "precisaoM": {
            "type": [
              "number",
              "null"
            ]
          },
          "avaliador": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "nome": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "nome"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ],
            "description": "Who assessed last: only in the assessor's view, never the student's."
          },
          "dentroDaArea": {
            "type": "string",
            "enum": [
              "dentro",
              "fora",
              "sem_localizacao"
            ],
            "description": "Where the request fell relative to the activity's geofence, only the band (never metres): the same rule that requires a justification. Absent = the geofence does not apply to this activity (off or no centre/radius) or there is no request."
          }
        },
        "required": [
          "matriculaId",
          "usuarioId",
          "nome",
          "presenca",
          "lat",
          "lng",
          "precisaoM"
        ],
        "additionalProperties": false
      },
      "PresencaLinhas": {
        "type": "object",
        "properties": {
          "atividade": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "turmaId": {
                "type": "string",
                "format": "uuid"
              },
              "data": {
                "$ref": "#/components/schemas/Data"
              },
              "descricao": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "turmaId",
              "data",
              "descricao"
            ],
            "additionalProperties": false
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PresencaLinha"
            }
          }
        },
        "required": [
          "atividade",
          "items"
        ],
        "additionalProperties": false
      },
      "PresencaSolicitar": {
        "type": "object",
        "properties": {
          "relato": {
            "type": "string",
            "maxLength": 2000,
            "description": "Up to 2000 characters."
          },
          "justificativa": {
            "type": "string",
            "maxLength": 2000,
            "description": "Required when the request falls under an exception."
          },
          "clienteId": {
            "type": "string",
            "format": "uuid",
            "description": "Generated on the device: resending the offline queue does not duplicate."
          },
          "capturadaEm": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
            "description": "The moment the device captured the request (offline queue)."
          },
          "lat": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "lng": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "precisaoM": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000000
          }
        },
        "additionalProperties": false
      },
      "PrimeiroAcessoConfirmarInput": {
        "type": "object",
        "properties": {
          "email": {
            "$ref": "#/components/schemas/Email"
          },
          "codigo": {
            "type": "string",
            "pattern": "^\\d{6}$"
          },
          "senha": {
            "$ref": "#/components/schemas/Senha"
          }
        },
        "required": [
          "email",
          "codigo",
          "senha"
        ]
      },
      "PrimeiroAcessoSolicitarInput": {
        "type": "object",
        "properties": {
          "email": {
            "$ref": "#/components/schemas/Email"
          }
        },
        "required": [
          "email"
        ]
      },
      "PrivacidadeDto": {
        "type": "object",
        "properties": {
          "controlador": {
            "type": [
              "string",
              "null"
            ]
          },
          "encarregado": {
            "type": [
              "string",
              "null"
            ]
          },
          "contato": {
            "type": "string"
          },
          "contatoPadrao": {
            "type": "boolean"
          }
        },
        "required": [
          "controlador",
          "encarregado",
          "contato",
          "contatoPadrao"
        ],
        "additionalProperties": false
      },
      "PushWebConfig": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string"
          },
          "appId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "messagingSenderId": {
            "type": "string"
          },
          "vapidKey": {
            "type": "string",
            "description": "Public VAPID key, if the project uses its own; without it the SDK uses Firebase's default."
          }
        },
        "required": [
          "apiKey",
          "appId",
          "projectId",
          "messagingSenderId"
        ],
        "additionalProperties": false
      },
      "QrResolver": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 20,
            "maxLength": 2000
          }
        },
        "required": [
          "token"
        ],
        "additionalProperties": false
      },
      "QrResolvido": {
        "type": "object",
        "properties": {
          "turmaId": {
            "type": "string",
            "format": "uuid"
          },
          "atividade": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "data": {
                "$ref": "#/components/schemas/Data"
              },
              "descricao": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "data",
              "descricao"
            ],
            "additionalProperties": false
          },
          "linha": {
            "$ref": "#/components/schemas/PresencaLinha"
          }
        },
        "required": [
          "turmaId",
          "atividade",
          "linha"
        ],
        "additionalProperties": false
      },
      "QrToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string"
          },
          "expiraEm": {
            "type": "string"
          }
        },
        "required": [
          "token",
          "expiraEm"
        ],
        "additionalProperties": false
      },
      "RedefinirSenhaInput": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 20,
            "maxLength": 200
          },
          "senha": {
            "$ref": "#/components/schemas/Senha"
          }
        },
        "required": [
          "token",
          "senha"
        ]
      },
      "RefreshInput": {
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string",
            "minLength": 20,
            "maxLength": 200
          }
        },
        "required": [
          "refreshToken"
        ]
      },
      "RelatoEditar": {
        "type": "object",
        "properties": {
          "relato": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "relato"
        ],
        "additionalProperties": false
      },
      "RelatoVersoes": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "texto": {
                  "type": "string"
                },
                "substituidoEm": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "texto",
                "substituidoEm"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "Rubrica": {
        "type": "object",
        "propertyNames": {
          "type": "string",
          "pattern": "^(0|[1-9][0-9]?|100)$"
        },
        "additionalProperties": {
          "type": "string",
          "minLength": 1,
          "maxLength": 40
        }
      },
      "Senha": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128
      },
      "Sessao": {
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          },
          "expiresIn": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Access token lifetime, in seconds."
          },
          "usuario": {
            "$ref": "#/components/schemas/Me"
          }
        },
        "required": [
          "accessToken",
          "refreshToken",
          "expiresIn",
          "usuario"
        ],
        "additionalProperties": false
      },
      "SessaoAtivaDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "agente": {
            "type": [
              "string",
              "null"
            ],
            "description": "User-Agent reported at login, truncated; may be null."
          },
          "criadaEm": {
            "type": "string"
          },
          "expiraEm": {
            "type": "string"
          },
          "atual": {
            "type": "boolean",
            "description": "It is the requester's own session (only if the refresh token was sent)."
          }
        },
        "required": [
          "id",
          "agente",
          "criadaEm",
          "expiraEm",
          "atual"
        ],
        "additionalProperties": false
      },
      "SessoesAtivas": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SessaoAtivaDto"
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "SusEnviada": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "pontuacao": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "pontuacao"
        ],
        "additionalProperties": false
      },
      "SusRespostaInput": {
        "type": "object",
        "properties": {
          "respostas": {
            "minItems": 10,
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5
            },
            "description": "The 10 items of the positive version, in order, on a 1–5 scale."
          },
          "observacoes": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "respostas"
        ]
      },
      "SusResumo": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "media": {
            "type": [
              "number",
              "null"
            ],
            "description": "Average SUS score; null without answers."
          },
          "porItem": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "description": "Average of each item (1–5), in order; empty without answers."
          }
        },
        "required": [
          "total",
          "media",
          "porItem"
        ],
        "additionalProperties": false
      },
      "TermoDto": {
        "type": "object",
        "properties": {
          "versao": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "textos": {
            "$ref": "#/components/schemas/TermoTextos"
          },
          "publicadoEm": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "versao",
          "textos",
          "publicadoEm"
        ],
        "additionalProperties": false
      },
      "TermoPublicar": {
        "type": "object",
        "properties": {
          "textos": {
            "$ref": "#/components/schemas/TermoTextos"
          }
        },
        "required": [
          "textos"
        ]
      },
      "TermosDosMeus": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "instituicao": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "sigla": {
                      "type": "string"
                    },
                    "nome": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "sigla",
                    "nome"
                  ],
                  "additionalProperties": false
                },
                "termo": {
                  "$ref": "#/components/schemas/TermoDto"
                },
                "politica": {
                  "$ref": "#/components/schemas/TermoDto"
                },
                "urlPublica": {
                  "type": "string"
                },
                "privacidade": {
                  "$ref": "#/components/schemas/PrivacidadeDto"
                }
              },
              "required": [
                "instituicao",
                "termo",
                "politica",
                "urlPublica",
                "privacidade"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "items"
        ],
        "additionalProperties": false
      },
      "TermoTextos": {
        "type": "object",
        "properties": {
          "pt-BR": {
            "type": "string",
            "maxLength": 60000
          },
          "es": {
            "type": "string",
            "maxLength": 60000
          },
          "en-US": {
            "type": "string",
            "maxLength": 60000
          }
        },
        "additionalProperties": false
      },
      "TrocarSenhaInput": {
        "type": "object",
        "properties": {
          "senhaAtual": {
            "$ref": "#/components/schemas/Senha"
          },
          "novaSenha": {
            "$ref": "#/components/schemas/Senha"
          }
        },
        "required": [
          "senhaAtual",
          "novaSenha"
        ]
      },
      "TurmaAtualizar": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "endereco": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "localAtividade": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "lat": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              {
                "type": "null"
              }
            ]
          },
          "lng": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              {
                "type": "null"
              }
            ]
          },
          "toleranciaAntesMin": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "toleranciaDepoisMin": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "notasVisiveisEm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          },
          "ativo": {
            "type": "boolean"
          }
        }
      },
      "TurmaCriar": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "endereco": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "localAtividade": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "lat": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              {
                "type": "null"
              }
            ]
          },
          "lng": {
            "anyOf": [
              {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              {
                "type": "null"
              }
            ]
          },
          "toleranciaAntesMin": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "toleranciaDepoisMin": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "maximum": 720
              },
              {
                "type": "null"
              }
            ]
          },
          "notasVisiveisEm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "nome"
        ]
      },
      "TurmaDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "disciplinaId": {
            "type": "string",
            "format": "uuid"
          },
          "instituicaoId": {
            "type": "string",
            "format": "uuid"
          },
          "nome": {
            "type": "string"
          },
          "ativo": {
            "type": "boolean"
          },
          "endereco": {
            "type": [
              "string",
              "null"
            ]
          },
          "localAtividade": {
            "type": [
              "string",
              "null"
            ]
          },
          "lat": {
            "type": [
              "number",
              "null"
            ]
          },
          "lng": {
            "type": [
              "number",
              "null"
            ]
          },
          "toleranciaAntesMin": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "toleranciaDepoisMin": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "notasVisiveisEm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          },
          "dataInicio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          },
          "dataFim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "disciplinaId",
          "instituicaoId",
          "nome",
          "ativo",
          "endereco",
          "localAtividade",
          "lat",
          "lng",
          "toleranciaAntesMin",
          "toleranciaDepoisMin",
          "notasVisiveisEm",
          "dataInicio",
          "dataFim"
        ],
        "additionalProperties": false
      },
      "TurmaPeriodo": {
        "type": "object",
        "properties": {
          "dataInicio": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          },
          "dataFim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Data"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "dataInicio",
          "dataFim"
        ],
        "additionalProperties": false
      },
      "TurmaProntidao": {
        "type": "object",
        "properties": {
          "centro": {
            "type": "boolean"
          },
          "toleranciaPropria": {
            "type": "boolean",
            "description": "The class's own tolerance; `false` = the default applies."
          },
          "atividadesFuturas": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Non-cancelled activities from today on (in the institution's time zone)."
          },
          "alunos": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "alunosComAcesso": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Students who already accepted the invitation (active account) and can record attendance."
          },
          "avaliadores": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "People with an active account who can confirm attendance in this class, at any level (class, discipline, institution)."
          },
          "avaliadoresConvidados": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "People who will be able to assess but have not accepted the invitation yet."
          }
        },
        "required": [
          "centro",
          "toleranciaPropria",
          "atividadesFuturas",
          "alunos",
          "alunosComAcesso",
          "avaliadores",
          "avaliadoresConvidados"
        ],
        "additionalProperties": false
      },
      "UsuarioAtualizar": {
        "type": "object",
        "properties": {
          "nome": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "nationality": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 2,
                "maxLength": 2,
                "pattern": "^[A-Za-z]{2}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "ATIVO",
              "SUSPENSO"
            ]
          }
        }
      },
      "UsuarioContagens": {
        "type": "object",
        "properties": {
          "todos": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "ativos": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "convidados": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "suspensos": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "todos",
          "ativos",
          "convidados",
          "suspensos"
        ],
        "additionalProperties": false
      },
      "UsuarioDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "email": {
            "type": "string"
          },
          "nome": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "CONVIDADO",
              "ATIVO",
              "SUSPENSO"
            ]
          },
          "nationality": {
            "type": [
              "string",
              "null"
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "pt-BR",
                  "es",
                  "en-US"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "compartilhado": {
            "type": "boolean",
            "description": "Has a binding or enrollment at another institution: only the platform changes name and status."
          },
          "jaExistia": {
            "type": "boolean",
            "description": "Only in the create response: the email already had an account and the person was bound to it."
          }
        },
        "required": [
          "id",
          "email",
          "nome",
          "status",
          "nationality",
          "locale",
          "compartilhado"
        ],
        "additionalProperties": false
      },
      "UsuarioLista": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsuarioDto"
            }
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "contagens": {
            "$ref": "#/components/schemas/UsuarioContagens"
          }
        },
        "required": [
          "items",
          "total"
        ],
        "additionalProperties": false
      },
      "VinculoAtualizar": {
        "type": "object",
        "properties": {
          "podeAvaliar": {
            "type": "boolean"
          },
          "podeCadastrar": {
            "type": "boolean"
          },
          "ativo": {
            "type": "boolean"
          }
        }
      },
      "VinculoCriar": {
        "type": "object",
        "properties": {
          "usuarioId": {
            "type": "string",
            "format": "uuid"
          },
          "papel": {
            "type": "string",
            "enum": [
              "CURADOR",
              "PRECEPTOR",
              "COORDENADOR",
              "PROFESSOR",
              "AUXILIAR"
            ]
          },
          "disciplinaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "turmaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "podeAvaliar": {
            "default": false,
            "type": "boolean"
          },
          "podeCadastrar": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "usuarioId",
          "papel"
        ]
      },
      "VinculoDto": {
        "type": "object",
        "properties": {
          "papel": {
            "type": "string",
            "enum": [
              "ADMIN_PLATAFORMA",
              "CURADOR",
              "PRECEPTOR",
              "COORDENADOR",
              "PROFESSOR",
              "AUXILIAR"
            ]
          },
          "instituicaoId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "disciplinaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "turmaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "podeAvaliar": {
            "type": "boolean"
          },
          "podeCadastrar": {
            "type": "boolean"
          }
        },
        "required": [
          "papel",
          "instituicaoId",
          "disciplinaId",
          "turmaId",
          "podeAvaliar",
          "podeCadastrar"
        ],
        "additionalProperties": false
      },
      "VinculoItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "usuarioId": {
            "type": "string",
            "format": "uuid"
          },
          "nome": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "papel": {
            "type": "string",
            "enum": [
              "ADMIN_PLATAFORMA",
              "CURADOR",
              "PRECEPTOR",
              "COORDENADOR",
              "PROFESSOR",
              "AUXILIAR"
            ]
          },
          "instituicaoId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "disciplinaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "turmaId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "podeAvaliar": {
            "type": "boolean"
          },
          "podeCadastrar": {
            "type": "boolean"
          },
          "ativo": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "usuarioId",
          "nome",
          "email",
          "papel",
          "instituicaoId",
          "disciplinaId",
          "turmaId",
          "podeAvaliar",
          "podeCadastrar",
          "ativo"
        ],
        "additionalProperties": false
      }
    }
  },
  "tags": [
    {
      "name": "Auditoria",
      "description": "The institution's event log, with statistics and export."
    },
    {
      "name": "Auth",
      "description": "Sign in, renew and end sessions; invitation, first access, password change and recovery."
    },
    {
      "name": "Contato",
      "description": "Website contact form, no sign-in."
    },
    {
      "name": "Disciplinas",
      "description": "A institution's disciplines."
    },
    {
      "name": "Catalogo",
      "description": "Catalog items of a discipline's professional activities, used to classify activities."
    },
    {
      "name": "Criterios",
      "description": "Criteria (and rubrics) a discipline uses to give grades."
    },
    {
      "name": "Turmas",
      "description": "Classes of a discipline: creation, period, assistants and readiness."
    },
    {
      "name": "Evolucao",
      "description": "A student's longitudinal progress by discipline."
    },
    {
      "name": "Perfil",
      "description": "The person's own profile, photo, active connections, terms and the app satisfaction survey."
    },
    {
      "name": "Health",
      "description": "Simple check that the API is up."
    },
    {
      "name": "Instituicoes",
      "description": "Institutions, privacy policy and terms of use of each one."
    },
    {
      "name": "Importacao",
      "description": "Bulk import of people, students and activities, with a dry run before writing."
    },
    {
      "name": "Parametros",
      "description": "Platform and institution parameters, inherited across levels."
    },
    {
      "name": "Usuarios",
      "description": "An institution's people and roles: creation, invitation and bindings."
    },
    {
      "name": "Conta",
      "description": "Deleting your own account, in the app or on the web."
    },
    {
      "name": "Me",
      "description": "Views for the signed-in person: home, activity panel and attendance statistics."
    },
    {
      "name": "PresencaAluno",
      "description": "What the student does: request attendance, edit the account and generate the activity QR."
    },
    {
      "name": "Conversa",
      "description": "Messages among a class's participants."
    },
    {
      "name": "Dispositivos",
      "description": "Devices that receive push notifications."
    },
    {
      "name": "Notificacoes",
      "description": "The person's notices and preferences by type."
    },
    {
      "name": "Autoavaliacao",
      "description": "The student's final self-assessment in a class."
    },
    {
      "name": "Avaliacao",
      "description": "A student's grades and assessment, seen by staff or by the student."
    },
    {
      "name": "Feedback",
      "description": "Closing feedback the staff writes for each student."
    },
    {
      "name": "PresencaAvaliador",
      "description": "What assessors do: request queue, confirm or reject, batch, QR reading and account versions."
    },
    {
      "name": "PoliticaPublica",
      "description": "An institution's public privacy policy page, no sign-in."
    },
    {
      "name": "PushWeb",
      "description": "Public configuration to receive push notifications in the browser."
    },
    {
      "name": "Atividades",
      "description": "A class's activity calendar (lessons, shifts, practice sessions)."
    },
    {
      "name": "EstatisticasTurma",
      "description": "Attendance and grade statistics of a class, with export."
    },
    {
      "name": "Frequencia",
      "description": "A class's attendance grid (students × activities)."
    },
    {
      "name": "Matriculas",
      "description": "Students enrolled in a class."
    }
  ]
}