/** * Generated by orval v7.21.0 🍺 * Do not edit manually. * certctl API * Certificate lifecycle management platform API. Manages certificates, issuers, deployment targets, agents, jobs, policies, profiles, teams, owners, agent groups, audit events, notifications, and observability metrics. All endpoints under `/api/v1/` require authentication by default (configurable via `CERTCTL_AUTH_TYPE`). Use `Bearer {api_key}` in the Authorization header. Paginated list endpoints accept `page` (default 1) and `per_page` (default 50, max 500) query parameters and return a standard envelope with `data`, `total`, `page`, and `per_page`. * OpenAPI spec version: 2.1.7 */ import { useMutation, useQuery } from '@tanstack/react-query'; import type { DataTag, DefinedInitialDataOptions, DefinedUseQueryResult, MutationFunction, QueryClient, QueryFunction, QueryKey, UndefinedInitialDataOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from '@tanstack/react-query'; import type { ApprovalRequest, ApproveApprovalRequest200, ApproveApprovalRequestBody, InternalErrorResponse, ListApprovalRequests200, ListApprovalRequestsParams, NotFoundResponse, RejectApprovalRequest200, RejectApprovalRequestBody } from '.././model'; import { certctlFetch } from '../../mutator'; /** * Rank 7 issuance approval-workflow primitive. Returns paginated approval requests, optionally filtered by ?state= (pending/approved/rejected/expired), ?certificate_id=, or ?requested_by=. Empty filters return the unfiltered list (default page=1, per_page=50). * @summary List approval requests */ export const listApprovalRequests = ( params?: ListApprovalRequestsParams, signal?: AbortSignal ) => { return certctlFetch( {url: `/api/v1/approvals`, method: 'GET', params, signal }, ); } export const getListApprovalRequestsQueryKey = (params?: ListApprovalRequestsParams,) => { return [ `/api/v1/approvals`, ...(params ? [params]: []) ] as const; } export const getListApprovalRequestsQueryOptions = >, TError = InternalErrorResponse>(params?: ListApprovalRequestsParams, options?: { query?:Partial>, TError, TData>>, } ) => { const {query: queryOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getListApprovalRequestsQueryKey(params); const queryFn: QueryFunction>> = ({ signal }) => listApprovalRequests(params, signal); return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type ListApprovalRequestsQueryResult = NonNullable>> export type ListApprovalRequestsQueryError = InternalErrorResponse export function useListApprovalRequests>, TError = InternalErrorResponse>( params: undefined | ListApprovalRequestsParams, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, } , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useListApprovalRequests>, TError = InternalErrorResponse>( params?: ListApprovalRequestsParams, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, } , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useListApprovalRequests>, TError = InternalErrorResponse>( params?: ListApprovalRequestsParams, options?: { query?:Partial>, TError, TData>>, } , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary List approval requests */ export function useListApprovalRequests>, TError = InternalErrorResponse>( params?: ListApprovalRequestsParams, options?: { query?:Partial>, TError, TData>>, } , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getListApprovalRequestsQueryOptions(params,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Returns a single approval request by ID. * @summary Get approval request */ export const getApprovalRequest = ( id: string, signal?: AbortSignal ) => { return certctlFetch( {url: `/api/v1/approvals/${id}`, method: 'GET', signal }, ); } export const getGetApprovalRequestQueryKey = (id?: string,) => { return [ `/api/v1/approvals/${id}` ] as const; } export const getGetApprovalRequestQueryOptions = >, TError = NotFoundResponse | InternalErrorResponse>(id: string, options?: { query?:Partial>, TError, TData>>, } ) => { const {query: queryOptions} = options ?? {}; const queryKey = queryOptions?.queryKey ?? getGetApprovalRequestQueryKey(id); const queryFn: QueryFunction>> = ({ signal }) => getApprovalRequest(id, signal); return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: DataTag } } export type GetApprovalRequestQueryResult = NonNullable>> export type GetApprovalRequestQueryError = NotFoundResponse | InternalErrorResponse export function useGetApprovalRequest>, TError = NotFoundResponse | InternalErrorResponse>( id: string, options: { query:Partial>, TError, TData>> & Pick< DefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, } , queryClient?: QueryClient ): DefinedUseQueryResult & { queryKey: DataTag } export function useGetApprovalRequest>, TError = NotFoundResponse | InternalErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>> & Pick< UndefinedInitialDataOptions< Awaited>, TError, Awaited> > , 'initialData' >, } , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } export function useGetApprovalRequest>, TError = NotFoundResponse | InternalErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, } , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } /** * @summary Get approval request */ export function useGetApprovalRequest>, TError = NotFoundResponse | InternalErrorResponse>( id: string, options?: { query?:Partial>, TError, TData>>, } , queryClient?: QueryClient ): UseQueryResult & { queryKey: DataTag } { const queryOptions = getGetApprovalRequestQueryOptions(id,options) const query = useQuery(queryOptions, queryClient) as UseQueryResult & { queryKey: DataTag }; query.queryKey = queryOptions.queryKey ; return query; } /** * Transitions a pending request to approved AND transitions the linked Job from AwaitingApproval to Pending so the scheduler picks it up. RBAC: the authenticated actor extracted via the auth middleware MUST differ from the request's requested_by — a same-actor self-approval returns HTTP 403 with the substring `two-person integrity` in the body. This is the load-bearing two-person integrity contract; compliance auditors (PCI-DSS 6.4.5, NIST 800-53 SA-15, SOC 2 CC6.1) pattern-match against this code path. * @summary Approve a pending approval request */ export const approveApprovalRequest = ( id: string, approveApprovalRequestBody?: ApproveApprovalRequestBody, signal?: AbortSignal ) => { return certctlFetch( {url: `/api/v1/approvals/${id}/approve`, method: 'POST', headers: {'Content-Type': 'application/json', }, data: approveApprovalRequestBody, signal }, ); } export const getApproveApprovalRequestMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: ApproveApprovalRequestBody}, TContext>, } ): UseMutationOptions>, TError,{id: string;data: ApproveApprovalRequestBody}, TContext> => { const mutationKey = ['approveApprovalRequest']; const {mutation: mutationOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }}; const mutationFn: MutationFunction>, {id: string;data: ApproveApprovalRequestBody}> = (props) => { const {id,data} = props ?? {}; return approveApprovalRequest(id,data,) } return { mutationFn, ...mutationOptions }} export type ApproveApprovalRequestMutationResult = NonNullable>> export type ApproveApprovalRequestMutationBody = ApproveApprovalRequestBody export type ApproveApprovalRequestMutationError = void | NotFoundResponse | InternalErrorResponse /** * @summary Approve a pending approval request */ export const useApproveApprovalRequest = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: ApproveApprovalRequestBody}, TContext>, } , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {id: string;data: ApproveApprovalRequestBody}, TContext > => { const mutationOptions = getApproveApprovalRequestMutationOptions(options); return useMutation(mutationOptions, queryClient); } /** * Transitions a pending request to rejected AND cancels the linked Job. Same-actor RBAC contract as approve. The job's error_message is populated with the supplied note for audit continuity. * @summary Reject a pending approval request */ export const rejectApprovalRequest = ( id: string, rejectApprovalRequestBody?: RejectApprovalRequestBody, signal?: AbortSignal ) => { return certctlFetch( {url: `/api/v1/approvals/${id}/reject`, method: 'POST', headers: {'Content-Type': 'application/json', }, data: rejectApprovalRequestBody, signal }, ); } export const getRejectApprovalRequestMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: RejectApprovalRequestBody}, TContext>, } ): UseMutationOptions>, TError,{id: string;data: RejectApprovalRequestBody}, TContext> => { const mutationKey = ['rejectApprovalRequest']; const {mutation: mutationOptions} = options ? options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? options : {...options, mutation: {...options.mutation, mutationKey}} : {mutation: { mutationKey, }}; const mutationFn: MutationFunction>, {id: string;data: RejectApprovalRequestBody}> = (props) => { const {id,data} = props ?? {}; return rejectApprovalRequest(id,data,) } return { mutationFn, ...mutationOptions }} export type RejectApprovalRequestMutationResult = NonNullable>> export type RejectApprovalRequestMutationBody = RejectApprovalRequestBody export type RejectApprovalRequestMutationError = void | NotFoundResponse | InternalErrorResponse /** * @summary Reject a pending approval request */ export const useRejectApprovalRequest = (options?: { mutation?:UseMutationOptions>, TError,{id: string;data: RejectApprovalRequestBody}, TContext>, } , queryClient?: QueryClient): UseMutationResult< Awaited>, TError, {id: string;data: RejectApprovalRequestBody}, TContext > => { const mutationOptions = getRejectApprovalRequestMutationOptions(options); return useMutation(mutationOptions, queryClient); }