---
title: "Create or update workflow definition(s)"
method: PUT
path: "/api/metadata/workflow"
tags: ["metadata-resource"]
---

# Create or update workflow definition(s)

`PUT /api/metadata/workflow`

## Query parameters

- `overwrite` boolean
- `newVersion` boolean

## Request body

- ExtendedWorkflowDef[]
  - `cacheConfig` CacheConfig
    - `key` string
    - `ttlInSecond` integer
  - `createTime` integer
  - `createdBy` string
  - `description` string
  - `enforceSchema` boolean
  - `failureWorkflow` string
  - `failureWorkflowVersion` integer
  - `inputParameters` string[]
  - `inputSchema` SchemaDef
    - `createTime` integer
    - `createdBy` string
    - `data` object
    - `externalRef` string
    - `name` string, required
    - `ownerApp` string
    - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
    - `updateTime` integer
    - `updatedBy` string
    - `version` integer, required
  - `inputTemplate` object
  - `maskedFields` string[]
  - `metadata` object
  - `name` string, required
  - `outputParameters` object
  - `outputSchema` SchemaDef
    - `createTime` integer
    - `createdBy` string
    - `data` object
    - `externalRef` string
    - `name` string, required
    - `ownerApp` string
    - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
    - `updateTime` integer
    - `updatedBy` string
    - `version` integer, required
  - `overwriteTags` boolean
  - `ownerApp` string
  - `ownerEmail` string
  - `rateLimitConfig` RateLimitConfig
    - `concurrentExecLimit` integer
    - `policy` 'QUEUE' | 'REJECT'
    - `rateLimitKey` string
  - `restartable` boolean
  - `schemaVersion` integer
  - `tags` Tag[]
    - `key` string
    - `type` string
    - `value` string
  - `tasks` WorkflowTask[], required
    - `asyncComplete` boolean
    - `cacheConfig` CacheConfig
      - `key` string
      - `ttlInSecond` integer
    - `caseExpression` string
    - `caseValueParam` string
    - `decisionCases` object
    - `defaultCase` WorkflowTask[]
    - `defaultExclusiveJoinTask` string[]
    - `description` string
    - `dynamicForkJoinTasksParam` string
    - `dynamicForkTasksInputParamName` string
    - `dynamicForkTasksParam` string
    - `dynamicTaskNameParam` string
    - `evaluatorType` string
    - `expression` string
    - `forkTasks` array[]
      - WorkflowTask[]
    - `inputParameters` object
    - `items` string
    - `joinMode` 'SYNC' | 'ASYNC'
    - `joinOn` string[]
    - `joinStatus` string
    - `loopCondition` string
    - `loopOver` WorkflowTask[]
    - `metadata` object
    - `name` string, required
    - `onStateChange` object
    - `optional` boolean
    - `permissive` boolean
    - `rateLimited` boolean
    - `retryCount` integer
    - `scriptExpression` string
    - `sink` string
    - `startDelay` integer
    - `subWorkflowParam` SubWorkflowParams
      - `idempotencyKey` string
      - `idempotencyStrategy` 'FAIL' | 'RETURN_EXISTING' | 'FAIL_ON_RUNNING'
      - `name` string
      - `priority` object
      - `taskToDomain` object
      - `version` integer
      - `workflowDefinition` object
    - `taskDefinition` TaskDef
      - `backoffJitterMs` integer
      - `backoffScaleFactor` integer
      - `baseType` string
      - `concurrentExecLimit` integer
      - `createTime` integer
      - `createdBy` string
      - `description` string
      - `enforceSchema` boolean
      - `executionNameSpace` string
      - `inputKeys` string[]
      - `inputSchema` SchemaDef
        - `createTime` integer
        - `createdBy` string
        - `data` object
        - `externalRef` string
        - `name` string, required
        - `ownerApp` string
        - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
        - `updateTime` integer
        - `updatedBy` string
        - `version` integer, required
      - `inputTemplate` object
      - `isolationGroupId` string
      - `maxRetryDelaySeconds` integer
      - `name` string, required
      - `outputKeys` string[]
      - `outputSchema` SchemaDef
        - `createTime` integer
        - `createdBy` string
        - `data` object
        - `externalRef` string
        - `name` string, required
        - `ownerApp` string
        - `type` 'JSON' | 'AVRO' | 'PROTOBUF', required
        - `updateTime` integer
        - `updatedBy` string
        - `version` integer, required
      - `ownerApp` string
      - `ownerEmail` string
      - `pollTimeoutSeconds` integer
      - `rateLimitFrequencyInSeconds` integer
      - `rateLimitPerFrequency` integer
      - `responseTimeoutSeconds` integer
      - `retryCount` integer
      - `retryDelaySeconds` integer
      - `retryLogic` 'FIXED' | 'EXPONENTIAL_BACKOFF' | 'LINEAR_BACKOFF'
      - `runtimeMetadata` string[]
      - `taskStatusListenerEnabled` boolean
      - `timeoutPolicy` 'RETRY' | 'TIME_OUT_WF' | 'ALERT_ONLY'
      - `timeoutSeconds` integer, required
      - `totalTimeoutSeconds` integer
      - `updateTime` integer
      - `updatedBy` string
    - `taskReferenceName` string, required
    - `type` string
    - `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'
  - `timeoutPolicy` 'TIME_OUT_WF' | 'ALERT_ONLY'
  - `timeoutSeconds` integer, required
  - `updateTime` integer
  - `updatedBy` string
  - `variables` object
  - `version` integer
  - `workflowStatusListenerEnabled` boolean
  - `workflowStatusListenerSink` string

## Response `200`

OK

---

[API](https://skmtc.dev/orkescloud/apis/orkes-conductor-api-server.md) · [All operations](https://skmtc.dev/orkescloud/apis/orkes-conductor-api-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/orkescloud/orkes-conductor-api-server/revisions/6ebf0c14ac41/schema)
