MinSalud.SIIFA.API.Seguridad

No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
More information: https://openapi-generator.tech
Contact Info: team@openapitools.org
Version: v1.0.2
BasePath:
All rights reserved
http://apache.org/licenses/LICENSE-2.0.html

Access

  1. HTTP Bearer Token authentication (JWT)

Methods

[ Jump to Models ]

Table of Contents

Auth

Rol

User

WeatherForecast

Auth

Up
post /api/Auth/login
Autentica un usuario y retorna un JWT si las credenciales son válidas. (apiAuthLoginPost)
Este endpoint permite a los usuarios autenticarse proporcionando su nombre de usuario y contraseña. Si las credenciales son correctas, se genera y retorna un token JWT que puede ser utilizado para acceder a recursos protegidos.

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Command MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Command (optional)
Body Parameter

Return type

MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "errors" : [ "errors", "errors" ],
  "token" : "token"
}

Example data

Content-Type: text/json
Custom MIME type example not yet supported: text/json

Example data

Content-Type: text/plain
Custom MIME type example not yet supported: text/plain

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: text/json
Custom MIME type example not yet supported: text/json

Example data

Content-Type: text/plain
Custom MIME type example not yet supported: text/plain

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Autenticación exitosa, retorna el token JWT. MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Result

400

Credenciales inválidas. Microsoft.AspNetCore.Mvc.ProblemDetails

Rol

Up
get /api/Rol/GetRolList
Obtiene una lista de roles registrados en el sistema (apiRolGetRolListGet)

Este endpoint permite consultar todos los roles del sistema

Control de acceso por roles:

Sample request:

POST /api/Rol/GetRolList
{
  "id": "4687cc90-5789-40cd-9a18-d8fa83ec60e9",
  "name": "SIIFA_IPS"
}

Query parameters

query (optional)
Query Parameter — default: null

Return type

MinSalud.SIIFA.API.Seguridad.Utilities.PaginadorGenerico_1__MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result_MinSalud.SIIFA.API.Seguridad_Version_1.0.0.0_Culture_neutral_PublicKeyToken_null__

Example data

Content-Type: application/json
{
  "totalRegistros" : 1,
  "paginaActual" : 0,
  "resultado" : [ {
    "segundoNombre" : "segundoNombre",
    "primerNombre" : "primerNombre",
    "primerApellido" : "primerApellido",
    "segundoApellido" : "segundoApellido",
    "userName" : "userName",
    "userId" : "userId",
    "tipoDocumento" : "tipoDocumento",
    "userRoles" : [ {
      "name" : "name",
      "id" : "id"
    }, {
      "name" : "name",
      "id" : "id"
    } ],
    "phoneNumber" : "phoneNumber",
    "numeroDocumento" : "numeroDocumento",
    "userClaims" : [ {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    }, {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    } ],
    "email" : "email",
    "activo" : true
  }, {
    "segundoNombre" : "segundoNombre",
    "primerNombre" : "primerNombre",
    "primerApellido" : "primerApellido",
    "segundoApellido" : "segundoApellido",
    "userName" : "userName",
    "userId" : "userId",
    "tipoDocumento" : "tipoDocumento",
    "userRoles" : [ {
      "name" : "name",
      "id" : "id"
    }, {
      "name" : "name",
      "id" : "id"
    } ],
    "phoneNumber" : "phoneNumber",
    "numeroDocumento" : "numeroDocumento",
    "userClaims" : [ {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    }, {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    } ],
    "email" : "email",
    "activo" : true
  } ],
  "totalPaginas" : 5,
  "registrosPorPagina" : 6
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Lista de roles obtenida exitosamente. MinSalud.SIIFA.API.Seguridad.Utilities.PaginadorGenerico_1__MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result_MinSalud.SIIFA.API.Seguridad_Version_1.0.0.0_Culture_neutral_PublicKeyToken_null__

400

Parámetros de consulta inválidos. Verifique los valores de paginación y ordenamiento. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Acceso denegado. El usuario no tiene permisos para consultar usuarios. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al procesar la consulta. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
delete /api/Rol/{Id}
Elimina permanentemente un rol del sistema por su identificador único. (apiRolIdDelete)

Este endpoint permite eliminar un rol del sistema de forma permanente. Esta operación es irreversible.

Restricciones importantes:

Sample request:

DELETE /api/Rol/a1b2c3d4-e5f6-7890-abcd-ef1234567890

Path parameters

Id (required)
Path Parameter — default: null

Return type

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.DeleteRol_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "errors" : [ "errors", "errors" ]
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Rol eliminado exitosamente. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.DeleteRol_Result

400

ID de rol inválido. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Acceso denegado. Solo SIIFA_Admin puede eliminar roles. Microsoft.AspNetCore.Mvc.ProblemDetails

404

Rol no encontrado. No existe un rol con el ID especificado. Microsoft.AspNetCore.Mvc.ProblemDetails

409

Conflicto. El rol no puede ser eliminado porque está asignado a usuarios. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al eliminar el rol. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
get /api/Rol/{Id}
Obtiene la información detallada de un rol específico por su identificador único. (apiRolIdGet)

Este endpoint permite consultar los datos de un rol registrado en el sistema.

Sample request:

GET /api/Rol/a1b2c3d4-e5f6-7890-abcd-ef1234567890

Path parameters

Id (required)
Path Parameter — default: null

Return type

MinSalud.SIIFA.API.Seguridad.Features.Rol.Queries.DetailRolById_Result

Example data

Content-Type: application/json
{
  "name" : "name",
  "id" : "id"
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Rol encontrado exitosamente. MinSalud.SIIFA.API.Seguridad.Features.Rol.Queries.DetailRolById_Result

400

ID de rol inválido. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Acceso denegado. Microsoft.AspNetCore.Mvc.ProblemDetails

404

Rol no encontrado. No existe un rol con el ID especificado. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al obtener el rol. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
post /api/Rol
Crea un nuevo rol en el sistema. (apiRolPost)

Este endpoint permite registrar un nuevo rol en el sistema.

Datos requeridos:

Validaciones automáticas:

Sample request:

POST /api/Rol
{
  "name": "SIIFA_IPS"
}

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Command MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Command (optional)
Body Parameter

Return type

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "id" : "id",
  "errors" : [ "errors", "errors" ]
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Rol creado exitosamente. Retorna el Id generado. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Result

400

Datos inválidos. Verifique que el nombre del rol sea válido. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Acceso denegado. Se requiere rol SIIFA_Admin. Microsoft.AspNetCore.Mvc.ProblemDetails

409

Conflicto. Ya existe un rol con el mismo nombre. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al crear el rol. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
put /api/Rol
Actualiza el nombre de un rol existente en el sistema. (apiRolPut)

Este endpoint permite modificar el nombre de un rol previamente registrado.

Datos requeridos:

Validaciones automáticas:

Sample request:

PUT /api/Rol
{
  "rolId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "SIIFA_IPS_Nuevo"
}

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Command MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Command (optional)
Body Parameter

Return type

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "errors" : [ "errors", "errors" ]
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Rol actualizado exitosamente. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Result

400

Datos inválidos. Verifique los campos requeridos. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Acceso denegado. Se requiere rol SIIFA_Admin. Microsoft.AspNetCore.Mvc.ProblemDetails

404

Rol no encontrado. No existe un rol con el Id especificado. Microsoft.AspNetCore.Mvc.ProblemDetails

409

Conflicto. Ya existe un rol con el mismo nombre. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al actualizar el rol. Microsoft.AspNetCore.Mvc.ProblemDetails

User

Up
get /api/User/GetUserList
Obtiene una lista paginada de usuarios registrados en el sistema con control de acceso basado en roles. (apiUserGetUserListGet)

Este endpoint permite consultar usuarios aplicando filtrado automático según el rol del usuario autenticado:

Control de acceso por roles:

Filtros disponibles:

Información devuelta por cada usuario:

Metadatos de paginación:

Sample request:

POST /api/User/GetUserList
{
  "userName": "juan",
  "email": "",
  "documento": "",
  "numPagina": 1,
  "registrosPagina": 10,
  "sortColumn": "username",
  "sortOrden": "asc"
}

Query parameters

UserName (optional)
Query Parameter — default: null
Email (optional)
Query Parameter — default: null
Documento (optional)
Query Parameter — default: null
NitEntidad (optional)
Query Parameter — default: null
NumPagina (optional)
Query Parameter — default: null format: int32
RegistrosPagina (optional)
Query Parameter — default: null format: int32
SortColumn (optional)
Query Parameter — default: null
SortOrden (optional)
Query Parameter — default: null

Return type

MinSalud.SIIFA.API.Seguridad.Utilities.PaginadorGenerico_1__MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result_MinSalud.SIIFA.API.Seguridad_Version_1.0.0.0_Culture_neutral_PublicKeyToken_null__

Example data

Content-Type: application/json
{
  "totalRegistros" : 1,
  "paginaActual" : 0,
  "resultado" : [ {
    "segundoNombre" : "segundoNombre",
    "primerNombre" : "primerNombre",
    "primerApellido" : "primerApellido",
    "segundoApellido" : "segundoApellido",
    "userName" : "userName",
    "userId" : "userId",
    "tipoDocumento" : "tipoDocumento",
    "userRoles" : [ {
      "name" : "name",
      "id" : "id"
    }, {
      "name" : "name",
      "id" : "id"
    } ],
    "phoneNumber" : "phoneNumber",
    "numeroDocumento" : "numeroDocumento",
    "userClaims" : [ {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    }, {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    } ],
    "email" : "email",
    "activo" : true
  }, {
    "segundoNombre" : "segundoNombre",
    "primerNombre" : "primerNombre",
    "primerApellido" : "primerApellido",
    "segundoApellido" : "segundoApellido",
    "userName" : "userName",
    "userId" : "userId",
    "tipoDocumento" : "tipoDocumento",
    "userRoles" : [ {
      "name" : "name",
      "id" : "id"
    }, {
      "name" : "name",
      "id" : "id"
    } ],
    "phoneNumber" : "phoneNumber",
    "numeroDocumento" : "numeroDocumento",
    "userClaims" : [ {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    }, {
      "claimType" : "claimType",
      "claimValue" : "claimValue",
      "id" : 5
    } ],
    "email" : "email",
    "activo" : true
  } ],
  "totalPaginas" : 5,
  "registrosPorPagina" : 6
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Lista paginada de usuarios obtenida exitosamente con roles y claims asociados. MinSalud.SIIFA.API.Seguridad.Utilities.PaginadorGenerico_1__MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result_MinSalud.SIIFA.API.Seguridad_Version_1.0.0.0_Culture_neutral_PublicKeyToken_null__

400

Parámetros de consulta inválidos. Verifique los valores de paginación y ordenamiento. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Acceso denegado. El usuario no tiene permisos para consultar usuarios. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al procesar la consulta. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
post /api/User
Registra un nuevo usuario en el sistema con asignación de roles y claims. (apiUserPost)

Este endpoint permite crear un nuevo usuario en el sistema con validaciones automáticas de integridad.

Datos requeridos:

Datos opcionales:

Validaciones automáticas aplicadas:

  1. Validación de unicidad:

    • El UserName no debe existir en el sistema
    • El Email no debe estar registrado
    • El NumeroDocumento debe ser único
  2. Validación de formato:

    • Email debe tener formato válido
    • Password debe cumplir política de seguridad
    • Campos de texto no deben exceder longitudes máximas
  3. Validación de roles:

    • Los roles especificados deben existir en el sistema
    • Solo SIIFA_Admin puede asignar ciertos roles

Sample request:

POST /api/User
{
  "userName": "juan.perez",
  "email": "juan.perez@example.com",
  "password": "P@ssw0rd123!",
  "primerNombre": "Juan",
  "segundoNombre": "Carlos",
  "primerApellido": "Pérez",
  "segundoApellido": "Gómez",
  "tipoDocumento": "CC",
  "numeroDocumento": "1234567890",
  "phoneNumber": "+57 300 1234567",
  "roles": ["SIIFA_IPS"],
  "claims": [
    {
      "claimType": "NitEntidad",
      "claimValue": "900123456"
    }
  ]
}

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Command MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Command (optional)
Body Parameter

Return type

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "userId" : "userId",
  "errors" : [ "errors", "errors" ]
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Usuario registrado exitosamente. Retorna el ID del nuevo usuario y confirmación. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Result

400

Datos inválidos. Verifique campos requeridos, formatos y validaciones de unicidad. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

409

Conflicto. Ya existe un usuario con el mismo UserName, Email o NumeroDocumento. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al crear el usuario. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
post /api/User/Public
Registra un nuevo usuario en el sistema con asignación de roles y claims. (apiUserPublicPost)

Este endpoint permite crear un nuevo usuario en el sistema con validaciones automáticas de integridad. No es necesaria autenticación ni autorización para su consumo.

Datos requeridos:

Datos opcionales:

Validaciones automáticas aplicadas:

  1. Validación de unicidad:

    • El UserName no debe existir en el sistema
    • El Email no debe estar registrado
    • El NumeroDocumento debe ser único
  2. Validación de formato:

    • Email debe tener formato válido
    • Password debe cumplir política de seguridad
    • Campos de texto no deben exceder longitudes máximas
  3. Validación de roles:

    • Los roles especificados deben existir en el sistema
    • Solo SIIFA_Admin puede asignar ciertos roles

Sample request:

POST /api/User
{
  "userName": "juan.perez",
  "email": "juan.perez@example.com",
  "password": "P@ssw0rd123!",
  "primerNombre": "Juan",
  "segundoNombre": "Carlos",
  "primerApellido": "Pérez",
  "segundoApellido": "Gómez",
  "tipoDocumento": "CC",
  "numeroDocumento": "1234567890",
  "phoneNumber": "+57 300 1234567",
  "roles": ["SIIFA_IPS"],
  "claims": [
    {
      "claimType": "NitEntidad",
      "claimValue": "900123456"
    }
  ]
}

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUserPublic_Command MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUserPublic_Command (optional)
Body Parameter

Return type

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "userId" : "userId",
  "errors" : [ "errors", "errors" ]
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Usuario registrado exitosamente. Retorna el ID del nuevo usuario y confirmación. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Result

400

Datos inválidos. Verifique campos requeridos, formatos y validaciones de unicidad. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

409

Conflicto. Ya existe un usuario con el mismo UserName, Email o NumeroDocumento. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al crear el usuario. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
put /api/User
Actualiza la información de un usuario existente en el sistema. (apiUserPut)

Este endpoint permite modificar los datos de un usuario previamente registrado con control de acceso basado en roles.

Control de acceso:

  1. SIIFA_Admin:

    • Puede modificar TODOS los datos de cualquier usuario
    • Puede cambiar NitEntidad
    • Puede asignar cualquier rol
  2. SIIFA_ERP, SIIFA_IPS, SIIFA_FITS (y variantes _Gestor):

    • Solo pueden modificar usuarios de su misma entidad (mismo NitEntidad)
    • Pueden modificar: nombres, apellidos, tipo documento, número documento, email
    • Pueden asignar roles solo dentro de su ámbito:
      • SIIFA_IPS: puede asignar SIIFA_IPS, SIIFA_IPS_Gestor, SIIFA_IPS_Consulta
      • SIIFA_ERP: puede asignar SIIFA_ERP, SIIFA_ERP_Gestor, SIIFA_ERP_Consulta
      • SIIFA_FITS: puede asignar SIIFA_FITS, SIIFA_FITS_Gestor, SIIFA_FITS_Consulta
    • NO pueden modificar NitEntidad
  3. Otros roles:

    • No tienen permisos para modificar usuarios (devolverá 403)

Datos requeridos:

Campos opcionales:

Restricciones:

Validaciones automáticas:

  1. Validación de existencia:

    • El UserId debe corresponder a un usuario existente
  2. Validación de permisos:

    • Verifica que el usuario tenga rol Admin o roles operativos
    • Para roles operativos, valida que el NitEntidad coincida
    • Valida que los roles a asignar estén dentro del ámbito permitido
  3. Validación de formato:

    • Email debe tener formato válido
    • Todos los campos requeridos deben estar presentes

Sample request (Admin - puede modificar todo):

PUT /api/User
{
  "userId": "550e8400-e29b-41d4-a716-446655440000",
  "primerNombre": "Juan",
  "segundoNombre": "Carlos",
  "primerApellido": "Pérez",
  "segundoApellido": "Gómez",
  "tipoDocumento": "CC",
  "numeroDocumento": "1234567890",
  "email": "juan.perez@example.com",
  "nitEntidad": "900123456",
  "rolesSolicitados": ["SIIFA_IPS", "SIIFA_IPS_Gestor"]
}

Sample request (SIIFA_IPS - modificación limitada):

PUT /api/User
{
  "userId": "550e8400-e29b-41d4-a716-446655440000",
  "primerNombre": "María",
  "primerApellido": "López",
  "tipoDocumento": "CC",
  "numeroDocumento": "9876543210",
  "email": "maria.lopez@ips.com",
  "rolesSolicitados": ["SIIFA_IPS_Consulta"]
}

Consumes

This API call consumes the following media types via the Content-Type request header:

Request body

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Command MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Command (optional)
Body Parameter

Return type

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "errors" : [ "errors", "errors" ]
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Usuario actualizado exitosamente. Retorna confirmación de la actualización. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Result

400

Datos inválidos. Verifique campos requeridos, formatos y validaciones. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Prohibido. No tiene permisos para modificar este usuario o asignar los roles solicitados. Microsoft.AspNetCore.Mvc.ProblemDetails

404

Usuario no encontrado. No existe un usuario con el UserId especificado. Microsoft.AspNetCore.Mvc.ProblemDetails

409

Conflicto. Error al actualizar roles o claims del usuario. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al actualizar el usuario. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
delete /api/User/{UserId}
Elimina permanentemente un usuario del sistema por su identificador único. (apiUserUserIdDelete)

Este endpoint permite eliminar un usuario del sistema de forma permanente. Esta operación es irreversible y debe usarse con precaución.

Restricciones importantes:

Validaciones automáticas:

  1. Validación de existencia:

    • El usuario debe existir en la base de datos
  2. Validación de permisos:

    • Solo SIIFA_Admin puede ejecutar esta operación
  3. Validación de integridad:

    • Verifica si el usuario tiene datos relacionados que impedirían la eliminación

Eliminaciones en cascada:

Al eliminar un usuario, se eliminarán automáticamente:

Nota importante: Esta operación elimina el usuario y TODOS sus datos relacionados de forma permanente. No es posible recuperar la información después de la eliminación. Para deshabilitar temporalmente un usuario, considere usar el endpoint de actualización cambiando el campo Activo a false.

Sample request:

DELETE /api/User/550e8400-e29b-41d4-a716-446655440000

Path parameters

UserId (required)
Path Parameter — default: null

Return type

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.DeleteUser_Result

Example data

Content-Type: application/json
{
  "success" : true,
  "errors" : [ "errors", "errors" ]
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Usuario eliminado exitosamente junto con todos sus datos relacionados. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.DeleteUser_Result

400

ID de usuario inválido. Debe ser un GUID válido. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

403

Acceso denegado. Solo SIIFA_Admin puede eliminar usuarios. Microsoft.AspNetCore.Mvc.ProblemDetails

404

Usuario no encontrado. No existe un usuario con el ID especificado. Microsoft.AspNetCore.Mvc.ProblemDetails

409

Conflicto. El usuario no puede ser eliminado porque tiene datos relacionados críticos. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al eliminar el usuario. Microsoft.AspNetCore.Mvc.ProblemDetails

Up
get /api/User/{UserId}
Obtiene la información detallada de un usuario específico por su identificador único. (apiUserUserIdGet)

Este endpoint permite consultar los datos completos de un usuario, incluyendo:

Información personal:

Información de seguridad:

Validaciones:

Sample request:

GET /api/User/550e8400-e29b-41d4-a716-446655440000

Path parameters

UserId (required)
Path Parameter — default: null

Return type

MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_Result

Example data

Content-Type: application/json
{
  "segundoNombre" : "segundoNombre",
  "primerNombre" : "primerNombre",
  "primerApellido" : "primerApellido",
  "idUsuario" : "idUsuario",
  "segundoApellido" : "segundoApellido",
  "tipoDocumento" : "tipoDocumento",
  "twoFactorEnabled" : true,
  "userRoles" : [ {
    "name" : "name"
  }, {
    "name" : "name"
  } ],
  "phoneNumber" : "phoneNumber",
  "numeroDocumento" : "numeroDocumento",
  "userClaims" : [ {
    "claimType" : "claimType",
    "claimValue" : "claimValue"
  }, {
    "claimType" : "claimType",
    "claimValue" : "claimValue"
  } ],
  "email" : "email",
  "activo" : true
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Example data

Content-Type: application/json
{
  "instance" : "instance",
  "detail" : "detail",
  "type" : "type",
  "title" : "title",
  "status" : 0
}

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Usuario encontrado exitosamente con toda su información detallada. MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_Result

400

ID de usuario inválido. Debe ser un GUID válido. Microsoft.AspNetCore.Mvc.ProblemDetails

401

No autorizado. Token de autenticación inválido o no proporcionado. Microsoft.AspNetCore.Mvc.ProblemDetails

404

Usuario no encontrado. No existe un usuario con el ID especificado. Microsoft.AspNetCore.Mvc.ProblemDetails

500

Error interno del servidor al obtener el usuario. Microsoft.AspNetCore.Mvc.ProblemDetails

WeatherForecast

Up
get /WeatherForecast
(getWeatherForecast)

Return type

array[MinSalud.SIIFA.API.Seguridad.WeatherForecast]

Example data

Content-Type: application/json
[ {
  "date" : {
    "month" : 6,
    "year" : 0,
    "dayOfYear" : 5,
    "dayNumber" : 5,
    "day" : 1
  },
  "summary" : "summary",
  "temperatureC" : 2,
  "temperatureF" : 7
}, {
  "date" : {
    "month" : 6,
    "year" : 0,
    "dayOfYear" : 5,
    "dayNumber" : 5,
    "day" : 1
  },
  "summary" : "summary",
  "temperatureC" : 2,
  "temperatureF" : 7
} ]

Produces

This API call produces the following media types according to the Accept request header; the media type will be conveyed by the Content-Type response header.

Responses

200

Success

Models

[ Jump to Methods ]

Table of Contents

  1. Microsoft.AspNetCore.Mvc.ProblemDetails -
  2. MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Command -
  3. MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Result -
  4. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Command -
  5. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Result -
  6. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.DeleteRol_Result -
  7. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Command -
  8. MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Result -
  9. MinSalud.SIIFA.API.Seguridad.Features.Rol.Queries.DetailRolById_Result -
  10. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUserPublic_Command -
  11. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Command -
  12. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Result -
  13. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.DeleteUser_Result -
  14. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Command -
  15. MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Result -
  16. MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_Result -
  17. MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_UserClaims -
  18. MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_UserRoles -
  19. MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result -
  20. MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_ResultClaims -
  21. MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_ResultRoles -
  22. MinSalud.SIIFA.API.Seguridad.Utilities.PaginadorGenerico_1__MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result_MinSalud.SIIFA.API.Seguridad_Version_1.0.0.0_Culture_neutral_PublicKeyToken_null__ - PaginadorGenerico_Result
  23. MinSalud.SIIFA.API.Seguridad.WeatherForecast -
  24. System.DateOnly -
  25. System.DayOfWeek -

Microsoft.AspNetCore.Mvc.ProblemDetails - Up

type (optional)
title (optional)
status (optional)
Integer format: int32
detail (optional)
instance (optional)

MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Command - Up

userName (optional)
password (optional)

MinSalud.SIIFA.API.Seguridad.Features.Auth.Commands.Login_Result - Up

success (optional)
token (optional)
errors (optional)

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Command - Up

name (optional)

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.AddRol_Result - Up

id (optional)
success (optional)
errors (optional)

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.DeleteRol_Result - Up

success (optional)
errors (optional)

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Command - Up

id (optional)
name (optional)

MinSalud.SIIFA.API.Seguridad.Features.Rol.Commands.UpdateRol_Result - Up

success (optional)
errors (optional)

MinSalud.SIIFA.API.Seguridad.Features.Rol.Queries.DetailRolById_Result - Up

id (optional)
name (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUserPublic_Command - Up

primerNombre (optional)
segundoNombre (optional)
primerApellido (optional)
segundoApellido (optional)
tipoDocumento (optional)
numeroDocumento (optional)
email (optional)
nitEntidad (optional)
rolesSolicitados (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Command - Up

primerNombre (optional)
segundoNombre (optional)
primerApellido (optional)
segundoApellido (optional)
tipoDocumento (optional)
numeroDocumento (optional)
email (optional)
nitEntidad (optional)
rolesSolicitados (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.AddUser_Result - Up

userId (optional)
success (optional)
errors (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.DeleteUser_Result - Up

success (optional)
errors (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Command - Up

userId (optional)
primerNombre (optional)
segundoNombre (optional)
primerApellido (optional)
segundoApellido (optional)
tipoDocumento (optional)
numeroDocumento (optional)
email (optional)
phoneNumber (optional)
nitEntidad (optional)
activo (optional)
rolesSolicitados (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Commands.UpdateUser_Result - Up

success (optional)
errors (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_Result - Up

idUsuario (optional)
primerNombre (optional)
segundoNombre (optional)
primerApellido (optional)
segundoApellido (optional)
tipoDocumento (optional)
numeroDocumento (optional)
email (optional)
phoneNumber (optional)
twoFactorEnabled (optional)
activo (optional)
userRoles (optional)
userClaims (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_UserClaims - Up

claimType (optional)
claimValue (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserById_UserRoles - Up

name (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result - Up

userId (optional)
userName (optional)
primerNombre (optional)
segundoNombre (optional)
primerApellido (optional)
segundoApellido (optional)
tipoDocumento (optional)
numeroDocumento (optional)
email (optional)
phoneNumber (optional)
activo (optional)
userRoles (optional)
userClaims (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_ResultClaims - Up

id (optional)
Integer format: int32
claimType (optional)
claimValue (optional)

MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_ResultRoles - Up

id (optional)
name (optional)

MinSalud.SIIFA.API.Seguridad.Utilities.PaginadorGenerico_1__MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result_MinSalud.SIIFA.API.Seguridad_Version_1.0.0.0_Culture_neutral_PublicKeyToken_null__ - PaginadorGenerico_Result Up

paginaActual (optional)
Integer format: int32
registrosPorPagina (optional)
Integer Número de registros de la página devuelta. format: int32
totalRegistros (optional)
Integer Total de registros de consulta. format: int32
totalPaginas (optional)
Integer Total de páginas de la consulta. format: int32
resultado (optional)
array[MinSalud.SIIFA.API.Seguridad.Features.User.Queries.GetUserList_Result] Columna por la que esta ordenada la consulta actual.

MinSalud.SIIFA.API.Seguridad.WeatherForecast - Up

date (optional)
temperatureC (optional)
Integer format: int32
temperatureF (optional)
Integer format: int32
summary (optional)

System.DateOnly - Up

year (optional)
Integer format: int32
month (optional)
Integer format: int32
day (optional)
Integer format: int32
dayOfWeek (optional)
dayOfYear (optional)
Integer format: int32
dayNumber (optional)
Integer format: int32

System.DayOfWeek - Up