UNPKG

cloudflare

Version:

The official TypeScript library for the Cloudflare API

207 lines • 7.3 kB
import { APIResource } from "../../../core/resource.js"; import { APIPromise } from "../../../core/api-promise.js"; import { CursorLimitPagination, type CursorLimitPaginationParams, PagePromise } from "../../../core/pagination.js"; import { RequestOptions } from "../../../internal/request-options.js"; export declare class BaseRepositories extends APIResource { static readonly _key: readonly ['managedDefense', 'vulnerabilityDiscovery', 'repositories']; /** * Creates an upload repository or reserves an asynchronous deployed Worker import * by name. Worker imports require Idempotency-Key. * * @example * ```ts * const repository = * await client.managedDefense.vulnerabilityDiscovery.repositories.create( * { * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * name: 'x', * }, * ); * ``` */ create(params: RepositoryCreateParams, options?: RequestOptions): APIPromise<RepositoryCreateResponse>; /** * Lists repositories available for vulnerability discovery in an account. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const repositoryListResponse of client.managedDefense.vulnerabilityDiscovery.repositories.list( * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * )) { * // ... * } * ``` */ list(params: RepositoryListParams, options?: RequestOptions): PagePromise<RepositoryListResponsesCursorLimitPagination, RepositoryListResponse>; /** * Gets repository metadata, source readiness, and customer scan history. * * @example * ```ts * const repository = * await client.managedDefense.vulnerabilityDiscovery.repositories.get( * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * ); * ``` */ get(repoID: string, params: RepositoryGetParams, options?: RequestOptions): APIPromise<RepositoryGetResponse>; } export declare class Repositories extends BaseRepositories { } export type RepositoryListResponsesCursorLimitPagination = CursorLimitPagination<RepositoryListResponse>; export type RepositoryCreateResponse = RepositoryCreateResponse.UnionMember0 | RepositoryCreateResponse.Repository; export declare namespace RepositoryCreateResponse { interface UnionMember0 { repository: UnionMember0.Repository; upload: UnionMember0.Upload; } namespace UnionMember0 { interface Repository { id: string; name: string; readiness: 'awaiting_source' | 'processing' | 'ready' | 'failed'; source: 'upload' | 'worker'; import_error?: Repository.ImportError; } namespace Repository { interface ImportError { code: 'worker_import_failed'; message: 'Worker import failed.'; } } interface Upload { token: string; expires_in: 3600; remote: string; } } interface Repository { repository: Repository.Repository; } namespace Repository { interface Repository { id: string; name: string; readiness: 'awaiting_source' | 'processing' | 'ready' | 'failed'; source: 'upload' | 'worker'; import_error?: Repository.ImportError; } namespace Repository { interface ImportError { code: 'worker_import_failed'; message: 'Worker import failed.'; } } } } export interface RepositoryListResponse { id: string; created_at: string; name: string; readiness: 'awaiting_source' | 'processing' | 'ready' | 'failed'; source: 'upload' | 'worker'; import_error?: RepositoryListResponse.ImportError; } export declare namespace RepositoryListResponse { interface ImportError { code: 'worker_import_failed'; message: 'Worker import failed.'; } } export interface RepositoryGetResponse { repository: RepositoryGetResponse.Repository; scans: Array<RepositoryGetResponse.Scan>; } export declare namespace RepositoryGetResponse { interface Repository { id: string; created_at: string; name: string; readiness: 'awaiting_source' | 'processing' | 'ready' | 'failed'; source: 'upload' | 'worker'; import_error?: Repository.ImportError; } namespace Repository { interface ImportError { code: 'worker_import_failed'; message: 'Worker import failed.'; } } interface Scan { id: string; completed_at: string | null; message: string | null; phase: 'provisioning' | 'indexing' | 'analyzing' | 'reporting' | 'finalizing' | null; repositories: Array<Scan.Repository>; started_at: string | null; status: 'requested' | 'accepted' | 'running' | 'completed' | 'failed' | 'rejected' | 'cancelled'; submitted_at: string; /** * UTC ISO-8601 interval. Start is inclusive, end is exclusive, and the interval * must be positive and at most seven days. */ telemetry_window?: Scan.TelemetryWindow; } namespace Scan { interface Repository { id: string; name: string; phase: 'provisioning' | 'indexing' | 'analyzing' | 'reporting' | 'finalizing' | null; report_status: 'not_ready' | 'pending_review' | 'published' | 'withdrawn'; status: 'requested' | 'accepted' | 'running' | 'completed' | 'failed' | 'rejected' | 'cancelled'; } /** * UTC ISO-8601 interval. Start is inclusive, end is exclusive, and the interval * must be positive and at most seven days. */ interface TelemetryWindow { end: string; start: string; } } } export interface RepositoryCreateParams { /** * Path param */ account_id: string; /** * Body param */ name: string; /** * Body param */ worker_script_name?: string; /** * Header param: Optional. Supply this header to safely retry a request. Required * when `worker_script_name` is supplied. */ 'Idempotency-Key'?: string; } export interface RepositoryListParams extends CursorLimitPaginationParams { /** * Path param */ account_id: string; } export interface RepositoryGetParams { /** * Path param */ account_id: string; /** * Query param */ scan_cursor?: string; /** * Query param */ scan_limit?: number; } export declare namespace Repositories { export { type RepositoryCreateResponse as RepositoryCreateResponse, type RepositoryListResponse as RepositoryListResponse, type RepositoryGetResponse as RepositoryGetResponse, type RepositoryListResponsesCursorLimitPagination as RepositoryListResponsesCursorLimitPagination, type RepositoryCreateParams as RepositoryCreateParams, type RepositoryListParams as RepositoryListParams, type RepositoryGetParams as RepositoryGetParams, }; } //# sourceMappingURL=repositories.d.ts.map