cloudflare
Version:
The official TypeScript library for the Cloudflare API
179 lines (153 loc) • 4.28 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../../../../core/resource';
import { APIPromise } from '../../../../../core/api-promise';
import { RequestOptions } from '../../../../../internal/request-options';
import { path } from '../../../../../internal/utils/path';
export class BaseJobs extends APIResource {
static override readonly _key: readonly ['zeroTrust', 'casb', 'posture', 'webhooks', 'jobs'] =
Object.freeze(['zeroTrust', 'casb', 'posture', 'webhooks', 'jobs'] as const);
/**
* Creates webhook jobs to send a finding instance to one or more configured
* webhooks.
*
* @example
* ```ts
* const job =
* await client.zeroTrust.casb.posture.webhooks.jobs.create({
* account_id: '46148281d8a93d002ef242d8b0d5f9f6',
* finding_instance_ids: [
* '770e8400-e29b-41d4-a716-446655440002',
* '660e8400-e29b-41d4-a716-446655440001',
* ],
* webhook_ids: [
* '550e8400-e29b-41d4-a716-446655440000',
* '660e8400-e29b-41d4-a716-446655440001',
* ],
* });
* ```
*/
create(params: JobCreateParams, options?: RequestOptions): APIPromise<JobCreateResponse> {
const { account_id, ...body } = params;
return (
this._client.post(path`/accounts/${account_id}/data-security/posture/webhooks/jobs`, {
body,
...options,
}) as APIPromise<{ result: JobCreateResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export class Jobs extends BaseJobs {}
export interface JobCreateResponse {
/**
* Successfully created webhook jobs.
*/
created: Array<JobCreateResponse.Created>;
/**
* Failed webhook job creation attempts.
*/
failed: Array<JobCreateResponse.Failed>;
}
export namespace JobCreateResponse {
/**
* Information about a webhook job.
*/
export interface Created {
/**
* Unique identifier for the webhook job.
*/
id: string;
/**
* Asset data associated with this webhook job.
*/
asset_data: { [key: string]: unknown };
/**
* When the webhook job was created.
*/
created_at: string;
/**
* ID of the integration.
*/
integration_id: string;
/**
* When the webhook job was last updated.
*/
last_updated_at: string;
/**
* Parameters for a webhook job.
*/
parameters: Created.Parameters;
/**
* Status of a webhook job.
*/
status: 'pending' | 'processing' | 'completed' | 'failed';
/**
* Type of actor that triggered the webhook job.
*/
triggered_by_actor: 'user' | 'account_token';
/**
* ID of the actor that triggered the job.
*/
triggered_by_id: string;
/**
* ID of the webhook configuration.
*/
webhook_id: string;
/**
* Additional details about the failure.
*/
failure_details?: { [key: string]: unknown };
/**
* Reason for webhook job failure.
*/
failure_reason?:
| 'Permission Denied'
| 'Integration Unavailable'
| 'Service Temporarily Unavailable'
| 'System Error';
}
export namespace Created {
/**
* Parameters for a webhook job.
*/
export interface Parameters {
/**
* ID of the finding instance.
*/
finding_instance_id: string;
}
}
/**
* Information about a failed webhook job creation.
*/
export interface Failed {
/**
* Error message describing the failure.
*/
error: string;
/**
* ID of the finding instance that failed to create a webhook job.
*/
finding_instance_id: string;
/**
* ID of the webhook configuration.
*/
webhook_id: string;
}
}
export interface JobCreateParams {
/**
* Path param: Cloudflare account ID for the user making the request.
*/
account_id: string;
/**
* Body param: Array of finding instance IDs to send to the webhooks.
*/
finding_instance_ids: Array<string>;
/**
* Body param: Array of webhook IDs to trigger jobs for.
*/
webhook_ids: Array<string>;
}
export declare namespace Jobs {
export { type JobCreateResponse as JobCreateResponse, type JobCreateParams as JobCreateParams };
}