mirror of
https://github.com/shankar0123/certctl.git
synced 2026-06-07 11:11:30 +00:00
38f1200f26
Sprint 5 unified-master-audit closure. Pre-fix:
- api/openapi.yaml: 7,788 LOC of hand-authored spec.
- web/src/api/generated/: directory did NOT exist (the Phase-5
scaffolding never had its first generation run).
- scripts/ci-guards/openapi-codegen-drift.sh: skip-when-absent
(line 33-39 — informational scaffold).
- api/openapi.yaml info.version: '2.0.0', latest tag: v2.1.7
(a 7-version drift between spec and ship).
Net effect: every new route required three coordinated edits (Go
handler, openapi.yaml, frontend client.ts), payload-level breaking
changes shipped unnoticed, and downstream API client integration
cost was permanent.
Phase 1 fix (the audit's literal scope):
1. **Run Orval**, commit the generated tree. 316 files / ~1.8 MB
under web/src/api/generated/, tags-split layout (one directory
per OpenAPI tag), TanStack Query client mode. All output routes
through web/src/api/mutator.ts which delegates to the existing
fetchJSON in client.ts so auth/CSRF/401-event semantics stay
in one place.
2. **Fix two spec defects** the first orval run surfaced:
- YAML duplicate-key bug at L77-89 — SCEP's description was
misplaced under OIDC. Restored to its own tag entry.
- Missing #/components/schemas/Error referenced by three
operations. Aliased to the existing ErrorResponse schema.
3. **Flip the codegen-drift guard from skip-when-absent to
hard-gate.** A missing generated/ directory now fails the
build with an actionable restore command. The existing
regenerate-and-diff path stays as before.
4. **New openapi-version-tag-parity CI guard.** Asserts
openapi.yaml info.version equals the latest v* git tag. Falls
back to api.github.com when the local clone is shallow.
Bumped openapi.yaml info.version 2.0.0 → 2.1.7 in the same
commit so the new guard greens out.
5. **CI workflow** updated to fetch tags on the frontend job's
checkout so the parity guard reads them locally (the GH API
fallback still works but adds a network round-trip).
Verified locally:
- openapi-codegen-drift.sh: clean (re-generation produces
byte-identical tree to what's tracked).
- openapi-version-tag-parity.sh: clean (2.1.7 == v2.1.7).
- tsc --noEmit: exit 0 across the entire frontend (the
generated tree's responseType field threaded through the
mutator's CertctlFetchOptions cleanly).
- Existing Vitest suite: 141/141 pass on the three sampled
suites (AuthProvider + client + IssuerHierarchyPage).
Follow-on work (NOT in this commit):
- Per-consumer migration: pages flip from client.ts imports to
generated/ imports one at a time. Both styles share fetchJSON
semantics, so the migration is incremental.
- Server-side oapi-codegen handler stubs (Phase 2 from the
audit's fix language) — separate sprint.
Closes ARCH-001-A.
628 lines
24 KiB
TypeScript
628 lines
24 KiB
TypeScript
/**
|
|
* 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 {
|
|
BadRequestResponse,
|
|
ClaimDiscoveredCertificateBody,
|
|
DiscoveredCertificate,
|
|
DiscoveryReport,
|
|
DiscoveryScan,
|
|
GetDiscoverySummary200,
|
|
InternalErrorResponse,
|
|
ListDiscoveredCertificates200,
|
|
ListDiscoveredCertificatesParams,
|
|
ListDiscoveryScans200,
|
|
ListDiscoveryScansParams,
|
|
NotFoundResponse,
|
|
StatusMessageResponse
|
|
} from '.././model';
|
|
|
|
import { certctlFetch } from '../../mutator';
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Agent submits a batch of discovered certificates from filesystem scanning.
|
|
Server deduplicates by (fingerprint, agent_id, source_path) and records scan metadata.
|
|
|
|
* @summary Submit discovery report
|
|
*/
|
|
export const submitDiscoveryReport = (
|
|
id: string,
|
|
discoveryReport: DiscoveryReport,
|
|
signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return certctlFetch<DiscoveryScan>(
|
|
{url: `/api/v1/agents/${id}/discoveries`, method: 'POST',
|
|
headers: {'Content-Type': 'application/json', },
|
|
data: discoveryReport, signal
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
|
|
export const getSubmitDiscoveryReportMutationOptions = <TError = BadRequestResponse | InternalErrorResponse,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof submitDiscoveryReport>>, TError,{id: string;data: DiscoveryReport}, TContext>, }
|
|
): UseMutationOptions<Awaited<ReturnType<typeof submitDiscoveryReport>>, TError,{id: string;data: DiscoveryReport}, TContext> => {
|
|
|
|
const mutationKey = ['submitDiscoveryReport'];
|
|
const {mutation: mutationOptions} = options ?
|
|
options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
|
|
options
|
|
: {...options, mutation: {...options.mutation, mutationKey}}
|
|
: {mutation: { mutationKey, }};
|
|
|
|
|
|
|
|
|
|
const mutationFn: MutationFunction<Awaited<ReturnType<typeof submitDiscoveryReport>>, {id: string;data: DiscoveryReport}> = (props) => {
|
|
const {id,data} = props ?? {};
|
|
|
|
return submitDiscoveryReport(id,data,)
|
|
}
|
|
|
|
|
|
|
|
|
|
return { mutationFn, ...mutationOptions }}
|
|
|
|
export type SubmitDiscoveryReportMutationResult = NonNullable<Awaited<ReturnType<typeof submitDiscoveryReport>>>
|
|
export type SubmitDiscoveryReportMutationBody = DiscoveryReport
|
|
export type SubmitDiscoveryReportMutationError = BadRequestResponse | InternalErrorResponse
|
|
|
|
/**
|
|
* @summary Submit discovery report
|
|
*/
|
|
export const useSubmitDiscoveryReport = <TError = BadRequestResponse | InternalErrorResponse,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof submitDiscoveryReport>>, TError,{id: string;data: DiscoveryReport}, TContext>, }
|
|
, queryClient?: QueryClient): UseMutationResult<
|
|
Awaited<ReturnType<typeof submitDiscoveryReport>>,
|
|
TError,
|
|
{id: string;data: DiscoveryReport},
|
|
TContext
|
|
> => {
|
|
|
|
const mutationOptions = getSubmitDiscoveryReportMutationOptions(options);
|
|
|
|
return useMutation(mutationOptions, queryClient);
|
|
}
|
|
/**
|
|
* Returns discovered certificates with optional filters by agent and triage status.
|
|
* @summary List discovered certificates
|
|
*/
|
|
export const listDiscoveredCertificates = (
|
|
params?: ListDiscoveredCertificatesParams,
|
|
signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return certctlFetch<ListDiscoveredCertificates200>(
|
|
{url: `/api/v1/discovered-certificates`, method: 'GET',
|
|
params, signal
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getListDiscoveredCertificatesQueryKey = (params?: ListDiscoveredCertificatesParams,) => {
|
|
return [
|
|
`/api/v1/discovered-certificates`, ...(params ? [params]: [])
|
|
] as const;
|
|
}
|
|
|
|
|
|
export const getListDiscoveredCertificatesQueryOptions = <TData = Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError = InternalErrorResponse>(params?: ListDiscoveredCertificatesParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError, TData>>, }
|
|
) => {
|
|
|
|
const {query: queryOptions} = options ?? {};
|
|
|
|
const queryKey = queryOptions?.queryKey ?? getListDiscoveredCertificatesQueryKey(params);
|
|
|
|
|
|
|
|
const queryFn: QueryFunction<Awaited<ReturnType<typeof listDiscoveredCertificates>>> = ({ signal }) => listDiscoveredCertificates(params, signal);
|
|
|
|
|
|
|
|
|
|
|
|
return { queryKey, queryFn, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
}
|
|
|
|
export type ListDiscoveredCertificatesQueryResult = NonNullable<Awaited<ReturnType<typeof listDiscoveredCertificates>>>
|
|
export type ListDiscoveredCertificatesQueryError = InternalErrorResponse
|
|
|
|
|
|
export function useListDiscoveredCertificates<TData = Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError = InternalErrorResponse>(
|
|
params: undefined | ListDiscoveredCertificatesParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError, TData>> & Pick<
|
|
DefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof listDiscoveredCertificates>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof listDiscoveredCertificates>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useListDiscoveredCertificates<TData = Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError = InternalErrorResponse>(
|
|
params?: ListDiscoveredCertificatesParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError, TData>> & Pick<
|
|
UndefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof listDiscoveredCertificates>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof listDiscoveredCertificates>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useListDiscoveredCertificates<TData = Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError = InternalErrorResponse>(
|
|
params?: ListDiscoveredCertificatesParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
/**
|
|
* @summary List discovered certificates
|
|
*/
|
|
|
|
export function useListDiscoveredCertificates<TData = Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError = InternalErrorResponse>(
|
|
params?: ListDiscoveredCertificatesParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveredCertificates>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {
|
|
|
|
const queryOptions = getListDiscoveredCertificatesQueryOptions(params,options)
|
|
|
|
const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };
|
|
|
|
query.queryKey = queryOptions.queryKey ;
|
|
|
|
return query;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Returns a single discovered certificate by ID.
|
|
* @summary Get discovered certificate
|
|
*/
|
|
export const getDiscoveredCertificate = (
|
|
id: string,
|
|
signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return certctlFetch<DiscoveredCertificate>(
|
|
{url: `/api/v1/discovered-certificates/${id}`, method: 'GET', signal
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getGetDiscoveredCertificateQueryKey = (id?: string,) => {
|
|
return [
|
|
`/api/v1/discovered-certificates/${id}`
|
|
] as const;
|
|
}
|
|
|
|
|
|
export const getGetDiscoveredCertificateQueryOptions = <TData = Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError = NotFoundResponse | InternalErrorResponse>(id: string, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError, TData>>, }
|
|
) => {
|
|
|
|
const {query: queryOptions} = options ?? {};
|
|
|
|
const queryKey = queryOptions?.queryKey ?? getGetDiscoveredCertificateQueryKey(id);
|
|
|
|
|
|
|
|
const queryFn: QueryFunction<Awaited<ReturnType<typeof getDiscoveredCertificate>>> = ({ signal }) => getDiscoveredCertificate(id, signal);
|
|
|
|
|
|
|
|
|
|
|
|
return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
}
|
|
|
|
export type GetDiscoveredCertificateQueryResult = NonNullable<Awaited<ReturnType<typeof getDiscoveredCertificate>>>
|
|
export type GetDiscoveredCertificateQueryError = NotFoundResponse | InternalErrorResponse
|
|
|
|
|
|
export function useGetDiscoveredCertificate<TData = Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError = NotFoundResponse | InternalErrorResponse>(
|
|
id: string, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError, TData>> & Pick<
|
|
DefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof getDiscoveredCertificate>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof getDiscoveredCertificate>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useGetDiscoveredCertificate<TData = Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError = NotFoundResponse | InternalErrorResponse>(
|
|
id: string, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError, TData>> & Pick<
|
|
UndefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof getDiscoveredCertificate>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof getDiscoveredCertificate>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useGetDiscoveredCertificate<TData = Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError = NotFoundResponse | InternalErrorResponse>(
|
|
id: string, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
/**
|
|
* @summary Get discovered certificate
|
|
*/
|
|
|
|
export function useGetDiscoveredCertificate<TData = Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError = NotFoundResponse | InternalErrorResponse>(
|
|
id: string, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoveredCertificate>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {
|
|
|
|
const queryOptions = getGetDiscoveredCertificateQueryOptions(id,options)
|
|
|
|
const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };
|
|
|
|
query.queryKey = queryOptions.queryKey ;
|
|
|
|
return query;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Links a discovered certificate to an existing managed certificate. Changes status to Managed.
|
|
* @summary Claim discovered certificate
|
|
*/
|
|
export const claimDiscoveredCertificate = (
|
|
id: string,
|
|
claimDiscoveredCertificateBody: ClaimDiscoveredCertificateBody,
|
|
signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return certctlFetch<StatusMessageResponse>(
|
|
{url: `/api/v1/discovered-certificates/${id}/claim`, method: 'POST',
|
|
headers: {'Content-Type': 'application/json', },
|
|
data: claimDiscoveredCertificateBody, signal
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
|
|
export const getClaimDiscoveredCertificateMutationOptions = <TError = BadRequestResponse | NotFoundResponse | InternalErrorResponse,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof claimDiscoveredCertificate>>, TError,{id: string;data: ClaimDiscoveredCertificateBody}, TContext>, }
|
|
): UseMutationOptions<Awaited<ReturnType<typeof claimDiscoveredCertificate>>, TError,{id: string;data: ClaimDiscoveredCertificateBody}, TContext> => {
|
|
|
|
const mutationKey = ['claimDiscoveredCertificate'];
|
|
const {mutation: mutationOptions} = options ?
|
|
options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
|
|
options
|
|
: {...options, mutation: {...options.mutation, mutationKey}}
|
|
: {mutation: { mutationKey, }};
|
|
|
|
|
|
|
|
|
|
const mutationFn: MutationFunction<Awaited<ReturnType<typeof claimDiscoveredCertificate>>, {id: string;data: ClaimDiscoveredCertificateBody}> = (props) => {
|
|
const {id,data} = props ?? {};
|
|
|
|
return claimDiscoveredCertificate(id,data,)
|
|
}
|
|
|
|
|
|
|
|
|
|
return { mutationFn, ...mutationOptions }}
|
|
|
|
export type ClaimDiscoveredCertificateMutationResult = NonNullable<Awaited<ReturnType<typeof claimDiscoveredCertificate>>>
|
|
export type ClaimDiscoveredCertificateMutationBody = ClaimDiscoveredCertificateBody
|
|
export type ClaimDiscoveredCertificateMutationError = BadRequestResponse | NotFoundResponse | InternalErrorResponse
|
|
|
|
/**
|
|
* @summary Claim discovered certificate
|
|
*/
|
|
export const useClaimDiscoveredCertificate = <TError = BadRequestResponse | NotFoundResponse | InternalErrorResponse,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof claimDiscoveredCertificate>>, TError,{id: string;data: ClaimDiscoveredCertificateBody}, TContext>, }
|
|
, queryClient?: QueryClient): UseMutationResult<
|
|
Awaited<ReturnType<typeof claimDiscoveredCertificate>>,
|
|
TError,
|
|
{id: string;data: ClaimDiscoveredCertificateBody},
|
|
TContext
|
|
> => {
|
|
|
|
const mutationOptions = getClaimDiscoveredCertificateMutationOptions(options);
|
|
|
|
return useMutation(mutationOptions, queryClient);
|
|
}
|
|
/**
|
|
* Marks a discovered certificate as dismissed (excluded from triage queue).
|
|
* @summary Dismiss discovered certificate
|
|
*/
|
|
export const dismissDiscoveredCertificate = (
|
|
id: string,
|
|
signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return certctlFetch<StatusMessageResponse>(
|
|
{url: `/api/v1/discovered-certificates/${id}/dismiss`, method: 'POST', signal
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
|
|
export const getDismissDiscoveredCertificateMutationOptions = <TError = NotFoundResponse | InternalErrorResponse,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof dismissDiscoveredCertificate>>, TError,{id: string}, TContext>, }
|
|
): UseMutationOptions<Awaited<ReturnType<typeof dismissDiscoveredCertificate>>, TError,{id: string}, TContext> => {
|
|
|
|
const mutationKey = ['dismissDiscoveredCertificate'];
|
|
const {mutation: mutationOptions} = options ?
|
|
options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ?
|
|
options
|
|
: {...options, mutation: {...options.mutation, mutationKey}}
|
|
: {mutation: { mutationKey, }};
|
|
|
|
|
|
|
|
|
|
const mutationFn: MutationFunction<Awaited<ReturnType<typeof dismissDiscoveredCertificate>>, {id: string}> = (props) => {
|
|
const {id} = props ?? {};
|
|
|
|
return dismissDiscoveredCertificate(id,)
|
|
}
|
|
|
|
|
|
|
|
|
|
return { mutationFn, ...mutationOptions }}
|
|
|
|
export type DismissDiscoveredCertificateMutationResult = NonNullable<Awaited<ReturnType<typeof dismissDiscoveredCertificate>>>
|
|
|
|
export type DismissDiscoveredCertificateMutationError = NotFoundResponse | InternalErrorResponse
|
|
|
|
/**
|
|
* @summary Dismiss discovered certificate
|
|
*/
|
|
export const useDismissDiscoveredCertificate = <TError = NotFoundResponse | InternalErrorResponse,
|
|
TContext = unknown>(options?: { mutation?:UseMutationOptions<Awaited<ReturnType<typeof dismissDiscoveredCertificate>>, TError,{id: string}, TContext>, }
|
|
, queryClient?: QueryClient): UseMutationResult<
|
|
Awaited<ReturnType<typeof dismissDiscoveredCertificate>>,
|
|
TError,
|
|
{id: string},
|
|
TContext
|
|
> => {
|
|
|
|
const mutationOptions = getDismissDiscoveredCertificateMutationOptions(options);
|
|
|
|
return useMutation(mutationOptions, queryClient);
|
|
}
|
|
/**
|
|
* Returns history of discovery scan executions with optional agent filter.
|
|
* @summary List discovery scans
|
|
*/
|
|
export const listDiscoveryScans = (
|
|
params?: ListDiscoveryScansParams,
|
|
signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return certctlFetch<ListDiscoveryScans200>(
|
|
{url: `/api/v1/discovery-scans`, method: 'GET',
|
|
params, signal
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getListDiscoveryScansQueryKey = (params?: ListDiscoveryScansParams,) => {
|
|
return [
|
|
`/api/v1/discovery-scans`, ...(params ? [params]: [])
|
|
] as const;
|
|
}
|
|
|
|
|
|
export const getListDiscoveryScansQueryOptions = <TData = Awaited<ReturnType<typeof listDiscoveryScans>>, TError = InternalErrorResponse>(params?: ListDiscoveryScansParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveryScans>>, TError, TData>>, }
|
|
) => {
|
|
|
|
const {query: queryOptions} = options ?? {};
|
|
|
|
const queryKey = queryOptions?.queryKey ?? getListDiscoveryScansQueryKey(params);
|
|
|
|
|
|
|
|
const queryFn: QueryFunction<Awaited<ReturnType<typeof listDiscoveryScans>>> = ({ signal }) => listDiscoveryScans(params, signal);
|
|
|
|
|
|
|
|
|
|
|
|
return { queryKey, queryFn, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof listDiscoveryScans>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
}
|
|
|
|
export type ListDiscoveryScansQueryResult = NonNullable<Awaited<ReturnType<typeof listDiscoveryScans>>>
|
|
export type ListDiscoveryScansQueryError = InternalErrorResponse
|
|
|
|
|
|
export function useListDiscoveryScans<TData = Awaited<ReturnType<typeof listDiscoveryScans>>, TError = InternalErrorResponse>(
|
|
params: undefined | ListDiscoveryScansParams, options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveryScans>>, TError, TData>> & Pick<
|
|
DefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof listDiscoveryScans>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof listDiscoveryScans>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useListDiscoveryScans<TData = Awaited<ReturnType<typeof listDiscoveryScans>>, TError = InternalErrorResponse>(
|
|
params?: ListDiscoveryScansParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveryScans>>, TError, TData>> & Pick<
|
|
UndefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof listDiscoveryScans>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof listDiscoveryScans>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useListDiscoveryScans<TData = Awaited<ReturnType<typeof listDiscoveryScans>>, TError = InternalErrorResponse>(
|
|
params?: ListDiscoveryScansParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveryScans>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
/**
|
|
* @summary List discovery scans
|
|
*/
|
|
|
|
export function useListDiscoveryScans<TData = Awaited<ReturnType<typeof listDiscoveryScans>>, TError = InternalErrorResponse>(
|
|
params?: ListDiscoveryScansParams, options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof listDiscoveryScans>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {
|
|
|
|
const queryOptions = getListDiscoveryScansQueryOptions(params,options)
|
|
|
|
const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };
|
|
|
|
query.queryKey = queryOptions.queryKey ;
|
|
|
|
return query;
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Returns aggregate counts of discovered certificates by triage status.
|
|
* @summary Discovery status summary
|
|
*/
|
|
export const getDiscoverySummary = (
|
|
|
|
signal?: AbortSignal
|
|
) => {
|
|
|
|
|
|
return certctlFetch<GetDiscoverySummary200>(
|
|
{url: `/api/v1/discovery-summary`, method: 'GET', signal
|
|
},
|
|
);
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getGetDiscoverySummaryQueryKey = () => {
|
|
return [
|
|
`/api/v1/discovery-summary`
|
|
] as const;
|
|
}
|
|
|
|
|
|
export const getGetDiscoverySummaryQueryOptions = <TData = Awaited<ReturnType<typeof getDiscoverySummary>>, TError = InternalErrorResponse>( options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoverySummary>>, TError, TData>>, }
|
|
) => {
|
|
|
|
const {query: queryOptions} = options ?? {};
|
|
|
|
const queryKey = queryOptions?.queryKey ?? getGetDiscoverySummaryQueryKey();
|
|
|
|
|
|
|
|
const queryFn: QueryFunction<Awaited<ReturnType<typeof getDiscoverySummary>>> = ({ signal }) => getDiscoverySummary(signal);
|
|
|
|
|
|
|
|
|
|
|
|
return { queryKey, queryFn, ...queryOptions} as UseQueryOptions<Awaited<ReturnType<typeof getDiscoverySummary>>, TError, TData> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
}
|
|
|
|
export type GetDiscoverySummaryQueryResult = NonNullable<Awaited<ReturnType<typeof getDiscoverySummary>>>
|
|
export type GetDiscoverySummaryQueryError = InternalErrorResponse
|
|
|
|
|
|
export function useGetDiscoverySummary<TData = Awaited<ReturnType<typeof getDiscoverySummary>>, TError = InternalErrorResponse>(
|
|
options: { query:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoverySummary>>, TError, TData>> & Pick<
|
|
DefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof getDiscoverySummary>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof getDiscoverySummary>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): DefinedUseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useGetDiscoverySummary<TData = Awaited<ReturnType<typeof getDiscoverySummary>>, TError = InternalErrorResponse>(
|
|
options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoverySummary>>, TError, TData>> & Pick<
|
|
UndefinedInitialDataOptions<
|
|
Awaited<ReturnType<typeof getDiscoverySummary>>,
|
|
TError,
|
|
Awaited<ReturnType<typeof getDiscoverySummary>>
|
|
> , 'initialData'
|
|
>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
export function useGetDiscoverySummary<TData = Awaited<ReturnType<typeof getDiscoverySummary>>, TError = InternalErrorResponse>(
|
|
options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoverySummary>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> }
|
|
/**
|
|
* @summary Discovery status summary
|
|
*/
|
|
|
|
export function useGetDiscoverySummary<TData = Awaited<ReturnType<typeof getDiscoverySummary>>, TError = InternalErrorResponse>(
|
|
options?: { query?:Partial<UseQueryOptions<Awaited<ReturnType<typeof getDiscoverySummary>>, TError, TData>>, }
|
|
, queryClient?: QueryClient
|
|
): UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> } {
|
|
|
|
const queryOptions = getGetDiscoverySummaryQueryOptions(options)
|
|
|
|
const query = useQuery(queryOptions, queryClient) as UseQueryResult<TData, TError> & { queryKey: DataTag<QueryKey, TData, TError> };
|
|
|
|
query.queryKey = queryOptions.queryKey ;
|
|
|
|
return query;
|
|
}
|
|
|
|
|
|
|
|
|