cloudflare
Version:
The official TypeScript library for the Cloudflare API
207 lines • 7.31 kB
text/typescript
import { APIResource } from "../../../core/resource.mjs";
import { APIPromise } from "../../../core/api-promise.mjs";
import { CursorLimitPagination, type CursorLimitPaginationParams, PagePromise } from "../../../core/pagination.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
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.mts.map