UNPKG

@vzeta/camunda-api-zod-schemas

Version:

Zod schemas and TypeScript types for Camunda 8 unified API

174 lines (173 loc) 5.98 kB
import { z } from "zod"; import { getQueryRequestBodySchema, getQueryResponseBodySchema, API_VERSION } from "../common.js"; import { queryGroupsRequestBodySchema, queryGroupsResponseBodySchema } from "./group.js"; import { queryRolesRequestBodySchema, queryRolesResponseBodySchema } from "./role.js"; import { queryMappingRulesRequestBodySchema, queryMappingRulesResponseBodySchema } from "./mapping-rule.js"; const tenantSchema = z.object({ tenantKey: z.string(), tenantId: z.string(), name: z.string(), description: z.string().optional() }); const createTenantRequestBodySchema = tenantSchema.pick({ tenantId: true, name: true, description: true }); const createTenantResponseBodySchema = tenantSchema; const updateTenantRequestBodySchema = tenantSchema.pick({ name: true, description: true }); const updateTenantResponseBodySchema = tenantSchema; const queryTenantsRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["key", "name", "tenantId"], filter: tenantSchema.pick({ tenantId: true, name: true }).partial() }); const queryTenantsResponseBodySchema = getQueryResponseBodySchema(tenantSchema); const tenantUserSchema = z.object({ username: z.string() }); const queryUsersByTenantRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["username"], filter: z.never() }); const queryUsersByTenantResponseBodySchema = getQueryResponseBodySchema(tenantUserSchema); const tenantClientSchema = z.object({ clientId: z.string() }); const queryClientsByTenantRequestBodySchema = getQueryRequestBodySchema({ sortFields: ["clientId"], filter: z.never() }); const queryClientsByTenantResponseBodySchema = getQueryResponseBodySchema(tenantClientSchema); const queryGroupsByTenantRequestBodySchema = queryGroupsRequestBodySchema; const queryGroupsByTenantResponseBodySchema = queryGroupsResponseBodySchema; const queryRolesByTenantRequestBodySchema = queryRolesRequestBodySchema; const queryRolesByTenantResponseBodySchema = queryRolesResponseBodySchema; const queryMappingRulesByTenantRequestBodySchema = queryMappingRulesRequestBodySchema; const queryMappingRulesByTenantResponseBodySchema = queryMappingRulesResponseBodySchema; const createTenant = { method: "POST", getUrl: () => `/${API_VERSION}/tenants` }; const getTenant = { method: "GET", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}` }; const updateTenant = { method: "PUT", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}` }; const deleteTenant = { method: "DELETE", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}` }; const queryTenants = { method: "POST", getUrl: () => `/${API_VERSION}/tenants/search` }; const assignUserToTenant = { method: "PUT", getUrl: ({ tenantId, username }) => `/${API_VERSION}/tenants/${tenantId}/users/${username}` }; const unassignUserFromTenant = { method: "DELETE", getUrl: ({ tenantId, username }) => `/${API_VERSION}/tenants/${tenantId}/users/${username}` }; const queryUsersByTenant = { method: "POST", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}/users/search` }; const queryClientsByTenant = { method: "POST", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}/clients/search` }; const queryGroupsByTenant = { method: "POST", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}/groups/search` }; const queryRolesByTenant = { method: "POST", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}/roles/search` }; const assignClientToTenant = { method: "PUT", getUrl: ({ tenantId, clientId }) => `/${API_VERSION}/tenants/${tenantId}/clients/${clientId}` }; const unassignClientFromTenant = { method: "DELETE", getUrl: ({ tenantId, clientId }) => `/${API_VERSION}/tenants/${tenantId}/clients/${clientId}` }; const assignMappingRuleToTenant = { method: "PUT", getUrl: ({ tenantId, mappingId }) => `/${API_VERSION}/tenants/${tenantId}/mappings/${mappingId}` }; const unassignMappingRuleFromTenant = { method: "DELETE", getUrl: ({ tenantId, mappingId }) => `/${API_VERSION}/tenants/${tenantId}/mappings/${mappingId}` }; const queryMappingRulesByTenant = { method: "POST", getUrl: ({ tenantId }) => `/${API_VERSION}/tenants/${tenantId}/mappings/search` }; const assignGroupToTenant = { method: "PUT", getUrl: ({ tenantId, groupId }) => `/${API_VERSION}/tenants/${tenantId}/groups/${groupId}` }; const unassignGroupFromTenant = { method: "DELETE", getUrl: ({ tenantId, groupId }) => `/${API_VERSION}/tenants/${tenantId}/groups/${groupId}` }; const assignRoleToTenant = { method: "PUT", getUrl: ({ tenantId, roleId }) => `/${API_VERSION}/tenants/${tenantId}/roles/${roleId}` }; const unassignRoleFromTenant = { method: "DELETE", getUrl: ({ tenantId, roleId }) => `/${API_VERSION}/tenants/${tenantId}/roles/${roleId}` }; export { assignClientToTenant, assignGroupToTenant, assignMappingRuleToTenant, assignRoleToTenant, assignUserToTenant, createTenant, createTenantRequestBodySchema, createTenantResponseBodySchema, deleteTenant, getTenant, queryClientsByTenant, queryClientsByTenantRequestBodySchema, queryClientsByTenantResponseBodySchema, queryGroupsByTenant, queryGroupsByTenantRequestBodySchema, queryGroupsByTenantResponseBodySchema, queryMappingRulesByTenant, queryMappingRulesByTenantRequestBodySchema, queryMappingRulesByTenantResponseBodySchema, queryRolesByTenant, queryRolesByTenantRequestBodySchema, queryRolesByTenantResponseBodySchema, queryTenants, queryTenantsRequestBodySchema, queryTenantsResponseBodySchema, queryUsersByTenant, queryUsersByTenantRequestBodySchema, queryUsersByTenantResponseBodySchema, tenantClientSchema, tenantSchema, tenantUserSchema, unassignClientFromTenant, unassignGroupFromTenant, unassignMappingRuleFromTenant, unassignRoleFromTenant, unassignUserFromTenant, updateTenant, updateTenantRequestBodySchema, updateTenantResponseBodySchema };