@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
160 lines • 5.51 kB
TypeScript
/**
* Enumeração que representa as possíveis ações de auditoria realizadas no sistema.
*
* @remarks
* Utilizado para identificar operações executadas em entidades, incluindo operações básicas de CRUD,
* autenticação, operações em massa, gerenciamento de arquivos, fluxos de aprovação e consultas específicas.
* Essencial para conformidade com LGPD e auditoria de sistemas de proteção de dados.
*
* @enum {string}
* @readonly
* @public
*/
export declare enum AcaoAuditoria {
/**
* Representa a ação de criação de um novo registro.
*/
CREATE = "CREATE",
/**
* Representa a ação de atualização completa de um registro existente.
*/
UPDATE = "UPDATE",
/**
* Representa a ação de exclusão de um registro.
*/
DELETE = "DELETE",
/**
* Representa a ação de modificação parcial (PATCH) de um registro.
*/
PATCH = "PATCH",
/**
* Representa a ação de consulta (GET) de um registro ou recurso.
*/
GET = "GET",
/**
* Representa a ação de criação em massa de múltiplos registros.
*/
BULK_CREATE = "BULK_CREATE",
/**
* Representa a ação de atualização em massa de múltiplos registros.
*/
BULK_UPDATE = "BULK_UPDATE",
/**
* Representa a ação de exclusão em massa de múltiplos registros.
*/
BULK_DELETE = "BULK_DELETE",
/**
* Representa a ação de restauração de um registro previamente excluído (soft delete).
*/
RESTORE = "RESTORE",
/**
* Representa a ação de exportação de dados do sistema.
*/
EXPORT = "EXPORT",
/**
* Representa a ação de importação de dados para o sistema.
*/
IMPORT = "IMPORT",
/**
* Representa a ação de upload de arquivos para o sistema.
*/
UPLOAD = "UPLOAD",
/**
* Representa a ação de download de arquivos do sistema.
*/
DOWNLOAD = "DOWNLOAD",
/**
* Representa a ação de compartilhamento de dados ou arquivos.
*/
SHARE = "SHARE",
/**
* Representa a ação de busca ou pesquisa de registros.
*/
SEARCH = "SEARCH",
/**
* Representa a ação de impressão de relatórios ou documentos.
*/
PRINT = "PRINT",
/**
* Representa a ação de login no sistema.
*/
LOGIN = "LOGIN",
/**
* Representa a ação de logout do sistema.
*/
LOGOUT = "LOGOUT",
/**
* Representa a ação de alteração de senha do usuário.
*/
CHANGE_PASSWORD = "CHANGE_PASSWORD",
/**
* Representa a ação de aprovação em um fluxo de trabalho.
*/
APPROVE = "APPROVE",
/**
* Representa a ação de rejeição em um fluxo de trabalho.
*/
REJECT = "REJECT",
/**
* Representa a ação de arquivamento de registros.
*/
ARCHIVE = "ARCHIVE",
/**
* Representa a ação de desarquivamento de registros.
*/
UNARCHIVE = "UNARCHIVE"
}
/** Lista imutável com os valores de AcaoAuditoria. */
export declare const ACAO_AUDITORIA_VALUES: readonly [AcaoAuditoria.CREATE, AcaoAuditoria.UPDATE, AcaoAuditoria.DELETE, AcaoAuditoria.PATCH, AcaoAuditoria.GET, AcaoAuditoria.BULK_CREATE, AcaoAuditoria.BULK_UPDATE, AcaoAuditoria.BULK_DELETE, AcaoAuditoria.RESTORE, AcaoAuditoria.EXPORT, AcaoAuditoria.IMPORT, AcaoAuditoria.UPLOAD, AcaoAuditoria.DOWNLOAD, AcaoAuditoria.SHARE, AcaoAuditoria.SEARCH, AcaoAuditoria.PRINT, AcaoAuditoria.LOGIN, AcaoAuditoria.LOGOUT, AcaoAuditoria.CHANGE_PASSWORD, AcaoAuditoria.APPROVE, AcaoAuditoria.REJECT, AcaoAuditoria.ARCHIVE, AcaoAuditoria.UNARCHIVE];
/** União literal dos valores de AcaoAuditoria. */
export type AcaoAuditoriaLiteral = (typeof ACAO_AUDITORIA_VALUES)[number];
/**
* Type guard para AcaoAuditoria.
*
* @param value - Valor a ser verificado em tempo de execução.
* @returns true se o valor for uma string igual a um dos valores de AcaoAuditoria; caso contrário false.
* @public
*
* @example
* ```ts
* if (isAcaoAuditoria(maybe)) {
* // aqui `maybe` tem o tipo AcaoAuditoriaLiteral
* }
* ```
*/
export declare function isAcaoAuditoria(value: unknown): value is AcaoAuditoriaLiteral;
/**
* Asserção de tipo para AcaoAuditoria.
*
* Lança um erro quando o valor de entrada não é um valor válido do enum AcaoAuditoria.
* Útil para garantir invariantes em tempo de execução quando se deseja
* abortar cedo caso o valor seja inválido.
*
* @param value - Valor a ser validado
* @throws {Error} Quando `value` não for um AcaoAuditoriaLiteral
* @public
*
* @example
* ```ts
* assertAcaoAuditoria(valorRecebido)
* // a partir daqui, `valorRecebido` é considerado AcaoAuditoriaLiteral
* ```
*/
export declare function assertAcaoAuditoria(value: unknown): asserts value is AcaoAuditoriaLiteral;
/**
* Coerção para AcaoAuditoria com fallback.
*
* Retorna o valor se for um AcaoAuditoria válido; caso contrário retorna o `fallback`.
*
* @param value - Valor a ser convertido/avaliado em tempo de execução.
* @param fallback - Valor a ser usado quando `value` não for válido. Padrão: AcaoAuditoria.GET.
* @returns O valor coerido como AcaoAuditoriaLiteral (ou o fallback quando inválido).
* @public
*
* @example
* ```ts
* const acao = coerceAcaoAuditoria(maybeString, AcaoAuditoria.GET)
* ```
*/
export declare function coerceAcaoAuditoria(value: unknown, fallback?: AcaoAuditoriaLiteral): AcaoAuditoriaLiteral;
//# sourceMappingURL=acao-auditoria.enum.d.ts.map