export type CacheConfig = {key?: string | undefined, ttlInSecond?: number | undefined}; export type SchemaDef = {createTime?: number | undefined, createdBy?: string | undefined, data?: {[key: string]: Record} | undefined, externalRef?: string | undefined, name: string, ownerApp?: string | undefined, type: 'JSON' | 'AVRO' | 'PROTOBUF', updateTime?: number | undefined, updatedBy?: string | undefined, version: number}; export type RateLimitConfig = {concurrentExecLimit?: number | undefined, policy?: ('QUEUE' | 'REJECT') | undefined, rateLimitKey?: string | undefined}; export type Tag = {key?: string | undefined, type?: string | undefined, value?: string | undefined}; export type StateChangeEvent = {payload?: {[key: string]: Record} | undefined, type: string}; export type SubWorkflowParams = {idempotencyKey?: string | undefined, idempotencyStrategy?: ('FAIL' | 'RETURN_EXISTING' | 'FAIL_ON_RUNNING') | undefined, name?: string | undefined, priority?: Record | undefined, taskToDomain?: {[key: string]: string} | undefined, version?: number | undefined, workflowDefinition?: Record | undefined}; export type TaskDef = {backoffJitterMs?: number | undefined, backoffScaleFactor?: number | undefined, baseType?: string | undefined, concurrentExecLimit?: number | undefined, createTime?: number | undefined, createdBy?: string | undefined, description?: string | undefined, enforceSchema?: boolean | undefined, executionNameSpace?: string | undefined, inputKeys?: Array | undefined, inputSchema?: SchemaDef | undefined, inputTemplate?: {[key: string]: Record} | undefined, isolationGroupId?: string | undefined, maxRetryDelaySeconds?: number | undefined, name?: string | undefined, outputKeys?: Array | undefined, outputSchema?: SchemaDef | undefined, ownerApp?: string | undefined, ownerEmail?: string | undefined, pollTimeoutSeconds?: number | undefined, rateLimitFrequencyInSeconds?: number | undefined, rateLimitPerFrequency?: number | undefined, responseTimeoutSeconds?: number | undefined, retryCount?: number | undefined, retryDelaySeconds?: number | undefined, retryLogic?: ('FIXED' | 'EXPONENTIAL_BACKOFF' | 'LINEAR_BACKOFF') | undefined, runtimeMetadata?: Array | undefined, taskStatusListenerEnabled?: boolean | undefined, timeoutPolicy?: ('RETRY' | 'TIME_OUT_WF' | 'ALERT_ONLY') | undefined, timeoutSeconds: number, totalTimeoutSeconds?: number | undefined, updateTime?: number | undefined, updatedBy?: string | undefined}; export type WorkflowTask = {asyncComplete?: boolean | undefined, cacheConfig?: CacheConfig | undefined, caseExpression?: string | undefined, caseValueParam?: string | undefined, decisionCases?: {[key: string]: Array} | undefined, defaultCase?: Array | undefined, defaultExclusiveJoinTask?: Array | undefined, description?: string | undefined, dynamicForkJoinTasksParam?: string | undefined, dynamicForkTasksInputParamName?: string | undefined, dynamicForkTasksParam?: string | undefined, dynamicTaskNameParam?: string | undefined, evaluatorType?: string | undefined, expression?: string | undefined, forkTasks?: Array> | undefined, inputParameters?: {[key: string]: Record} | undefined, items?: string | undefined, joinMode?: ('SYNC' | 'ASYNC') | undefined, joinOn?: Array | undefined, joinStatus?: string | undefined, loopCondition?: string | undefined, loopOver?: Array | undefined, metadata?: {[key: string]: Record} | undefined, name?: string | undefined, onStateChange?: {[key: string]: Array} | undefined, optional?: boolean | undefined, permissive?: boolean | undefined, rateLimited?: boolean | undefined, retryCount?: number | undefined, scriptExpression?: string | undefined, sink?: string | undefined, startDelay?: number | undefined, subWorkflowParam?: SubWorkflowParams | undefined, taskDefinition?: TaskDef | undefined, taskReferenceName?: string | undefined, type?: string | undefined, workflowTaskType?: ('SIMPLE' | 'DYNAMIC' | 'FORK_JOIN' | 'FORK_JOIN_DYNAMIC' | 'DECISION' | 'SWITCH' | 'JOIN' | 'DO_WHILE' | 'SUB_WORKFLOW' | 'START_WORKFLOW' | 'EVENT' | 'WAIT' | 'HUMAN' | 'USER_DEFINED' | 'HTTP' | 'LAMBDA' | 'INLINE' | 'EXCLUSIVE_JOIN' | 'TERMINATE' | 'KAFKA_PUBLISH' | 'JSON_JQ_TRANSFORM' | 'SET_VARIABLE' | 'NOOP' | 'LLM_TEXT_COMPLETE' | 'LLM_CHAT_COMPLETE' | 'LLM_INDEX_TEXT' | 'LLM_SEARCH_INDEX' | 'LLM_GENERATE_EMBEDDINGS' | 'LLM_STORE_EMBEDDINGS' | 'LLM_GET_EMBEDDINGS' | 'LIST_MCP_TOOLS' | 'CALL_MCP_TOOL' | 'PULL_WORKFLOW_MESSAGES' | 'AGENT' | 'GET_AGENT_CARD' | 'CANCEL_AGENT') | undefined}; export type ExtendedWorkflowDef = {cacheConfig?: CacheConfig | undefined, createTime?: number | undefined, createdBy?: string | undefined, description?: string | undefined, enforceSchema?: boolean | undefined, failureWorkflow?: string | undefined, failureWorkflowVersion?: number | undefined, inputParameters?: Array | undefined, inputSchema?: SchemaDef | undefined, inputTemplate?: {[key: string]: Record} | undefined, maskedFields?: Array | undefined, metadata?: {[key: string]: Record} | undefined, name?: string | undefined, outputParameters?: {[key: string]: Record} | undefined, outputSchema?: SchemaDef | undefined, overwriteTags?: boolean | undefined, ownerApp?: string | undefined, ownerEmail?: string | undefined, rateLimitConfig?: RateLimitConfig | undefined, restartable?: boolean | undefined, schemaVersion?: number | undefined, tags?: Array | undefined, tasks: Array, timeoutPolicy?: ('TIME_OUT_WF' | 'ALERT_ONLY') | undefined, timeoutSeconds: number, updateTime?: number | undefined, updatedBy?: string | undefined, variables?: {[key: string]: Record} | undefined, version?: number | undefined, workflowStatusListenerEnabled?: boolean | undefined, workflowStatusListenerSink?: string | undefined}; export type UpdateApiApiMetadataWorkflowArgs = {overwrite?: boolean | undefined, newVersion?: boolean | undefined, body: Array}; export type UpdateApiApiMetadataWorkflowOptions = {baseUrl?: string | undefined, apiKey?: string | undefined, fetch?: typeof fetch | undefined}; /** * Create or update workflow definition(s) * * PUT /api/metadata/workflow */ export const updateApiApiMetadataWorkflow = async (args: UpdateApiApiMetadataWorkflowArgs, options?: UpdateApiApiMetadataWorkflowOptions) => { const {baseUrl = "https://developer.orkescloud.com", fetch: fetchFn = fetch, apiKey} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "*/*") if (args.overwrite != null) query.append("overwrite", String(args.overwrite)) if (args.newVersion != null) query.append("newVersion", String(args.newVersion)) if (apiKey !== undefined) headers.set("X-Authorization", apiKey) const url = `${baseUrl.replace(/\/+$/, '')}/api/metadata/workflow${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PUT", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };