openapi: 3.0.3
info:
  title: 'API Open Desk PRO'
  description: ''
  version: 1.0.0
servers:
  -
    url: 'http://localhost'
paths:
  /api/login:
    post:
      summary: 'Iniciar sesión'
      operationId: iniciarSesin
      description: 'El método de login requiere usuario y contraseña. Los accesos los encuentra dentro de su deployment en Control de Acceso -> Dispositivos en el botón "API".'
      parameters: []
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL21pY29tLm9wZW5kZXNrLm14L2FwaS9sb2dpbiIsImlhdCI6MTY4MTg2ODYyMCwiZXhwIjoxNjgxODcyMjIwLCJuYmYiOjE2ODE4Njg2MjAsImp0aSI6IlRxQnZzNU91Q2RRM0JRYlMiLCJzdWIiOiIxIiwicHJ2IjoiYjU2MTRlNGEzZDhmMmU2Zjk1MGVmYzZlNWE5NWUzNzJmZmIzN2IzZCJ9.XX_yIs431-oU3tiGjMUYQl3ALNIYFjV2fFI5btOf_bg\",\n \"expiracion\": 60,\n}"
      tags:
        - Login
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                usuario:
                  type: string
                  description: ''
                  example: dwXdEgOSDd2Mc0DFsHzq
                password:
                  type: string
                  description: ''
                  example: '$L,0Z$13#-ARK%4V3M1$vQFE$4Yhiy'
              required:
                - usuario
                - password
      security: []
  '/api/control-acceso/dispositivo/{numero_serie}':
    post:
      summary: Crear
      operationId: crear
      description: "Permite dar de alta un nuevo dispositivo de acceso para hacer uso de la API.\n<aside class=\"notice\">No es posible crear nuevos dispositivos si ha alcanzado el máximo de licencias adquiridas o no cuenta con alguna.</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se creó el dispositivo exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se creó el dispositivo exitosamente'
      tags:
        - Dispositivos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                nombre:
                  type: string
                  description: ''
                  example: 'Acceso general'
                password:
                  type: string
                  description: ''
                  example: Pdlj4_4$sk2
              required:
                - nombre
                - password
    put:
      summary: Actualizar
      operationId: actualizar
      description: 'Actualiza datos del dispositivo.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Dispositivo actualizado exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Dispositivo actualizado exitosamente'
      tags:
        - Dispositivos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                nombre:
                  type: string
                  description: ''
                  example: 'Entrada principal'
                numero_serie:
                  type: string
                  description: ''
                  example: F0499483274
                password:
                  type: string
                  description: ''
                  example: pas4f123$rf
              required:
                - nombre
                - numero_serie
                - password
    delete:
      summary: Eliminar
      operationId: eliminar
      description: "Elimina dispositivo de acceso para uso en la API.\n<aside class=\"notice\">Si desea utilizar otro dispositivo en cambio de uno existente, es necesario primero eliminar uno para crear otro.</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Dispositivo eliminado exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Dispositivo eliminado exitosamente'
      tags:
        - Dispositivos
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/capacidades/{numero_serie}':
    get:
      summary: Capacidades
      operationId: capacidades
      description: 'Obtiene las capacidades del hardware del equipo de acceso.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  soporta_tarjeta: true
                  soporta_huella: true
                  soporta_rostro: true
                  modelo: DS-K1T341CMFW
                  firmware: V3.3.8
                  soporta_webhook: true
                  soporta_fecha_hora: true
                  soporta_apertura_puerta: true
                  tipos_autenticacion_soportada: 'cardAndPw,card,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAndFp,faceAndPw,faceAndCard,face,faceAndFpAndCard,faceAndPwAndFp,fpOrface,cardOrFace,cardOrFaceOrFp'
                  soporta_password: true
                  cantidad_puertas: 1
                  limite_usuarios: 3000
                  limite_tarjetas: 3000
                  limite_rostros: 3000
                  usuarios_registrados: 3
                  soporta_captura_huella: true
                  soporta_captura_rostro: true
                  cantidad_rostros_registrados: 3
                  soporta_deteccion_cubrebocas: true
                  soporta_deteccion_casco: false
                  soporta_deteccion_temperatura: false
                  soporta_capturar_tarjeta: false
                  cantidad_tarjetas_registradas: 0
                  errores: []
                properties:
                  soporta_tarjeta:
                    type: boolean
                    example: true
                  soporta_huella:
                    type: boolean
                    example: true
                  soporta_rostro:
                    type: boolean
                    example: true
                  modelo:
                    type: string
                    example: DS-K1T341CMFW
                  firmware:
                    type: string
                    example: V3.3.8
                  soporta_webhook:
                    type: boolean
                    example: true
                  soporta_fecha_hora:
                    type: boolean
                    example: true
                  soporta_apertura_puerta:
                    type: boolean
                    example: true
                  tipos_autenticacion_soportada:
                    type: string
                    example: 'cardAndPw,card,fp,fpAndPw,fpOrCard,fpAndCard,fpAndCardAndPw,faceOrFpOrCardOrPw,faceAndFp,faceAndPw,faceAndCard,face,faceAndFpAndCard,faceAndPwAndFp,fpOrface,cardOrFace,cardOrFaceOrFp'
                  soporta_password:
                    type: boolean
                    example: true
                  cantidad_puertas:
                    type: integer
                    example: 1
                  limite_usuarios:
                    type: integer
                    example: 3000
                  limite_tarjetas:
                    type: integer
                    example: 3000
                  limite_rostros:
                    type: integer
                    example: 3000
                  usuarios_registrados:
                    type: integer
                    example: 3
                  soporta_captura_huella:
                    type: boolean
                    example: true
                  soporta_captura_rostro:
                    type: boolean
                    example: true
                  cantidad_rostros_registrados:
                    type: integer
                    example: 3
                  soporta_deteccion_cubrebocas:
                    type: boolean
                    example: true
                  soporta_deteccion_casco:
                    type: boolean
                    example: false
                  soporta_deteccion_temperatura:
                    type: boolean
                    example: false
                  soporta_capturar_tarjeta:
                    type: boolean
                    example: false
                  cantidad_tarjetas_registradas:
                    type: integer
                    example: 0
                  errores:
                    type: array
                    example: []
      tags:
        - Dispositivos
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/reiniciar/{numero_serie}':
    get:
      summary: Reiniciar
      operationId: reiniciar
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'El equipo ya está reiniciandose'
                properties:
                  mensaje:
                    type: string
                    example: 'El equipo ya está reiniciandose'
      tags:
        - Dispositivos
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/fecha-hora/{numero_serie}':
    get:
      summary: 'Obtener fecha y hora'
      operationId: obtenerFechaYHora
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  fecha_hora: '2023-08-05T11:09:36-06:00'
                properties:
                  fecha_hora:
                    type: string
                    example: '2023-08-05T11:09:36-06:00'
      tags:
        - Dispositivos
    put:
      summary: 'Configurar fecha y hora'
      operationId: configurarFechaYHora
      description: 'Actualiza la fecha y hora del dispositivo.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Hora y fecha actualizada correctamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Hora y fecha actualizada correctamente.'
      tags:
        - Dispositivos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fecha_hora:
                  type: string
                  description: ''
                  example: '2022-04-20T12:52:58-05:00'
              required:
                - fecha_hora
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/estatus/{numero_serie}':
    get:
      summary: Estatus
      operationId: estatus
      description: 'Sirve para validar si un dispositivo se encuentra en línea.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  en_linea: true
                  canales: 1
                properties:
                  en_linea:
                    type: boolean
                    example: true
                  canales:
                    type: integer
                    example: 1
      tags:
        - Dispositivos
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/servidor/{numero_serie}':
    get:
      summary: 'Servidor del dispositivo'
      operationId: servidorDelDispositivo
      description: 'Obtiene el servidor ISUP al que tiene que apuntar el dispositivo.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n      \"g1.opendesk.mx\"\n  }"
      tags:
        - Dispositivos
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/puerta-parametros/{numero_serie}':
    put:
      summary: 'Parámetros de puerta'
      operationId: parmetrosDePuerta
      description: 'Permite asignar un nombre a la puerta y el tiempo de apertura del relevador.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Parámetros de puerta actualizados correctamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Parámetros de puerta actualizados correctamente'
      tags:
        - Puertas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                puerta:
                  type: integer
                  description: ''
                  example: 1
                tiempo:
                  type: integer
                  description: 'Definido en segundos'
                  example: 5
                nombre:
                  type: string
                  description: 'Es el nombre para identificar la puerta'
                  example: '5'
              required:
                - puerta
                - tiempo
                - nombre
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/puerta/{numero_serie}':
    put:
      summary: 'Comando a puerta'
      operationId: comandoAPuerta
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Comando de puerta ejecutado correctamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Comando de puerta ejecutado correctamente'
      tags:
        - Puertas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                puerta:
                  type: integer
                  description: ''
                  example: 1
                comando:
                  type: string
                  description: 'Los comandos permitidos son: abrir, cerrar, siempreAbierta o siempreCerrada'
                  example: abrir
              required:
                - puerta
                - comando
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/webhook/{numero_serie}':
    put:
      summary: 'Asignar webhook'
      operationId: asignarWebhook
      description: "Al configurar este parámetro, el dispositivo de acceso comenzará a enviar todos los eventos en tiempo real de acceso. Es necesario revisar la documentación de Hikvision para validar como llega dicha información.\n<aside class=\"notice\">Si el dispositivo tiene eventos pasados sin enviar a un webhook comenzará a enviar todos desde el inicio de la configuración del mismo. Recomendamos hacer un reestablecimiento de fábrica antes de configurar este parámetro.</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se registró webhook correctamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Se registró webhook correctamente.'
      tags:
        - Eventos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: ''
                  example: 'https://miservidor.com/webhook/<id_dispositivo>'
                puerto:
                  type: integer
                  description: ''
                  example: 443
              required:
                - url
                - puerto
    delete:
      summary: 'Eliminar webhook'
      operationId: eliminarWebhook
      description: 'Desuscribe el dispositivo a cualquier webhook previamente configurado.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se desuscribió webhook exitosamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Se desuscribió webhook exitosamente.'
      tags:
        - Eventos
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/eventos/{numero_serie}':
    post:
      summary: 'Obtener eventos'
      operationId: obtenerEventos
      description: 'Obtiene los eventos del dispositivo en el rango de fechas establecido. El inicio y fin deben estar este formato: 2022-01-03T14:16:59-06:00. El idenficidaor ayuda a la indexación de búsqueda con paginación. La posición es la página de los eventos que regresa la consulta.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  eventos:
                    AcsEventSearchResult:
                      MatchList:
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '18'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Alfredo Jiménez'
                          serialNo: 1086
                          time: '2023-08-02T11:10:28-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1087
                          time: '2023-08-02T11:10:28-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 22
                          serialNo: 1088
                          time: '2023-08-02T11:10:33-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 28
                          serialNo: 1089
                          time: '2023-08-02T11:11:03-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '11'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Héctor Jiménez'
                          serialNo: 1090
                          time: '2023-08-02T11:12:34-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1091
                          time: '2023-08-02T11:12:34-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 22
                          serialNo: 1092
                          time: '2023-08-02T11:12:39-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 28
                          serialNo: 1093
                          time: '2023-08-02T11:13:09-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '17'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Pablo Sepulveda'
                          serialNo: 1094
                          time: '2023-08-02T11:17:43-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1095
                          time: '2023-08-02T11:17:43-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '17'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Pablo Sepulveda'
                          serialNo: 1096
                          time: '2023-08-02T11:17:45-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 22
                          serialNo: 1097
                          time: '2023-08-02T11:17:50-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 28
                          serialNo: 1098
                          time: '2023-08-02T11:18:20-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '17'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Pablo Sepulveda'
                          serialNo: 1099
                          time: '2023-08-02T12:43:01-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1100
                          time: '2023-08-02T12:43:01-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 22
                          serialNo: 1101
                          time: '2023-08-02T12:43:06-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 28
                          serialNo: 1102
                          time: '2023-08-02T12:43:36-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '11'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Héctor Jiménez'
                          serialNo: 1103
                          time: '2023-08-02T12:59:18-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1104
                          time: '2023-08-02T12:59:18-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 22
                          serialNo: 1105
                          time: '2023-08-02T12:59:23-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 28
                          serialNo: 1106
                          time: '2023-08-02T12:59:53-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '18'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Alfredo Jiménez'
                          serialNo: 1107
                          time: '2023-08-02T13:04:50-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1108
                          time: '2023-08-02T13:04:50-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 22
                          serialNo: 1109
                          time: '2023-08-02T13:04:55-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '11'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Héctor Jiménez'
                          serialNo: 1110
                          time: '2023-08-02T13:05:18-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1111
                          time: '2023-08-02T13:05:18-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 22
                          serialNo: 1112
                          time: '2023-08-02T13:05:23-06:00'
                          type: 0
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 28
                          serialNo: 1113
                          time: '2023-08-02T13:05:53-06:00'
                          type: 0
                        -
                          cardReaderNo: 1
                          cardType: 1
                          currentVerifyMode: faceOrFpOrCardOrPw
                          doorNo: 1
                          employeeNoString: '17'
                          major: 5
                          mask: 'no'
                          minor: 75
                          name: 'Pablo Sepulveda'
                          serialNo: 1114
                          time: '2023-08-02T13:42:28-06:00'
                          type: 0
                          userType: normal
                        -
                          currentVerifyMode: invalid
                          doorNo: 1
                          major: 5
                          mask: unknown
                          minor: 21
                          serialNo: 1115
                          time: '2023-08-02T13:42:28-06:00'
                          type: 0
                      numOfMatches: 30
                      responseStatusStrg: MORE
                      searchID: '1612382692'
                      totalMatches: 41
                properties:
                  eventos:
                    type: object
                    properties:
                      AcsEventSearchResult:
                        type: object
                        properties:
                          MatchList:
                            type: array
                            example:
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '18'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Alfredo Jiménez'
                                serialNo: 1086
                                time: '2023-08-02T11:10:28-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1087
                                time: '2023-08-02T11:10:28-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 22
                                serialNo: 1088
                                time: '2023-08-02T11:10:33-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 28
                                serialNo: 1089
                                time: '2023-08-02T11:11:03-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '11'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Héctor Jiménez'
                                serialNo: 1090
                                time: '2023-08-02T11:12:34-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1091
                                time: '2023-08-02T11:12:34-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 22
                                serialNo: 1092
                                time: '2023-08-02T11:12:39-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 28
                                serialNo: 1093
                                time: '2023-08-02T11:13:09-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '17'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Pablo Sepulveda'
                                serialNo: 1094
                                time: '2023-08-02T11:17:43-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1095
                                time: '2023-08-02T11:17:43-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '17'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Pablo Sepulveda'
                                serialNo: 1096
                                time: '2023-08-02T11:17:45-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 22
                                serialNo: 1097
                                time: '2023-08-02T11:17:50-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 28
                                serialNo: 1098
                                time: '2023-08-02T11:18:20-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '17'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Pablo Sepulveda'
                                serialNo: 1099
                                time: '2023-08-02T12:43:01-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1100
                                time: '2023-08-02T12:43:01-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 22
                                serialNo: 1101
                                time: '2023-08-02T12:43:06-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 28
                                serialNo: 1102
                                time: '2023-08-02T12:43:36-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '11'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Héctor Jiménez'
                                serialNo: 1103
                                time: '2023-08-02T12:59:18-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1104
                                time: '2023-08-02T12:59:18-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 22
                                serialNo: 1105
                                time: '2023-08-02T12:59:23-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 28
                                serialNo: 1106
                                time: '2023-08-02T12:59:53-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '18'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Alfredo Jiménez'
                                serialNo: 1107
                                time: '2023-08-02T13:04:50-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1108
                                time: '2023-08-02T13:04:50-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 22
                                serialNo: 1109
                                time: '2023-08-02T13:04:55-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '11'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Héctor Jiménez'
                                serialNo: 1110
                                time: '2023-08-02T13:05:18-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1111
                                time: '2023-08-02T13:05:18-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 22
                                serialNo: 1112
                                time: '2023-08-02T13:05:23-06:00'
                                type: 0
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 28
                                serialNo: 1113
                                time: '2023-08-02T13:05:53-06:00'
                                type: 0
                              -
                                cardReaderNo: 1
                                cardType: 1
                                currentVerifyMode: faceOrFpOrCardOrPw
                                doorNo: 1
                                employeeNoString: '17'
                                major: 5
                                mask: 'no'
                                minor: 75
                                name: 'Pablo Sepulveda'
                                serialNo: 1114
                                time: '2023-08-02T13:42:28-06:00'
                                type: 0
                                userType: normal
                              -
                                currentVerifyMode: invalid
                                doorNo: 1
                                major: 5
                                mask: unknown
                                minor: 21
                                serialNo: 1115
                                time: '2023-08-02T13:42:28-06:00'
                                type: 0
                            items:
                              type: object
                              properties:
                                cardReaderNo:
                                  type: integer
                                  example: 1
                                cardType:
                                  type: integer
                                  example: 1
                                currentVerifyMode:
                                  type: string
                                  example: faceOrFpOrCardOrPw
                                doorNo:
                                  type: integer
                                  example: 1
                                employeeNoString:
                                  type: string
                                  example: '18'
                                major:
                                  type: integer
                                  example: 5
                                mask:
                                  type: string
                                  example: 'no'
                                minor:
                                  type: integer
                                  example: 75
                                name:
                                  type: string
                                  example: 'Alfredo Jiménez'
                                serialNo:
                                  type: integer
                                  example: 1086
                                time:
                                  type: string
                                  example: '2023-08-02T11:10:28-06:00'
                                type:
                                  type: integer
                                  example: 0
                                userType:
                                  type: string
                                  example: normal
                          numOfMatches:
                            type: integer
                            example: 30
                          responseStatusStrg:
                            type: string
                            example: MORE
                          searchID:
                            type: string
                            example: '1612382692'
                          totalMatches:
                            type: integer
                            example: 41
      tags:
        - Eventos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                inicio:
                  type: string
                  description: ''
                  example: '2023-08-01T14:16:59-06:00'
                fin:
                  type: string
                  description: ''
                  example: '2023-08-02T14:16:59-06:00'
                identificador_busqueda:
                  type: string
                  description: ''
                  example: '1612382692'
                posicion:
                  type: intenger
                  description: ''
                  example: '0'
              required:
                - inicio
                - fin
                - identificador_busqueda
                - posicion
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/persona/{numero_serie}':
    post:
      summary: Crear
      operationId: crear
      description: 'Crea una nueva persona para posteriormente poder asignarle biométricos.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se registró la persona en el dispositivo exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se registró la persona en el dispositivo exitosamente'
      tags:
        - Personas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: 'Identificador único de la persona'
                  example: P034
                nombre:
                  type: string
                  description: ''
                  example: 'Pedro Perez'
                tipo:
                  type: string
                  description: 'Puede ser normal o vistor no se establece se asigna "normal"'
                  example: visitor
                limiteVisitas:
                  type: string
                  description: 'Es la cantidad de registros que puede hacer, si no se asigna son ilimitados.'
                  example: '1'
                password:
                  type: string
                  description: 'Es la contraseña de acceso por teclado'
                  example: '8472'
                tipoAutenticacion:
                  type: string
                  description: 'Debe ser una aceptada por el biométrico. Es conveniente revisar primero las capacidades del mismo.'
                  example: face
                puertas:
                  type: string
                  description: 'Son las puertas a las que tiene permitido acceder separadas por coma'
                  example: '1'
                inicio:
                  type: string
                  description: 'Es el inicio del vencimiento de su acceso'
                  example: '2021-12-01T01:00:00'
                fin:
                  type: string
                  description: 'Es el inicio del vencimiento de su acceso'
                  example: '2030-12-31T23:59:59'
              required:
                - id
                - nombre
                - tipoAutenticacion
                - puertas
                - inicio
                - fin
    put:
      summary: Actualizar
      operationId: actualizar
      description: 'Actualiza una persona previamente creada, el id debe estar previamente registrado.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se actualizó la persona en el dispositivo exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se actualizó la persona en el dispositivo exitosamente'
      tags:
        - Personas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: 'Identificador único de la persona'
                  example: P034
                nombre:
                  type: string
                  description: ''
                  example: 'Pedro Perez'
                tipo:
                  type: string
                  description: 'Puede ser normal o vistor no se establece se asigna "normal"'
                  example: visitor
                limiteVisitas:
                  type: string
                  description: 'Es la cantidad de registros que puede hacer, si no se asigna son ilimitados.'
                  example: '1'
                password:
                  type: string
                  description: 'Es la contraseña de acceso por teclado'
                  example: '8472'
                tipoAutenticacion:
                  type: string
                  description: 'Debe ser una aceptada por el biométrico. Es conveniente revisar primero las capacidades del mismo.'
                  example: face
                puertas:
                  type: string
                  description: 'Son las puertas a las que tiene permitido acceder separadas por coma'
                  example: '1'
                inicio:
                  type: string
                  description: 'Es el inicio del vencimiento de su acceso'
                  example: '2021-12-01T01:00:00'
                fin:
                  type: string
                  description: 'Es el inicio del vencimiento de su acceso'
                  example: '2030-12-31T23:59:59'
              required:
                - id
                - nombre
                - tipoAutenticacion
                - puertas
                - inicio
                - fin
    delete:
      summary: Eliminar
      operationId: eliminar
      description: 'Elimina una persona por id.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se eliminó la persona en el dispositivo exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se eliminó la persona en el dispositivo exitosamente'
      tags:
        - Personas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: 'Identificador único de la persona'
                  example: P034
              required:
                - id
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/tarjeta/{numero_serie}':
    get:
      summary: Obtener
      operationId: obtener
      description: 'Obtiene la útlima tarjeta con registro fallido del biométrico para posteriormente enrolarla.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  numero_tarjeta: '3558887621'
                properties:
                  numero_tarjeta:
                    type: string
                    example: '3558887621'
      tags:
        - Tarjetas
    put:
      summary: Asignar
      operationId: asignar
      description: "Asigna una tarjeta a una persona previamente registrada.\n<aside class=\"notice\">Este mismo método es utilizado para enrolar códigos QR.</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se asignó la tarjeta exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se asignó la tarjeta exitosamente'
      tags:
        - Tarjetas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                persona_id:
                  type: string
                  description: ''
                  example: P034
                tarjeta:
                  type: string
                  description: ''
                  example: '3558887621'
              required:
                - persona_id
                - tarjeta
    delete:
      summary: Eliminar
      operationId: eliminar
      description: "Elimina una tarjeta del biométrico.\n<aside class=\"notice\">Este mismo método es utilizado para enrolar códigos QR.</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se eliminó la tarjeta exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se eliminó la tarjeta exitosamente'
      tags:
        - Tarjetas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tarjeta:
                  type: string
                  description: ''
                  example: '3558887621'
              required:
                - tarjeta
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/huella/{numero_serie}':
    post:
      summary: Obtener
      operationId: obtener
      description: 'Pone el biométrico en modo enrolamiento para obtener el binario de la huella.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  dedo: 1
                  huella: MzAxGzZNFViwBU6FJVicfEr9JiicZV6NJjiU3oRtJjjI6M+JJWjkePKlJXjYbeb1Jkjcaw6BJjjM2x5ZJXjQgj4ZJTisg0pBJDiID1fNJEiIgnYRJTi0fHxFJCisCawVJTjIegWmFUjc6CT5Fji4ZSo9Fxig3kJ1FxiYYUpFFyig2b55J0jgaeJBJ0jg4N3dJyjwbPmhFkiYZf91JiiQ4wm+JmjIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYhMAoROHAt0E6I92ITV3A95QHxMkoA18XBUBU9ABfOwqRnNzD3o6H3OBrgV4jzYhMUYCZY8qEkF1DIJKXmCAuQAFtRURwdwKg0JJgxLhFWkhEjES6Adr/BQBXeQTYXxDdWEhGGUOSDJS6hbgcDkCJEAZ40ckELSIEt7uSjI34QsPawogcwYacAAAAAAAxHM=
                  calidad: 98
                properties:
                  dedo:
                    type: integer
                    example: 1
                  huella:
                    type: string
                    example: MzAxGzZNFViwBU6FJVicfEr9JiicZV6NJjiU3oRtJjjI6M+JJWjkePKlJXjYbeb1Jkjcaw6BJjjM2x5ZJXjQgj4ZJTisg0pBJDiID1fNJEiIgnYRJTi0fHxFJCisCawVJTjIegWmFUjc6CT5Fji4ZSo9Fxig3kJ1FxiYYUpFFyig2b55J0jgaeJBJ0jg4N3dJyjwbPmhFkiYZf91JiiQ4wm+JmjIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYhMAoROHAt0E6I92ITV3A95QHxMkoA18XBUBU9ABfOwqRnNzD3o6H3OBrgV4jzYhMUYCZY8qEkF1DIJKXmCAuQAFtRURwdwKg0JJgxLhFWkhEjES6Adr/BQBXeQTYXxDdWEhGGUOSDJS6hbgcDkCJEAZ40ckELSIEt7uSjI34QsPawogcwYacAAAAAAAxHM=
                  calidad:
                    type: integer
                    example: 98
      tags:
        - Huellas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dedo:
                  type: integer
                  description: ''
                  example: 1
              required:
                - dedo
    put:
      summary: Asignar
      operationId: asignar
      description: 'Asigna una huella previamente capturada a una persona.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se asignó la huella digital exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se asignó la huella digital exitosamente'
      tags:
        - Huellas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dedo:
                  type: integer
                  description: ''
                  example: 1
                persona_id:
                  type: string
                  description: ''
                  example: P034
                huella:
                  type: string
                  description: ''
                  example: MzAxGzZNFViwBU6FJVicfEr9JiicZV6NJjiU3oRtJjjI6M+JJWjkePKlJXjYbeb1Jkjcaw6BJjjM2x5ZJXjQgj4ZJTisg0pBJDiID1fNJEiIgnYRJTi0fHxFJCisCawVJTjIegWmFUjc6CT5Fji4ZSo9Fxig3kJ1FxiYYUpFFyig2b55J0jgaeJBJ0jg4N3dJyjwbPmhFkiYZf91JiiQ4wm+JmjIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYhMAoROHAt0E6I92ITV3A95QHxMkoA18XBUBU9ABfOwqRnNzD3o6H3OBrgV4jzYhMUYCZY8qEkF1DIJKXmCAuQAFtRURwdwKg0JJgxLhFWkhEjES6Adr/BQBXeQTYXxDdWEhGGUOSDJS6hbgcDkCJEAZ40ckELSIEt7uSjI34QsPawogcwYacAAAAAAAxHM=
              required:
                - dedo
                - persona_id
                - huella
    delete:
      summary: Eliminar
      operationId: eliminar
      description: 'Elimina una huella previamente asignada a una persona.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se eliminó la huella digital exitosamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Se eliminó la huella digital exitosamente.'
      tags:
        - Huellas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dedo:
                  type: integer
                  description: ''
                  example: 1
                persona_id:
                  type: string
                  description: ''
                  example: P034
              required:
                - dedo
                - persona_id
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/rostro/{numero_serie}':
    post:
      summary: Asignar
      operationId: asignar
      description: "Asigna un archivo de imagen con el rostro a una persona.\n<aside class=\"notice\">El archivo de imagen no debe pasar los 200kb.</aside>"
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se registró el rostro exitosamente'
                properties:
                  mensaje:
                    type: string
                    example: 'Se registró el rostro exitosamente'
      tags:
        - Rostros
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                persona_id:
                  type: string
                  description: ''
                  example: P034
                rostro:
                  type: string
                  format: binary
                  description: ''
              required:
                - persona_id
                - rostro
    delete:
      summary: Eliminar
      operationId: eliminar
      description: 'Elimina el rostro previamente asignado a una persona.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se eliminó el rostro exitosamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Se eliminó el rostro exitosamente.'
      tags:
        - Rostros
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                persona_id:
                  type: string
                  description: ''
                  example: P034
              required:
                - persona_id
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/cubrebocas/{numero_serie}':
    put:
      summary: Cubrebocas
      operationId: cubrebocas
      description: 'Asigna las políticas de detección de cubrebocas si el dispositivo lo soporta.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se actualizó la política de cubrebocas exitosamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Se actualizó la política de cubrebocas exitosamente.'
      tags:
        - Políticas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                solicitar:
                  type: boolean
                  description: ''
                  example: true
                politica:
                  type: string
                  description: 'Los parámetros permitidos son: SOLO_ADVERTIR y NEGAR_ACCESO'
                  example: SOLO_ADVERTIR
              required:
                - solicitar
                - politica
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/casco/{numero_serie}':
    put:
      summary: Casco
      operationId: casco
      description: 'Asigna las políticas de detección de casco si el dispositivo lo soporta.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se actualizó la política de casco exitosamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Se actualizó la política de casco exitosamente.'
      tags:
        - Políticas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                solicitar:
                  type: boolean
                  description: ''
                  example: true
                politica:
                  type: string
                  description: 'Los parámetros permitidos son: SOLO_ADVERTIR y NEGAR_ACCESO'
                  example: SOLO_ADVERTIR
              required:
                - solicitar
                - politica
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
  '/api/control-acceso/temperatura/{numero_serie}':
    put:
      summary: Temperatura
      operationId: temperatura
      description: 'Asigna las políticas de detección de temperatura si el dispositivo lo soporta.'
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  mensaje: 'Se actualizó la política de temperatura exitosamente.'
                properties:
                  mensaje:
                    type: string
                    example: 'Se actualizó la política de temperatura exitosamente.'
      tags:
        - Políticas
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                medir_temperatura:
                  type: boolean
                  description: ''
                  example: true
                apertura_puerta_temperatura_anormal:
                  type: boolean
                  description: ''
                  example: true
                apertura_puerta_sin_registro_persona:
                  type: boolean
                  description: ''
                  example: true
                temperatura_minima:
                  type: string
                  description: ''
                  example: '35'
                temperatura_maxima:
                  type: string
                  description: ''
                  example: '38.5'
              required:
                - medir_temperatura
                - apertura_puerta_temperatura_anormal
                - apertura_puerta_sin_registro_persona
                - temperatura_minima
                - temperatura_maxima
    parameters:
      -
        in: path
        name: numero_serie
        description: ''
        example: F0499483274
        required: true
        schema:
          type: string
tags:
  -
    name: Login
    description: ''
  -
    name: Dispositivos
    description: ''
  -
    name: Puertas
    description: ''
  -
    name: Eventos
    description: ''
  -
    name: Personas
    description: ''
  -
    name: Tarjetas
    description: ''
  -
    name: Huellas
    description: ''
  -
    name: Rostros
    description: ''
  -
    name: Políticas
    description: ''
