# Instances ## List of workflow instances `client.Workflows.Instances.List(ctx, workflowName, params) (*V4PagePaginationArray[InstanceListResponse], error)` **get** `/accounts/{account_id}/workflows/{workflow_name}/instances` Lists all instances of a workflow with their execution status. ### Parameters - `workflowName string` - `params InstanceListParams` - `AccountID param.Field[string]` Path param - `Cursor param.Field[string]` Query param: Opaque token for cursor-based pagination. Mutually exclusive with `page`. - `DateEnd param.Field[Time]` Query param: Accepts ISO 8601 with no timezone offsets and in UTC. - `DateStart param.Field[Time]` Query param: Accepts ISO 8601 with no timezone offsets and in UTC. - `Direction param.Field[InstanceListParamsDirection]` Query param: Defines the direction for cursor-based pagination. - `const InstanceListParamsDirectionAsc InstanceListParamsDirection = "asc"` - `const InstanceListParamsDirectionDesc InstanceListParamsDirection = "desc"` - `Page param.Field[float64]` Query param: Deprecated: use `cursor` for pagination instead. - `PerPage param.Field[float64]` Query param - `Status param.Field[InstanceListParamsStatus]` Query param - `const InstanceListParamsStatusQueued InstanceListParamsStatus = "queued"` - `const InstanceListParamsStatusRunning InstanceListParamsStatus = "running"` - `const InstanceListParamsStatusPaused InstanceListParamsStatus = "paused"` - `const InstanceListParamsStatusErrored InstanceListParamsStatus = "errored"` - `const InstanceListParamsStatusTerminated InstanceListParamsStatus = "terminated"` - `const InstanceListParamsStatusComplete InstanceListParamsStatus = "complete"` - `const InstanceListParamsStatusWaitingForPause InstanceListParamsStatus = "waitingForPause"` - `const InstanceListParamsStatusWaiting InstanceListParamsStatus = "waiting"` - `const InstanceListParamsStatusRollingBack InstanceListParamsStatus = "rollingBack"` ### Returns - `type InstanceListResponse struct{…}` - `ID string` - `CreatedOn Time` - `EndedOn Time` - `ModifiedOn Time` - `StartedOn Time` - `Status InstanceListResponseStatus` - `const InstanceListResponseStatusQueued InstanceListResponseStatus = "queued"` - `const InstanceListResponseStatusRunning InstanceListResponseStatus = "running"` - `const InstanceListResponseStatusPaused InstanceListResponseStatus = "paused"` - `const InstanceListResponseStatusErrored InstanceListResponseStatus = "errored"` - `const InstanceListResponseStatusTerminated InstanceListResponseStatus = "terminated"` - `const InstanceListResponseStatusComplete InstanceListResponseStatus = "complete"` - `const InstanceListResponseStatusWaitingForPause InstanceListResponseStatus = "waitingForPause"` - `const InstanceListResponseStatusWaiting InstanceListResponseStatus = "waiting"` - `const InstanceListResponseStatusRollingBack InstanceListResponseStatus = "rollingBack"` - `VersionID string` - `WorkflowID string` - `TriggerSource InstanceListResponseTriggerSource` - `const InstanceListResponseTriggerSourceUnknown InstanceListResponseTriggerSource = "unknown"` - `const InstanceListResponseTriggerSourceAPI InstanceListResponseTriggerSource = "api"` - `const InstanceListResponseTriggerSourceBinding InstanceListResponseTriggerSource = "binding"` - `const InstanceListResponseTriggerSourceEvent InstanceListResponseTriggerSource = "event"` - `const InstanceListResponseTriggerSourceCron InstanceListResponseTriggerSource = "cron"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/workflows" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Workflows.Instances.List( context.TODO(), "x", workflows.InstanceListParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": [ { "id": "x", "created_on": "2019-12-27T18:11:19.117Z", "ended_on": "2019-12-27T18:11:19.117Z", "modified_on": "2019-12-27T18:11:19.117Z", "started_on": "2019-12-27T18:11:19.117Z", "status": "queued", "version_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "workflow_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "trigger_source": "unknown" } ], "success": true, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ``` ## Get logs and status from instance `client.Workflows.Instances.Get(ctx, workflowName, instanceID, params) (*InstanceGetResponse, error)` **get** `/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}` Retrieves logs and execution status for a specific workflow instance. ### Parameters - `workflowName string` - `instanceID string` Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression. - `params InstanceGetParams` - `AccountID param.Field[string]` Path param - `Order param.Field[InstanceGetParamsOrder]` Query param: Step ordering: "asc" (default, oldest first) or "desc" (newest first). - `const InstanceGetParamsOrderAsc InstanceGetParamsOrder = "asc"` - `const InstanceGetParamsOrderDesc InstanceGetParamsOrder = "desc"` - `Simple param.Field[InstanceGetParamsSimple]` Query param: When true, omits step details and returns only metadata with step_count. - `const InstanceGetParamsSimpleTrue InstanceGetParamsSimple = "true"` - `const InstanceGetParamsSimpleFalse InstanceGetParamsSimple = "false"` ### Returns - `type InstanceGetResponse struct{…}` - `End Time` - `Error InstanceGetResponseError` - `Message string` - `Name string` - `Output InstanceGetResponseOutputUnion` - `UnionString` - `UnionFloat` - `Params unknown` - `Queued Time` - `Rollback InstanceGetResponseRollback` - `Error InstanceGetResponseRollbackError` - `Message string` - `Name string` - `Outcome InstanceGetResponseRollbackOutcome` - `const InstanceGetResponseRollbackOutcomeComplete InstanceGetResponseRollbackOutcome = "complete"` - `const InstanceGetResponseRollbackOutcomeFailed InstanceGetResponseRollbackOutcome = "failed"` - `Start Time` - `Status InstanceGetResponseStatus` - `const InstanceGetResponseStatusQueued InstanceGetResponseStatus = "queued"` - `const InstanceGetResponseStatusRunning InstanceGetResponseStatus = "running"` - `const InstanceGetResponseStatusPaused InstanceGetResponseStatus = "paused"` - `const InstanceGetResponseStatusErrored InstanceGetResponseStatus = "errored"` - `const InstanceGetResponseStatusTerminated InstanceGetResponseStatus = "terminated"` - `const InstanceGetResponseStatusComplete InstanceGetResponseStatus = "complete"` - `const InstanceGetResponseStatusWaitingForPause InstanceGetResponseStatus = "waitingForPause"` - `const InstanceGetResponseStatusWaiting InstanceGetResponseStatus = "waiting"` - `const InstanceGetResponseStatusRollingBack InstanceGetResponseStatus = "rollingBack"` - `StepCount int64` - `Steps []InstanceGetResponseStep` - `type InstanceGetResponseStepsObject struct{…}` - `Attempts []InstanceGetResponseStepsObjectAttempt` - `End Time` - `Error InstanceGetResponseStepsObjectAttemptsError` - `Message string` - `Name string` - `Start Time` - `Success bool` - `Config InstanceGetResponseStepsObjectConfig` - `Retries InstanceGetResponseStepsObjectConfigRetries` - `Delay InstanceGetResponseStepsObjectConfigRetriesDelayUnion` Specifies the delay duration. '[dynamic]' indicates the delay is computed by a user-supplied function. - `UnionString` - `UnionFloat` - `Limit float64` - `Backoff InstanceGetResponseStepsObjectConfigRetriesBackoff` - `const InstanceGetResponseStepsObjectConfigRetriesBackoffConstant InstanceGetResponseStepsObjectConfigRetriesBackoff = "constant"` - `const InstanceGetResponseStepsObjectConfigRetriesBackoffLinear InstanceGetResponseStepsObjectConfigRetriesBackoff = "linear"` - `const InstanceGetResponseStepsObjectConfigRetriesBackoffExponential InstanceGetResponseStepsObjectConfigRetriesBackoff = "exponential"` - `Timeout InstanceGetResponseStepsObjectConfigTimeoutUnion` Specifies the timeout duration. - `UnionString` - `UnionFloat` - `Sensitive InstanceGetResponseStepsObjectConfigSensitive` When set to 'output', step output is redacted from log and step output responses. - `const InstanceGetResponseStepsObjectConfigSensitiveOutput InstanceGetResponseStepsObjectConfigSensitive = "output"` - `End Time` - `Name string` - `Output string` - `Start Time` - `Success bool` - `Type InstanceGetResponseStepsObjectType` - `const InstanceGetResponseStepsObjectTypeStep InstanceGetResponseStepsObjectType = "step"` - `const InstanceGetResponseStepsObjectTypeRollback InstanceGetResponseStepsObjectType = "rollback"` - `type InstanceGetResponseStepsObject struct{…}` - `End Time` - `Error InstanceGetResponseStepsObjectError` - `Message string` - `Name string` - `Finished bool` - `Name string` - `Start Time` - `Type InstanceGetResponseStepsObjectType` - `const InstanceGetResponseStepsObjectTypeSleep InstanceGetResponseStepsObjectType = "sleep"` - `type InstanceGetResponseStepsObject struct{…}` - `Trigger InstanceGetResponseStepsObjectTrigger` - `Source string` - `Type InstanceGetResponseStepsObjectType` - `const InstanceGetResponseStepsObjectTypeTermination InstanceGetResponseStepsObjectType = "termination"` - `type InstanceGetResponseStepsObject struct{…}` - `End Time` - `Error InstanceGetResponseStepsObjectError` - `Message string` - `Name string` - `Finished bool` - `Name string` - `Start Time` - `Type InstanceGetResponseStepsObjectType` - `const InstanceGetResponseStepsObjectTypeWaitForEvent InstanceGetResponseStepsObjectType = "waitForEvent"` - `Output string` - `Success bool` - `Trigger InstanceGetResponseTrigger` - `Source InstanceGetResponseTriggerSource` - `const InstanceGetResponseTriggerSourceUnknown InstanceGetResponseTriggerSource = "unknown"` - `const InstanceGetResponseTriggerSourceAPI InstanceGetResponseTriggerSource = "api"` - `const InstanceGetResponseTriggerSourceBinding InstanceGetResponseTriggerSource = "binding"` - `const InstanceGetResponseTriggerSourceEvent InstanceGetResponseTriggerSource = "event"` - `const InstanceGetResponseTriggerSourceCron InstanceGetResponseTriggerSource = "cron"` - `VersionID string` - `Schedule InstanceGetResponseSchedule` - `Cron string` - `ScheduledTime float64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/workflows" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) instance, err := client.Workflows.Instances.Get( context.TODO(), "x", "x", workflows.InstanceGetParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", instance.End) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": { "end": "2019-12-27T18:11:19.117Z", "error": { "message": "message", "name": "name" }, "output": "string", "params": {}, "queued": "2019-12-27T18:11:19.117Z", "rollback": { "error": { "message": "message", "name": "name" }, "outcome": "complete" }, "start": "2019-12-27T18:11:19.117Z", "status": "queued", "step_count": 0, "steps": [ { "attempts": [ { "end": "2019-12-27T18:11:19.117Z", "error": { "message": "message", "name": "name" }, "start": "2019-12-27T18:11:19.117Z", "success": true } ], "config": { "retries": { "delay": "string", "limit": 0, "backoff": "constant" }, "timeout": "string", "sensitive": "output" }, "end": "2019-12-27T18:11:19.117Z", "name": "name", "output": "output", "start": "2019-12-27T18:11:19.117Z", "success": true, "type": "step" } ], "success": true, "trigger": { "source": "unknown" }, "versionId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "schedule": { "cron": "cron", "scheduledTime": 0 } }, "success": true, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ``` ## Create a new workflow instance `client.Workflows.Instances.New(ctx, workflowName, params) (*InstanceNewResponse, error)` **post** `/accounts/{account_id}/workflows/{workflow_name}/instances` Creates a new instance of a workflow, starting its execution. ### Parameters - `workflowName string` - `params InstanceNewParams` - `AccountID param.Field[string]` Path param - `InstanceID param.Field[string]` Body param - `InstanceRetention param.Field[InstanceNewParamsInstanceRetention]` Body param - `ErrorRetention InstanceNewParamsInstanceRetentionErrorRetentionUnion` Specifies the duration in milliseconds or as a string like '5 minutes'. - `UnionInt` - `UnionString` - `SuccessRetention InstanceNewParamsInstanceRetentionSuccessRetentionUnion` Specifies the duration in milliseconds or as a string like '5 minutes'. - `UnionInt` - `UnionString` - `Params param.Field[unknown]` Body param ### Returns - `type InstanceNewResponse struct{…}` - `ID string` - `Status InstanceNewResponseStatus` - `const InstanceNewResponseStatusQueued InstanceNewResponseStatus = "queued"` - `const InstanceNewResponseStatusRunning InstanceNewResponseStatus = "running"` - `const InstanceNewResponseStatusPaused InstanceNewResponseStatus = "paused"` - `const InstanceNewResponseStatusErrored InstanceNewResponseStatus = "errored"` - `const InstanceNewResponseStatusTerminated InstanceNewResponseStatus = "terminated"` - `const InstanceNewResponseStatusComplete InstanceNewResponseStatus = "complete"` - `const InstanceNewResponseStatusWaitingForPause InstanceNewResponseStatus = "waitingForPause"` - `const InstanceNewResponseStatusWaiting InstanceNewResponseStatus = "waiting"` - `const InstanceNewResponseStatusRollingBack InstanceNewResponseStatus = "rollingBack"` - `VersionID string` - `WorkflowID string` - `TriggerSource InstanceNewResponseTriggerSource` - `const InstanceNewResponseTriggerSourceUnknown InstanceNewResponseTriggerSource = "unknown"` - `const InstanceNewResponseTriggerSourceAPI InstanceNewResponseTriggerSource = "api"` - `const InstanceNewResponseTriggerSourceBinding InstanceNewResponseTriggerSource = "binding"` - `const InstanceNewResponseTriggerSourceEvent InstanceNewResponseTriggerSource = "event"` - `const InstanceNewResponseTriggerSourceCron InstanceNewResponseTriggerSource = "cron"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/workflows" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) instance, err := client.Workflows.Instances.New( context.TODO(), "x", workflows.InstanceNewParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", instance.ID) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": { "id": "x", "status": "queued", "version_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "workflow_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "trigger_source": "unknown" }, "success": true, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ``` ## Batch create new Workflow instances `client.Workflows.Instances.Bulk(ctx, workflowName, params) (*SinglePage[InstanceBulkResponse], error)` **post** `/accounts/{account_id}/workflows/{workflow_name}/instances/batch` Creates multiple workflow instances in a single batch operation. ### Parameters - `workflowName string` - `params InstanceBulkParams` - `AccountID param.Field[string]` Path param - `Body param.Field[[]InstanceBulkParamsBody]` Body param - `InstanceID string` - `InstanceRetention InstanceBulkParamsBodyInstanceRetention` - `ErrorRetention InstanceBulkParamsBodyInstanceRetentionErrorRetentionUnion` Specifies the duration in milliseconds or as a string like '5 minutes'. - `UnionInt` - `UnionString` - `SuccessRetention InstanceBulkParamsBodyInstanceRetentionSuccessRetentionUnion` Specifies the duration in milliseconds or as a string like '5 minutes'. - `UnionInt` - `UnionString` - `Params unknown` ### Returns - `type InstanceBulkResponse struct{…}` - `ID string` - `Status InstanceBulkResponseStatus` - `const InstanceBulkResponseStatusQueued InstanceBulkResponseStatus = "queued"` - `const InstanceBulkResponseStatusRunning InstanceBulkResponseStatus = "running"` - `const InstanceBulkResponseStatusPaused InstanceBulkResponseStatus = "paused"` - `const InstanceBulkResponseStatusErrored InstanceBulkResponseStatus = "errored"` - `const InstanceBulkResponseStatusTerminated InstanceBulkResponseStatus = "terminated"` - `const InstanceBulkResponseStatusComplete InstanceBulkResponseStatus = "complete"` - `const InstanceBulkResponseStatusWaitingForPause InstanceBulkResponseStatus = "waitingForPause"` - `const InstanceBulkResponseStatusWaiting InstanceBulkResponseStatus = "waiting"` - `const InstanceBulkResponseStatusRollingBack InstanceBulkResponseStatus = "rollingBack"` - `VersionID string` - `WorkflowID string` - `TriggerSource InstanceBulkResponseTriggerSource` - `const InstanceBulkResponseTriggerSourceUnknown InstanceBulkResponseTriggerSource = "unknown"` - `const InstanceBulkResponseTriggerSourceAPI InstanceBulkResponseTriggerSource = "api"` - `const InstanceBulkResponseTriggerSourceBinding InstanceBulkResponseTriggerSource = "binding"` - `const InstanceBulkResponseTriggerSourceEvent InstanceBulkResponseTriggerSource = "event"` - `const InstanceBulkResponseTriggerSourceCron InstanceBulkResponseTriggerSource = "cron"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/workflows" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Workflows.Instances.Bulk( context.TODO(), "x", workflows.InstanceBulkParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": [ { "id": "x", "status": "queued", "version_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "workflow_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "trigger_source": "unknown" } ], "success": true, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ``` ## Get full step output from instance `client.Workflows.Instances.Step(ctx, workflowName, instanceID, params) (*InstanceStepResponse, error)` **get** `/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/step` Retrieves the full, untruncated output for a specific step on a workflow instance. Returns a flat status-shaped JSON body with step `status` ('running' | 'waiting' | 'complete' | 'errored'), `error` (nullable), and `output` (the step value, or null while running/waiting/errored). When the step returned a ReadableStream from step.do, the response is served as 'application/octet-stream' with the raw bytes as the body instead of JSON. A `status='running'` response with non-null `error` indicates the step is currently retrying after a prior attempt failed. ### Parameters - `workflowName string` - `instanceID string` Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression. - `params InstanceStepParams` - `AccountID param.Field[string]` Path param - `Name param.Field[string]` Query param: Exact step name from the instance logs response, including the generated counter suffix. - `Type param.Field[InstanceStepParamsType]` Query param: Step type to disambiguate step.do and waitForEvent entries that share the same name. - `const InstanceStepParamsTypeStep InstanceStepParamsType = "step"` - `const InstanceStepParamsTypeWaitForEvent InstanceStepParamsType = "waitForEvent"` - `Attempt param.Field[int64]` Query param: Specific attempt number to retrieve output or error for. ### Returns - `type InstanceStepResponse struct{…}` - `Error InstanceStepResponseError` Error details when status='errored'; null otherwise. - `Message string` - `Name string` - `Status InstanceStepResponseStatus` - `const InstanceStepResponseStatusQueued InstanceStepResponseStatus = "queued"` - `const InstanceStepResponseStatusRunning InstanceStepResponseStatus = "running"` - `const InstanceStepResponseStatusPaused InstanceStepResponseStatus = "paused"` - `const InstanceStepResponseStatusErrored InstanceStepResponseStatus = "errored"` - `const InstanceStepResponseStatusTerminated InstanceStepResponseStatus = "terminated"` - `const InstanceStepResponseStatusComplete InstanceStepResponseStatus = "complete"` - `const InstanceStepResponseStatusWaitingForPause InstanceStepResponseStatus = "waitingForPause"` - `const InstanceStepResponseStatusWaiting InstanceStepResponseStatus = "waiting"` - `const InstanceStepResponseStatusRollingBack InstanceStepResponseStatus = "rollingBack"` - `Output unknown` Full step output or waitForEvent payload without truncation. Sensitive outputs are returned as '[REDACTED]'. Populated when status='complete'. May be a ReadableStream when the step returned one from step.do; stream outputs are served as application/octet-stream rather than JSON. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/workflows" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Workflows.Instances.Step( context.TODO(), "x", "x", workflows.InstanceStepParams{ AccountID: cloudflare.F("account_id"), Name: cloudflare.F("x"), Type: cloudflare.F(workflows.InstanceStepParamsTypeStep), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Error) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": { "error": { "message": "message", "name": "name" }, "status": "queued", "output": {} }, "success": true, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ``` # Status ## Change status of instance `client.Workflows.Instances.Status.Edit(ctx, workflowName, instanceID, params) (*InstanceStatusEditResponse, error)` **patch** `/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/status` Changes the execution status of a workflow instance (e.g., pause, resume, terminate). ### Parameters - `workflowName string` - `instanceID string` Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression. - `params InstanceStatusEditParams` - `AccountID param.Field[string]` Path param - `Status param.Field[InstanceStatusEditParamsVariant0Status]` Body param - `const InstanceStatusEditParamsVariant0StatusPause InstanceStatusEditParamsVariant0Status = "pause"` ### Returns - `type InstanceStatusEditResponse struct{…}` - `Status InstanceStatusEditResponseStatus` - `const InstanceStatusEditResponseStatusQueued InstanceStatusEditResponseStatus = "queued"` - `const InstanceStatusEditResponseStatusRunning InstanceStatusEditResponseStatus = "running"` - `const InstanceStatusEditResponseStatusPaused InstanceStatusEditResponseStatus = "paused"` - `const InstanceStatusEditResponseStatusErrored InstanceStatusEditResponseStatus = "errored"` - `const InstanceStatusEditResponseStatusTerminated InstanceStatusEditResponseStatus = "terminated"` - `const InstanceStatusEditResponseStatusComplete InstanceStatusEditResponseStatus = "complete"` - `const InstanceStatusEditResponseStatusWaitingForPause InstanceStatusEditResponseStatus = "waitingForPause"` - `const InstanceStatusEditResponseStatusWaiting InstanceStatusEditResponseStatus = "waiting"` - `const InstanceStatusEditResponseStatusRollingBack InstanceStatusEditResponseStatus = "rollingBack"` - `Timestamp Time` Accepts ISO 8601 with no timezone offsets and in UTC. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/workflows" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Workflows.Instances.Status.Edit( context.TODO(), "x", "x", workflows.InstanceStatusEditParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Status) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": { "status": "queued", "timestamp": "2019-12-27T18:11:19.117Z" }, "success": true, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ``` # Events ## Send event to instance `client.Workflows.Instances.Events.New(ctx, workflowName, instanceID, eventType, params) (*InstanceEventNewResponse, error)` **post** `/accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/events/{event_type}` Sends an event to a running workflow instance to trigger state transitions. ### Parameters - `workflowName string` - `instanceID string` Instance identifier. User-created instances match `^[a-zA-Z0-9_][a-zA-Z0-9-_]*$` (max 100 characters); cron-triggered instances can use a longer, system-generated id derived from the cron expression. - `eventType string` - `params InstanceEventNewParams` - `AccountID param.Field[string]` Path param - `Body param.Field[unknown]` Body param ### Returns - `type InstanceEventNewResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/workflows" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) event, err := client.Workflows.Instances.Events.New( context.TODO(), "x", "x", "x", workflows.InstanceEventNewParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", event) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "success": true, "result": {}, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ```