cloudflare
Version:
The official TypeScript library for the Cloudflare API
602 lines (465 loc) • 13.3 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 { PagePromise, V4PagePaginationArray, type V4PagePaginationArrayParams } from '../../core/pagination';
import { RequestOptions } from '../../internal/request-options';
import { path } from '../../internal/utils/path';
export class BaseVersions extends APIResource {
static override readonly _key: readonly ['workflows', 'versions'] = Object.freeze([
'workflows',
'versions',
] as const);
/**
* Lists all deployed versions of a workflow.
*/
list(
workflowName: string,
params: VersionListParams,
options?: RequestOptions,
): PagePromise<VersionListResponsesV4PagePaginationArray, VersionListResponse> {
const { account_id, ...query } = params;
return this._client.getAPIList(
path`/accounts/${account_id}/workflows/${workflowName}/versions`,
V4PagePaginationArray<VersionListResponse>,
{ query, ...options },
);
}
/**
* Retrieves details for a specific deployed workflow version.
*/
get(versionID: string, params: VersionGetParams, options?: RequestOptions): APIPromise<VersionGetResponse> {
const { account_id, workflow_name } = params;
return (
this._client.get(
path`/accounts/${account_id}/workflows/${workflow_name}/versions/${versionID}`,
options,
) as APIPromise<{ result: VersionGetResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Retrieves the graph visualization of a workflow version.
*/
graph(
versionID: string,
params: VersionGraphParams,
options?: RequestOptions,
): APIPromise<VersionGraphResponse> {
const { account_id, workflow_name } = params;
return (
this._client.get(
path`/accounts/${account_id}/workflows/${workflow_name}/versions/${versionID}/graph`,
options,
) as APIPromise<{ result: VersionGraphResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export class Versions extends BaseVersions {}
export type VersionListResponsesV4PagePaginationArray = V4PagePaginationArray<VersionListResponse>;
export interface VersionListResponse {
id: string;
class_name: string;
created_on: string;
has_dag: boolean;
/**
* The programming language of the workflow implementation.
*/
language: 'javascript' | 'python';
modified_on: string;
workflow_id: string;
concurrency?: VersionListResponse.Concurrency;
default_retention?: VersionListResponse.DefaultRetention;
limits?: VersionListResponse.Limits;
}
export namespace VersionListResponse {
export interface Concurrency {
/**
* Maximum number of instances of this workflow that can run concurrently.
* Additional instances are queued and started as running instances complete. Must
* not exceed the account concurrency limit.
*/
limit?: number;
}
export interface DefaultRetention {
/**
* Default error retention in milliseconds.
*/
error_retention?: number;
/**
* Default success retention in milliseconds.
*/
success_retention?: number;
}
export interface Limits {
steps?: number;
}
}
export interface VersionGetResponse {
id: string;
class_name: string;
created_on: string;
has_dag: boolean;
/**
* The programming language of the workflow implementation.
*/
language: 'javascript' | 'python';
modified_on: string;
workflow_id: string;
concurrency?: VersionGetResponse.Concurrency;
default_retention?: VersionGetResponse.DefaultRetention;
limits?: VersionGetResponse.Limits;
}
export namespace VersionGetResponse {
export interface Concurrency {
/**
* Maximum number of instances of this workflow that can run concurrently.
* Additional instances are queued and started as running instances complete. Must
* not exceed the account concurrency limit.
*/
limit?: number;
}
export interface DefaultRetention {
/**
* Default error retention in milliseconds.
*/
error_retention?: number;
/**
* Default success retention in milliseconds.
*/
success_retention?: number;
}
export interface Limits {
steps?: number;
}
}
export interface VersionGraphResponse {
id: string;
class_name: string;
created_on: string;
/**
* Versioned workflow graph payload.
*/
graph: VersionGraphResponse.Graph | null;
modified_on: string;
workflow_id: string;
}
export namespace VersionGraphResponse {
/**
* Versioned workflow graph payload.
*/
export interface Graph {
version: number;
/**
* A parsed workflow entrypoint with its step graph.
*/
workflow: Graph.Workflow;
}
export namespace Graph {
/**
* A parsed workflow entrypoint with its step graph.
*/
export interface Workflow {
class_name: string;
functions: { [key: string]: Workflow.Functions };
nodes: Array<
| Workflow.UnionMember0
| Workflow.UnionMember1
| Workflow.UnionMember2
| Workflow.UnionMember3
| Workflow.UnionMember4
| Workflow.UnionMember5
| Workflow.UnionMember6
| Workflow.UnionMember7
| Workflow.UnionMember8
| Workflow.UnionMember9
| Workflow.UnionMember10
| Workflow.UnionMember11
| Workflow.UnionMember12
| Workflow.UnionMember13
>;
/**
* Shape descriptor for JSON payloads.
*/
payload?: Workflow.Payload.Type | Workflow.Payload.UnionMember1;
}
export namespace Workflow {
export interface Functions {
name: string;
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'function_def';
}
export interface UnionMember0 {
/**
* Duration as milliseconds (number) or human-readable string.
*/
duration: number | string;
name: string;
type: 'step_sleep';
resolves?: number;
starts?: number;
}
export interface UnionMember1 {
/**
* Configuration for a step (retries and timeout).
*/
config: UnionMember1.Config;
name: string;
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'step_do';
resolves?: number;
starts?: number;
}
export namespace UnionMember1 {
/**
* Configuration for a step (retries and timeout).
*/
export interface Config {
/**
* Retry policy for a step.
*/
retries: Config.Retries;
/**
* Duration as milliseconds (number) or human-readable string.
*/
timeout: number | string;
}
export namespace Config {
/**
* Retry policy for a step.
*/
export interface Retries {
/**
* Backoff strategy for step retries.
*/
backoff: 'constant' | 'linear' | 'exponential';
/**
* Duration as milliseconds (number) or human-readable string.
*/
delay: number | string;
limit: number;
}
}
}
export interface UnionMember2 {
name: string;
/**
* Options for a waitForEvent step.
*/
options: UnionMember2.Options | null;
type: 'step_wait_for_event';
/**
* Shape descriptor for JSON payloads.
*/
payload?: UnionMember2.Type | UnionMember2.UnionMember1;
resolves?: number;
starts?: number;
}
export namespace UnionMember2 {
/**
* Options for a waitForEvent step.
*/
export interface Options {
event_type: string;
/**
* Duration as milliseconds (number) or human-readable string.
*/
timeout: number | string;
}
export interface Type {
type: 'unknown';
}
export interface UnionMember1 {
/**
* Nested JsonShape fields (recursive structure).
*/
fields: { [key: string]: unknown };
type: 'object';
}
}
export interface UnionMember3 {
name: string;
timestamp: string;
type: 'step_sleep_until';
resolves?: number;
starts?: number;
}
export interface UnionMember4 {
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'loop';
}
export interface UnionMember5 {
/**
* Parallel execution strategy.
*/
kind: 'all' | 'any' | 'all_settled' | 'race';
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'parallel';
}
export interface UnionMember6 {
catch_block: UnionMember6.CatchBlock | null;
finally_block: UnionMember6.FinallyBlock | null;
try_block: UnionMember6.TryBlock | null;
type: 'try';
}
export namespace UnionMember6 {
export interface CatchBlock {
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'block';
}
export interface FinallyBlock {
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'block';
}
export interface TryBlock {
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'block';
}
}
export interface UnionMember7 {
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'block';
}
export interface UnionMember8 {
branches: Array<UnionMember8.Branch>;
type: 'if';
}
export namespace UnionMember8 {
export interface Branch {
condition: string | null;
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
}
}
export interface UnionMember9 {
branches: Array<UnionMember9.Branch>;
discriminant: string;
type: 'switch';
}
export namespace UnionMember9 {
export interface Branch {
condition: string | null;
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
}
}
export interface UnionMember10 {
class_name: string;
functions: { [key: string]: UnionMember10.Functions };
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'start';
/**
* Shape descriptor for JSON payloads.
*/
payload?: UnionMember10.Type | UnionMember10.UnionMember1;
}
export namespace UnionMember10 {
export interface Functions {
name: string;
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'function_def';
}
export interface Type {
type: 'unknown';
}
export interface UnionMember1 {
/**
* Nested JsonShape fields (recursive structure).
*/
fields: { [key: string]: unknown };
type: 'object';
}
}
export interface UnionMember11 {
name: string;
type: 'function_call';
resolves?: number;
starts?: number;
}
export interface UnionMember12 {
name: string;
/**
* Child nodes (recursive).
*/
nodes: Array<unknown>;
type: 'function_def';
}
export interface UnionMember13 {
/**
* Break or return from a loop.
*/
kind: 'break' | 'return';
type: 'break';
}
export namespace Payload {
export interface Type {
type: 'unknown';
}
export interface UnionMember1 {
/**
* Nested JsonShape fields (recursive structure).
*/
fields: { [key: string]: unknown };
type: 'object';
}
}
}
}
}
export interface VersionListParams extends V4PagePaginationArrayParams {
/**
* Path param
*/
account_id: string;
}
export interface VersionGetParams {
account_id: string;
workflow_name: string;
}
export interface VersionGraphParams {
account_id: string;
workflow_name: string;
}
export declare namespace Versions {
export {
type VersionListResponse as VersionListResponse,
type VersionGetResponse as VersionGetResponse,
type VersionGraphResponse as VersionGraphResponse,
type VersionListResponsesV4PagePaginationArray as VersionListResponsesV4PagePaginationArray,
type VersionListParams as VersionListParams,
type VersionGetParams as VersionGetParams,
type VersionGraphParams as VersionGraphParams,
};
}