## Get Workflow version graph `client.Workflows.Versions.Graph(ctx, workflowName, versionID, query) (*VersionGraphResponse, error)` **get** `/accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}/graph` Retrieves the graph visualization of a workflow version. ### Parameters - `workflowName string` - `versionID string` - `query VersionGraphParams` - `AccountID param.Field[string]` ### Returns - `type VersionGraphResponse struct{…}` - `ID string` - `ClassName string` - `CreatedOn Time` - `Graph VersionGraphResponseGraph` Versioned workflow graph payload. - `Version float64` - `Workflow VersionGraphResponseGraphWorkflow` A parsed workflow entrypoint with its step graph. - `ClassName string` - `Functions map[string, VersionGraphResponseGraphWorkflowFunction]` - `Name string` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowFunctionsType` - `const VersionGraphResponseGraphWorkflowFunctionsTypeFunctionDef VersionGraphResponseGraphWorkflowFunctionsType = "function_def"` - `Nodes []VersionGraphResponseGraphWorkflowNode` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Duration VersionGraphResponseGraphWorkflowNodesObjectDurationUnion` Duration as milliseconds (number) or human-readable string. - `UnionFloat` - `UnionString` - `Name string` - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeStepSleep VersionGraphResponseGraphWorkflowNodesObjectType = "step_sleep"` - `Resolves float64` - `Starts float64` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Config VersionGraphResponseGraphWorkflowNodesObjectConfig` Configuration for a step (retries and timeout). - `Retries VersionGraphResponseGraphWorkflowNodesObjectConfigRetries` Retry policy for a step. - `Backoff VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesBackoff` Backoff strategy for step retries. - `const VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesBackoffConstant VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesBackoff = "constant"` - `const VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesBackoffLinear VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesBackoff = "linear"` - `const VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesBackoffExponential VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesBackoff = "exponential"` - `Delay VersionGraphResponseGraphWorkflowNodesObjectConfigRetriesDelayUnion` Duration as milliseconds (number) or human-readable string. - `UnionFloat` - `UnionString` - `Limit float64` - `Timeout VersionGraphResponseGraphWorkflowNodesObjectConfigTimeoutUnion` Duration as milliseconds (number) or human-readable string. - `UnionFloat` - `UnionString` - `Name string` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeStepDo VersionGraphResponseGraphWorkflowNodesObjectType = "step_do"` - `Resolves float64` - `Starts float64` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Name string` - `Options VersionGraphResponseGraphWorkflowNodesObjectOptions` Options for a waitForEvent step. - `EventType string` - `Timeout VersionGraphResponseGraphWorkflowNodesObjectOptionsTimeoutUnion` Duration as milliseconds (number) or human-readable string. - `UnionFloat` - `UnionString` - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeStepWaitForEvent VersionGraphResponseGraphWorkflowNodesObjectType = "step_wait_for_event"` - `Payload VersionGraphResponseGraphWorkflowNodesObjectPayload` Shape descriptor for JSON payloads. - `type VersionGraphResponseGraphWorkflowNodesObjectPayloadType struct{…}` - `Type VersionGraphResponseGraphWorkflowNodesObjectPayloadTypeType` - `const VersionGraphResponseGraphWorkflowNodesObjectPayloadTypeTypeUnknown VersionGraphResponseGraphWorkflowNodesObjectPayloadTypeType = "unknown"` - `type VersionGraphResponseGraphWorkflowNodesObjectPayloadObject struct{…}` - `Fields map[string, unknown]` Nested JsonShape fields (recursive structure). - `Type VersionGraphResponseGraphWorkflowNodesObjectPayloadObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectPayloadObjectTypeObject VersionGraphResponseGraphWorkflowNodesObjectPayloadObjectType = "object"` - `Resolves float64` - `Starts float64` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Name string` - `Timestamp string` - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeStepSleepUntil VersionGraphResponseGraphWorkflowNodesObjectType = "step_sleep_until"` - `Resolves float64` - `Starts float64` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeLoop VersionGraphResponseGraphWorkflowNodesObjectType = "loop"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Kind VersionGraphResponseGraphWorkflowNodesObjectKind` Parallel execution strategy. - `const VersionGraphResponseGraphWorkflowNodesObjectKindAll VersionGraphResponseGraphWorkflowNodesObjectKind = "all"` - `const VersionGraphResponseGraphWorkflowNodesObjectKindAny VersionGraphResponseGraphWorkflowNodesObjectKind = "any"` - `const VersionGraphResponseGraphWorkflowNodesObjectKindAllSettled VersionGraphResponseGraphWorkflowNodesObjectKind = "all_settled"` - `const VersionGraphResponseGraphWorkflowNodesObjectKindRace VersionGraphResponseGraphWorkflowNodesObjectKind = "race"` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeParallel VersionGraphResponseGraphWorkflowNodesObjectType = "parallel"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `CatchBlock VersionGraphResponseGraphWorkflowNodesObjectCatchBlock` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectCatchBlockType` - `const VersionGraphResponseGraphWorkflowNodesObjectCatchBlockTypeBlock VersionGraphResponseGraphWorkflowNodesObjectCatchBlockType = "block"` - `FinallyBlock VersionGraphResponseGraphWorkflowNodesObjectFinallyBlock` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectFinallyBlockType` - `const VersionGraphResponseGraphWorkflowNodesObjectFinallyBlockTypeBlock VersionGraphResponseGraphWorkflowNodesObjectFinallyBlockType = "block"` - `TryBlock VersionGraphResponseGraphWorkflowNodesObjectTryBlock` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectTryBlockType` - `const VersionGraphResponseGraphWorkflowNodesObjectTryBlockTypeBlock VersionGraphResponseGraphWorkflowNodesObjectTryBlockType = "block"` - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeTry VersionGraphResponseGraphWorkflowNodesObjectType = "try"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeBlock VersionGraphResponseGraphWorkflowNodesObjectType = "block"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Branches []VersionGraphResponseGraphWorkflowNodesObjectBranch` - `Condition string` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeIf VersionGraphResponseGraphWorkflowNodesObjectType = "if"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Branches []VersionGraphResponseGraphWorkflowNodesObjectBranch` - `Condition string` - `Nodes []unknown` Child nodes (recursive). - `Discriminant string` - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeSwitch VersionGraphResponseGraphWorkflowNodesObjectType = "switch"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `ClassName string` - `Functions map[string, VersionGraphResponseGraphWorkflowNodesObjectFunction]` - `Name string` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectFunctionsType` - `const VersionGraphResponseGraphWorkflowNodesObjectFunctionsTypeFunctionDef VersionGraphResponseGraphWorkflowNodesObjectFunctionsType = "function_def"` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeStart VersionGraphResponseGraphWorkflowNodesObjectType = "start"` - `Payload VersionGraphResponseGraphWorkflowNodesObjectPayload` Shape descriptor for JSON payloads. - `type VersionGraphResponseGraphWorkflowNodesObjectPayloadType struct{…}` - `Type VersionGraphResponseGraphWorkflowNodesObjectPayloadTypeType` - `const VersionGraphResponseGraphWorkflowNodesObjectPayloadTypeTypeUnknown VersionGraphResponseGraphWorkflowNodesObjectPayloadTypeType = "unknown"` - `type VersionGraphResponseGraphWorkflowNodesObjectPayloadObject struct{…}` - `Fields map[string, unknown]` Nested JsonShape fields (recursive structure). - `Type VersionGraphResponseGraphWorkflowNodesObjectPayloadObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectPayloadObjectTypeObject VersionGraphResponseGraphWorkflowNodesObjectPayloadObjectType = "object"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Name string` - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeFunctionCall VersionGraphResponseGraphWorkflowNodesObjectType = "function_call"` - `Resolves float64` - `Starts float64` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Name string` - `Nodes []unknown` Child nodes (recursive). - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeFunctionDef VersionGraphResponseGraphWorkflowNodesObjectType = "function_def"` - `type VersionGraphResponseGraphWorkflowNodesObject struct{…}` - `Kind VersionGraphResponseGraphWorkflowNodesObjectKind` Break or return from a loop. - `const VersionGraphResponseGraphWorkflowNodesObjectKindBreak VersionGraphResponseGraphWorkflowNodesObjectKind = "break"` - `const VersionGraphResponseGraphWorkflowNodesObjectKindReturn VersionGraphResponseGraphWorkflowNodesObjectKind = "return"` - `Type VersionGraphResponseGraphWorkflowNodesObjectType` - `const VersionGraphResponseGraphWorkflowNodesObjectTypeBreak VersionGraphResponseGraphWorkflowNodesObjectType = "break"` - `Payload VersionGraphResponseGraphWorkflowPayload` Shape descriptor for JSON payloads. - `type VersionGraphResponseGraphWorkflowPayloadType struct{…}` - `Type VersionGraphResponseGraphWorkflowPayloadTypeType` - `const VersionGraphResponseGraphWorkflowPayloadTypeTypeUnknown VersionGraphResponseGraphWorkflowPayloadTypeType = "unknown"` - `type VersionGraphResponseGraphWorkflowPayloadObject struct{…}` - `Fields map[string, unknown]` Nested JsonShape fields (recursive structure). - `Type VersionGraphResponseGraphWorkflowPayloadObjectType` - `const VersionGraphResponseGraphWorkflowPayloadObjectTypeObject VersionGraphResponseGraphWorkflowPayloadObjectType = "object"` - `ModifiedOn Time` - `WorkflowID string` ### 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.Versions.Graph( context.TODO(), "x", "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", workflows.VersionGraphParams{ AccountID: cloudflare.F("account_id"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "errors": [ { "code": 0, "message": "message" } ], "messages": [ { "code": 0, "message": "message" } ], "result": { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "class_name": "class_name", "created_on": "2019-12-27T18:11:19.117Z", "graph": { "version": 0, "workflow": { "class_name": "class_name", "functions": { "foo": { "name": "name", "nodes": [ {} ], "type": "function_def" } }, "nodes": [ { "duration": 0, "name": "name", "type": "step_sleep", "resolves": 0, "starts": 0 } ], "payload": { "type": "unknown" } } }, "modified_on": "2019-12-27T18:11:19.117Z", "workflow_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" }, "success": true, "result_info": { "count": 0, "per_page": 0, "total_count": 0, "cursor": "cursor", "page": 0, "total_pages": 0 } } ```