diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..17be98b
--- /dev/null
+++ b/.envrc
@@ -0,0 +1,2 @@
+use flake --impure
+dotenv
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 378df84..aef991a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -25,7 +25,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Dirty:
- runs-on: "ubuntu-latest"
+ runs-on: "formance-runner"
steps:
- uses: 'actions/checkout@v4'
with:
@@ -35,11 +35,8 @@ jobs:
with:
token: ${{ secrets.NUMARY_GITHUB_TOKEN }}
- run: >
- earthly
- --allow-privileged
- --secret SPEAKEASY_API_KEY=$SPEAKEASY_API_KEY
- ${{ contains(github.event.pull_request.labels.*.name, 'no-cache') && '--no-cache' || '' }}
- +pre-commit
+ /nix/var/nix/profiles/default/bin/nix --extra-experimental-features "nix-command" --extra-experimental-features "flakes"
+ develop --impure --command just pre-commit
env:
SPEAKEASY_API_KEY: ${{ secrets.SPEAKEASY_API_KEY }}
- name: Get changed files
@@ -54,7 +51,7 @@ jobs:
fi
Tests:
- runs-on: "ubuntu-latest"
+ runs-on: "formance-runner"
needs:
- Dirty
steps:
@@ -66,17 +63,13 @@ jobs:
with:
token: ${{ secrets.NUMARY_GITHUB_TOKEN }}
- run: >
- earthly
- --no-output
- --allow-privileged
- --secret SPEAKEASY_API_KEY=$SPEAKEASY_API_KEY
- ${{ contains(github.event.pull_request.labels.*.name, 'no-cache') && '--no-cache' || '' }}
- +tests
+ /nix/var/nix/profiles/default/bin/nix --extra-experimental-features "nix-command" --extra-experimental-features "flakes"
+ develop --impure --command just tests
env:
SPEAKEASY_API_KEY: ${{ secrets.SPEAKEASY_API_KEY }}
GoReleaser:
- runs-on: "ubuntu-latest"
+ runs-on: "formance-runner"
if: contains(github.event.pull_request.labels.*.name, 'build-images') || github.ref == 'refs/heads/main' || github.event_name == 'merge_group'
needs:
- Dirty
@@ -89,15 +82,8 @@ jobs:
with:
token: ${{ secrets.NUMARY_GITHUB_TOKEN }}
- run: >
- earthly
- --no-output
- --allow-privileged
- --secret SPEAKEASY_API_KEY=$SPEAKEASY_API_KEY
- --secret GITHUB_TOKEN=$GITHUB_TOKEN
- --secret FURY_TOKEN=$FURY_TOKEN
- --secret GORELEASER_KEY=$GORELEASER_KEY
- ${{ contains(github.event.pull_request.labels.*.name, 'no-cache') && '--no-cache' || '' }}
- +release --mode=ci
+ /nix/var/nix/profiles/default/bin/nix --extra-experimental-features "nix-command" --extra-experimental-features "flakes"
+ develop --impure --command just release-ci
env:
GITHUB_TOKEN: ${{ secrets.NUMARY_GITHUB_TOKEN }}
SPEAKEASY_API_KEY: ${{ secrets.SPEAKEASY_API_KEY }}
diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml
index 8a436b9..a4150ac 100644
--- a/.github/workflows/releases.yml
+++ b/.github/workflows/releases.yml
@@ -8,7 +8,7 @@ permissions:
jobs:
GoReleaser:
- runs-on: "ubuntu-latest"
+ runs-on: "formance-runner"
steps:
- uses: 'actions/checkout@v4'
with:
@@ -18,22 +18,10 @@ jobs:
with:
token: ${{ secrets.NUMARY_GITHUB_TOKEN }}
- run: >
- earthly
- --no-output
- --allow-privileged
- --secret SPEAKEASY_API_KEY=$SPEAKEASY_API_KEY
- --secret GITHUB_TOKEN=$GITHUB_TOKEN
- --secret FURY_TOKEN=$FURY_TOKEN
- --secret GORELEASER_KEY=$GORELEASER_KEY
- ${{ contains(github.event.pull_request.labels.*.name, 'no-cache') && '--no-cache' || '' }}
- +release --mode=release
+ /nix/var/nix/profiles/default/bin/nix --extra-experimental-features "nix-command" --extra-experimental-features "flakes"
+ develop --impure --command just release
env:
GITHUB_TOKEN: ${{ secrets.NUMARY_GITHUB_TOKEN }}
SPEAKEASY_API_KEY: ${{ secrets.SPEAKEASY_API_KEY }}
FURY_TOKEN: ${{ secrets.FURY_TOKEN }}
- GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
- - name: Add the OpenAPI file to the release assets
- run: >
- gh release upload ${{github.ref_name}} ./openapi.yaml#openapi.yaml
- env:
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
+ GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 7badf94..92542e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
.idea
vendor
orchestration
+dist
\ No newline at end of file
diff --git a/.goreleaser.yml b/.goreleaser.yml
index af16a5d..85911ba 100644
--- a/.goreleaser.yml
+++ b/.goreleaser.yml
@@ -34,4 +34,6 @@ release:
footer: |
## What to do next?
- Read the [documentation](https://docs.formance.com/)
- - Join our [Slack server](https://formance.com/slack)
\ No newline at end of file
+ - Join our [Slack server](https://formance.com/slack)
+ extra_files:
+ - glob: ./openapi.yaml
\ No newline at end of file
diff --git a/Earthfile b/Earthfile
index 500707a..122e23f 100644
--- a/Earthfile
+++ b/Earthfile
@@ -12,17 +12,6 @@ sources:
COPY main.go .
SAVE ARTIFACT /src
-generate:
- FROM core+builder-image
- RUN apk update && apk add openjdk11
- DO --pass-args core+GO_INSTALL --package=go.uber.org/mock/mockgen@latest
- COPY (+sources/*) /src
- WORKDIR /src
- DO --pass-args core+GO_GENERATE
- SAVE ARTIFACT internal AS LOCAL internal
- SAVE ARTIFACT pkg AS LOCAL pkg
- SAVE ARTIFACT cmd AS LOCAL cmd
-
compile:
FROM core+builder-image
COPY (+sources/*) /src
@@ -39,14 +28,6 @@ build-image:
ARG tag=latest
DO core+SAVE_IMAGE --COMPONENT=orchestration --REPOSITORY=${REPOSITORY} --TAG=$tag
-tests:
- FROM core+builder-image
- COPY (+sources/*) /src
- WORKDIR /src
- WITH DOCKER --pull=postgres:15-alpine
- DO --pass-args core+GO_TESTS
- END
-
deploy:
COPY (+sources/*) /src
LET tag=$(tar cf - /src | sha1sum | awk '{print $1}')
@@ -59,23 +40,6 @@ deploy:
deploy-staging:
BUILD --pass-args core+deploy-staging
-lint:
- FROM core+builder-image
- COPY (+sources/*) /src
- COPY --pass-args +tidy/go.* .
- WORKDIR /src
- DO --pass-args core+GO_LINT
- SAVE ARTIFACT cmd AS LOCAL cmd
- SAVE ARTIFACT internal AS LOCAL internal
- SAVE ARTIFACT pkg AS LOCAL pkg
- SAVE ARTIFACT main.go AS LOCAL main.go
-
-pre-commit:
- WAIT
- BUILD --pass-args +tidy
- END
- BUILD --pass-args +lint
-
openapi:
FROM node:20-alpine
RUN apk update && apk add yq
diff --git a/Justfile b/Justfile
new file mode 100644
index 0000000..ceeab64
--- /dev/null
+++ b/Justfile
@@ -0,0 +1,37 @@
+set dotenv-load
+
+default:
+ @just --list
+
+pre-commit: generate tidy lint
+pc: pre-commit
+
+lint:
+ @golangci-lint run --fix --build-tags it --timeout 5m
+
+tidy:
+ @go mod tidy
+
+generate:
+ @go generate ./...
+
+tests:
+ @go test -race -covermode=atomic \
+ -coverprofile coverage.txt \
+ -tags it \
+ ./...
+
+openapi:
+ @yq eval-all '. as $item ireduce ({}; . * $item)' openapi/v1.yaml openapi/v2.yaml openapi/overlay.yaml > openapi.yaml
+
+generate-client:
+ @speakeasy generate sdk -s openapi.yaml -o ./pkg/client -l go
+
+release-local:
+ @goreleaser release --nightly --skip=publish --clean
+
+release-ci:
+ @goreleaser release --nightly --clean
+
+release:
+ @goreleaser release --clean
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..123af12
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,90 @@
+{
+ "nodes": {
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "nur",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1733312601,
+ "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1737469691,
+ "narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=",
+ "rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab",
+ "revCount": 742084,
+ "type": "tarball",
+ "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.742084%2Brev-9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab/01948be7-3d96-7fe9-8413-24eb2af4d803/source.tar.gz"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
+ }
+ },
+ "nur": {
+ "inputs": {
+ "flake-parts": "flake-parts",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "treefmt-nix": "treefmt-nix"
+ },
+ "locked": {
+ "lastModified": 1737540969,
+ "narHash": "sha256-IUuIL8Wnt72Ad6DxbjcDwaHuXD+zjIB2gTRt5LyR/mg=",
+ "owner": "nix-community",
+ "repo": "NUR",
+ "rev": "79f09bdd9731022b833cbbec4b80ba0c5cdaa2da",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "NUR",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs",
+ "nur": "nur"
+ }
+ },
+ "treefmt-nix": {
+ "inputs": {
+ "nixpkgs": [
+ "nur",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1733222881,
+ "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
+ "owner": "numtide",
+ "repo": "treefmt-nix",
+ "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "treefmt-nix",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..467e161
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,103 @@
+{
+ description = "Wallets dev env";
+
+ inputs = {
+ nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz";
+
+ nur = {
+ url = "github:nix-community/NUR";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ };
+
+ outputs = { self, nixpkgs, nur }:
+ let
+ goVersion = 23;
+
+ supportedSystems = [
+ "x86_64-linux"
+ "aarch64-linux"
+ "x86_64-darwin"
+ "aarch64-darwin"
+ ];
+
+ forEachSupportedSystem = f:
+ nixpkgs.lib.genAttrs supportedSystems (system:
+ let
+ pkgs = import nixpkgs {
+ inherit system;
+ overlays = [ self.overlays.default nur.overlays.default ];
+ config.allowUnfree = true;
+ };
+ in
+ f { pkgs = pkgs; system = system; }
+ );
+
+ speakeasyVersion = "1.351.0";
+ speakeasyPlatforms = {
+ "x86_64-linux" = "linux_amd64";
+ "aarch64-linux" = "linux_arm64";
+ "x86_64-darwin" = "darwin_amd64";
+ "aarch64-darwin" = "darwin_arm64";
+ };
+ speakeasyHashes = {
+ "x86_64-linux" = "sha256-eeGzoIlsgsW/wnEET+UFgNN1qWgndxRHzulhHDTyHRY=";
+ "aarch64-linux" = "sha256-zOj2QUwLwRz0MyTLdVxLaGU7XEqhgKLCyhsO9S8VCNk=";
+ "x86_64-darwin" = "sha256-vBgEv6WWwJhBW6nMLy4Nj7qjWdGqk/4al5dIUCqrm1I=";
+ "aarch64-darwin" = "sha256-N129T0BDRVUXxH6Dl58/hUEApiq1q2B6qTwTuEjLDi4=";
+ };
+
+ in
+ {
+ overlays.default = final: prev: {
+ go = final."go_1_${toString goVersion}";
+ };
+
+ packages = forEachSupportedSystem ({ pkgs, system }:
+ {
+ speakeasy = pkgs.stdenv.mkDerivation {
+ pname = "speakeasy";
+ version = speakeasyVersion;
+
+ src = pkgs.fetchurl {
+ url = "https://github.com/speakeasy-api/speakeasy/releases/download/v${speakeasyVersion}/speakeasy_${speakeasyPlatforms.${system}}.zip";
+ sha256 = speakeasyHashes.${system};
+ };
+
+ nativeBuildInputs = [ pkgs.unzip ];
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ unzip $src
+ ls -al
+ install -m755 speakeasy $out/bin/
+ '';
+
+ name = "speakeasy";
+ };
+ }
+ );
+
+ defaultPackage.x86_64-linux = self.packages.x86_64-linux.speakeasy;
+ defaultPackage.aarch64-linux = self.packages.aarch64-linux.speakeasy;
+ defaultPackage.x86_64-darwin = self.packages.x86_64-darwin.speakeasy;
+ defaultPackage.aarch64-darwin = self.packages.aarch64-darwin.speakeasy;
+
+ devShells = forEachSupportedSystem ({ pkgs, system }:
+ {
+ default = pkgs.mkShell {
+ packages = with pkgs; [
+ go
+ gotools
+ golangci-lint
+ ginkgo
+ pkgs.nur.repos.goreleaser.goreleaser-pro
+ self.packages.${system}.speakeasy
+ just
+ ];
+ };
+ }
+ );
+ };
+}
\ No newline at end of file
diff --git a/internal/api/backend_generated.go b/internal/api/backend_generated.go
index f057835..0d2e22f 100644
--- a/internal/api/backend_generated.go
+++ b/internal/api/backend_generated.go
@@ -5,6 +5,7 @@
//
// mockgen -source backend.go -destination backend_generated.go -package api . Backend
//
+
// Package api is a generated GoMock package.
package api
@@ -12,9 +13,9 @@ import (
context "context"
reflect "reflect"
+ bunpaginate "github.com/formancehq/go-libs/v2/bun/bunpaginate"
triggers "github.com/formancehq/orchestration/internal/triggers"
workflow "github.com/formancehq/orchestration/internal/workflow"
- bunpaginate "github.com/formancehq/go-libs/v2/bun/bunpaginate"
gomock "go.uber.org/mock/gomock"
)
diff --git a/internal/api/v1/handler_list_triggers.go b/internal/api/v1/handler_list_triggers.go
index 4892fb3..bcfa0f1 100644
--- a/internal/api/v1/handler_list_triggers.go
+++ b/internal/api/v1/handler_list_triggers.go
@@ -20,8 +20,7 @@ func listTriggers(backend api.Backend) func(writer http.ResponseWriter, request
return nil, err
}
- var name string = ""
- name = r.URL.Query().Get("name")
+ name := r.URL.Query().Get("name")
return &triggers.ListTriggersQuery{
PageSize: pageSize,
diff --git a/internal/api/v2/handler_list_triggers.go b/internal/api/v2/handler_list_triggers.go
index 4517b15..17f6ddb 100644
--- a/internal/api/v2/handler_list_triggers.go
+++ b/internal/api/v2/handler_list_triggers.go
@@ -19,8 +19,7 @@ func listTriggers(backend api.Backend) func(writer http.ResponseWriter, request
return nil, err
}
- var name string = ""
- name = r.URL.Query().Get("name")
+ name := r.URL.Query().Get("name")
return &triggers.ListTriggersQuery{
PageSize: pageSize,
diff --git a/internal/triggers/activities.go b/internal/triggers/activities.go
index 8b64863..ac63938 100644
--- a/internal/triggers/activities.go
+++ b/internal/triggers/activities.go
@@ -24,7 +24,7 @@ type Activities struct {
}
func (a Activities) processTrigger(ctx context.Context, request ProcessEventRequest, trigger Trigger) bool {
- ctx, span := workflow.Tracer.Start(ctx, "Triggers:CheckRequirements", trace.WithAttributes(
+ _, span := workflow.Tracer.Start(ctx, "Triggers:CheckRequirements", trace.WithAttributes(
attribute.String("trigger-id", trigger.ID),
))
defer span.End()
diff --git a/internal/triggers/manager.go b/internal/triggers/manager.go
index 2ce20c6..0fa6f4b 100644
--- a/internal/triggers/manager.go
+++ b/internal/triggers/manager.go
@@ -102,6 +102,9 @@ func (m *TriggerManager) DeleteTrigger(ctx context.Context, triggerID string) er
Where("id = ?", triggerID).
Set("deleted_at = ?", time.Now()).
Exec(ctx)
+ if err != nil {
+ return err
+ }
rowsAffected, err := updated.RowsAffected()
if err != nil {
panic(err)
diff --git a/internal/triggers/trigger_test.go b/internal/triggers/trigger_test.go
index 18b383c..635c2e1 100644
--- a/internal/triggers/trigger_test.go
+++ b/internal/triggers/trigger_test.go
@@ -81,7 +81,7 @@ func TestEvalVariables(t *testing.T) {
}
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- w.Write([]byte(`{"data": {"role": "admin"}}`))
+ _, _ = w.Write([]byte(`{"data": {"role": "admin"}}`))
}))
t.Cleanup(srv.Close)
diff --git a/openapi.yaml b/openapi.yaml
index 0431574..e7a96fe 100644
--- a/openapi.yaml
+++ b/openapi.yaml
@@ -10,7 +10,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: Server information
content:
application/json:
@@ -36,7 +36,7 @@ paths:
schema:
type: string
responses:
- "200":
+ '200':
description: List of triggers
content:
application/json:
@@ -59,7 +59,7 @@ paths:
schema:
$ref: '#/components/schemas/TriggerData'
responses:
- "201":
+ '201':
description: Created trigger
content:
application/json:
@@ -85,7 +85,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: A specific trigger
content:
application/json:
@@ -103,7 +103,7 @@ paths:
tags:
- orchestration.v1
responses:
- "204":
+ '204':
description: Trigger deleted
default:
$ref: '#/components/responses/ErrorResponse'
@@ -125,7 +125,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: List of triggers occurrences
content:
application/json:
@@ -144,7 +144,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: List of workflows
content:
application/json:
@@ -167,7 +167,7 @@ paths:
schema:
$ref: '#/components/schemas/CreateWorkflowRequest'
responses:
- "201":
+ '201':
description: Created workflow
content:
application/json:
@@ -194,7 +194,7 @@ paths:
description: Get a flow by id
operationId: getWorkflow
responses:
- "200":
+ '200':
description: The workflow
content:
application/json:
@@ -212,7 +212,7 @@ paths:
description: Delete a flow by id
operationId: deleteWorkflow
responses:
- "204":
+ '204':
description: No content
default:
$ref: '#/components/responses/ErrorResponse'
@@ -247,7 +247,7 @@ paths:
schema:
$ref: '#/components/schemas/RunWorkflowRequest'
responses:
- "201":
+ '201':
description: The workflow instance
content:
application/json:
@@ -281,7 +281,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: List of workflow instances
content:
application/json:
@@ -308,7 +308,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: The workflow instance
content:
application/json:
@@ -345,7 +345,7 @@ paths:
name:
type: string
responses:
- "204":
+ '204':
description: No content
default:
$ref: '#/components/responses/ErrorResponse'
@@ -368,7 +368,7 @@ paths:
tags:
- orchestration.v1
responses:
- "204":
+ '204':
description: No content
default:
$ref: '#/components/responses/ErrorResponse'
@@ -391,7 +391,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: The workflow instance history
content:
application/json:
@@ -425,7 +425,7 @@ paths:
tags:
- orchestration.v1
responses:
- "200":
+ '200':
description: The workflow instance stage history
content:
application/json:
@@ -444,7 +444,7 @@ paths:
tags:
- orchestration.v2
responses:
- "200":
+ '200':
description: Server information
content:
application/json:
@@ -473,7 +473,7 @@ paths:
schema:
type: string
responses:
- "200":
+ '200':
description: List of triggers
content:
application/json:
@@ -497,7 +497,7 @@ paths:
schema:
$ref: '#/components/schemas/V2TriggerData'
responses:
- "201":
+ '201':
description: Created trigger
content:
application/json:
@@ -524,7 +524,7 @@ paths:
tags:
- orchestration.v2
responses:
- "200":
+ '200':
description: A specific trigger
content:
application/json:
@@ -543,7 +543,7 @@ paths:
tags:
- orchestration.v2
responses:
- "204":
+ '204':
description: Trigger deleted
default:
$ref: '#/components/responses/V2ErrorResponse'
@@ -572,7 +572,7 @@ paths:
type: object
additionalProperties: true
responses:
- "200":
+ '200':
description: Test a trigger
content:
application/json:
@@ -602,7 +602,7 @@ paths:
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/PageSize'
responses:
- "200":
+ '200':
description: List of triggers occurrences
content:
application/json:
@@ -625,7 +625,7 @@ paths:
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/PageSize'
responses:
- "200":
+ '200':
description: List of workflows
content:
application/json:
@@ -649,7 +649,7 @@ paths:
schema:
$ref: '#/components/schemas/V2CreateWorkflowRequest'
responses:
- "201":
+ '201':
description: Created workflow
content:
application/json:
@@ -677,7 +677,7 @@ paths:
operationId: v2GetWorkflow
x-speakeasy-name-override: GetWorkflow
responses:
- "200":
+ '200':
description: The workflow
content:
application/json:
@@ -696,7 +696,7 @@ paths:
operationId: v2DeleteWorkflow
x-speakeasy-name-override: DeleteWorkflow
responses:
- "204":
+ '204':
description: No content
default:
$ref: '#/components/responses/V2ErrorResponse'
@@ -732,7 +732,7 @@ paths:
schema:
$ref: '#/components/schemas/V2RunWorkflowRequest'
responses:
- "201":
+ '201':
description: The workflow instance
content:
application/json:
@@ -769,7 +769,7 @@ paths:
tags:
- orchestration.v2
responses:
- "200":
+ '200':
description: List of workflow instances
content:
application/json:
@@ -797,7 +797,7 @@ paths:
tags:
- orchestration.v2
responses:
- "200":
+ '200':
description: The workflow instance
content:
application/json:
@@ -835,7 +835,7 @@ paths:
name:
type: string
responses:
- "204":
+ '204':
description: No content
default:
$ref: '#/components/responses/V2ErrorResponse'
@@ -859,7 +859,7 @@ paths:
tags:
- orchestration.v2
responses:
- "204":
+ '204':
description: No content
default:
$ref: '#/components/responses/V2ErrorResponse'
@@ -883,7 +883,7 @@ paths:
tags:
- orchestration.v2
responses:
- "200":
+ '200':
description: The workflow instance history
content:
application/json:
@@ -918,7 +918,7 @@ paths:
tags:
- orchestration.v2
responses:
- "200":
+ '200':
description: The workflow instance stage history
content:
application/json:
@@ -929,6 +929,9 @@ paths:
security:
- Authorization:
- orchestration:read
+ x-speakeasy-errors:
+ statusCodes:
+ - default
components:
schemas:
ServerInfo:
@@ -1367,11 +1370,13 @@ components:
default: false
metadata:
type: object
- description: |
+ description: >
A set of key/value pairs that you can attach to a transfer object.
+
It can be useful for storing additional information about the transfer in a structured format.
+
example:
- order_id: "6735"
+ order_id: '6735'
ActivityStripeTransfer:
$ref: '#/components/schemas/StripeTransferRequest'
ActivityListWallets:
@@ -1439,7 +1444,7 @@ components:
example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol=
next:
type: string
- example: ""
+ example: ''
ActivityGetAccount:
type: object
required:
@@ -1534,7 +1539,7 @@ components:
asset: USD/2
amount: 100
metadata:
- key: ""
+ key: ''
sources: []
LedgerAccountSubject:
type: object
@@ -1584,7 +1589,8 @@ components:
$ref: '#/components/schemas/Monetary'
pending:
type: boolean
- description: Set to true to create a pending hold. If false, the wallet will be debited immediately.
+ description: >-
+ Set to true to create a pending hold. If false, the wallet will be debited immediately.
metadata:
type: object
additionalProperties:
@@ -1608,7 +1614,7 @@ components:
asset: USD/2
amount: 100
metadata:
- key: ""
+ key: ''
pending: true
ActivityGetWallet:
type: object
@@ -1964,14 +1970,7 @@ components:
properties:
plain:
type: string
- example: |
- vars {
- account $user
- }
- send [COIN 10] (
- source = @world
- destination = $user
- )
+ example: "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\tdestination = $user\n)\n"
vars:
type: object
properties: {}
@@ -1990,7 +1989,7 @@ components:
additionalProperties:
type: string
example:
- admin: "true"
+ admin: 'true'
Posting:
type: object
properties:
@@ -2042,7 +2041,7 @@ components:
additionalProperties:
type: string
example:
- admin: "true"
+ admin: 'true'
volumes:
$ref: '#/components/schemas/Volumes'
effectiveVolumes:
@@ -2265,7 +2264,7 @@ components:
example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol=
next:
type: string
- example: ""
+ example: ''
data:
type: array
items:
@@ -2347,7 +2346,7 @@ components:
example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol=
next:
type: string
- example: ""
+ example: ''
data:
type: array
items:
@@ -2378,7 +2377,7 @@ components:
example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol=
next:
type: string
- example: ""
+ example: ''
data:
type: array
items:
@@ -2436,7 +2435,7 @@ components:
example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol=
next:
type: string
- example: ""
+ example: ''
data:
type: array
items:
@@ -2604,11 +2603,13 @@ components:
default: false
metadata:
type: object
- description: |
+ description: >
A set of key/value pairs that you can attach to a transfer object.
+
It can be useful for storing additional information about the transfer in a structured format.
+
example:
- order_id: "6735"
+ order_id: '6735'
V2ActivityStripeTransfer:
$ref: '#/components/schemas/V2StripeTransferRequest'
V2ActivityListWallets:
@@ -2676,7 +2677,7 @@ components:
example: YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol=
next:
type: string
- example: ""
+ example: ''
V2ActivityGetAccount:
type: object
required:
@@ -2761,7 +2762,7 @@ components:
asset: USD/2
amount: 100
metadata:
- key: ""
+ key: ''
sources: []
V2LedgerAccountSubject:
type: object
@@ -2811,7 +2812,8 @@ components:
$ref: '#/components/schemas/V2Monetary'
pending:
type: boolean
- description: Set to true to create a pending hold. If false, the wallet will be debited immediately.
+ description: >-
+ Set to true to create a pending hold. If false, the wallet will be debited immediately.
metadata:
type: object
additionalProperties:
@@ -2835,7 +2837,7 @@ components:
asset: USD/2
amount: 100
metadata:
- key: ""
+ key: ''
pending: true
V2ActivityGetWallet:
type: object
@@ -3182,14 +3184,7 @@ components:
properties:
plain:
type: string
- example: |
- vars {
- account $user
- }
- send [COIN 10] (
- source = @world
- destination = $user
- )
+ example: "vars {\naccount $user\n}\nsend [COIN 10] (\n\tsource = @world\n\tdestination = $user\n)\n"
vars:
type: object
properties: {}
@@ -3208,7 +3203,7 @@ components:
additionalProperties:
type: string
example:
- admin: "true"
+ admin: 'true'
V2Posting:
type: object
properties:
@@ -3260,7 +3255,7 @@ components:
additionalProperties:
type: string
example:
- admin: "true"
+ admin: 'true'
volumes:
$ref: '#/components/schemas/V2Volumes'
effectiveVolumes:
@@ -3359,3 +3354,13 @@ components:
format: int64
minimum: 1
maximum: 1000
+ securitySchemes:
+ Authorization:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: "/oauth/token"
+ refreshUrl: "/oauth/token"
+ scopes: {}
+servers:
+ - url: http://localhost:8080/
diff --git a/openapi/openapi-merge.json b/openapi/openapi-merge.json
deleted file mode 100644
index 14511ed..0000000
--- a/openapi/openapi-merge.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "inputs": [
- {
- "inputFile": "./v1.yaml"
- },
- {
- "inputFile": "./v2.yaml"
- }
- ],
- "output": "./../openapi.json"
-}
diff --git a/openapi/overlay.yaml b/openapi/overlay.yaml
new file mode 100644
index 0000000..887c9fc
--- /dev/null
+++ b/openapi/overlay.yaml
@@ -0,0 +1,15 @@
+paths:
+ x-speakeasy-errors:
+ statusCodes:
+ - default
+components:
+ securitySchemes:
+ Authorization:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: "/oauth/token"
+ refreshUrl: "/oauth/token"
+ scopes: { }
+servers:
+ - url: http://localhost:8080/
\ No newline at end of file
diff --git a/pkg/client/.gitattributes b/pkg/client/.gitattributes
new file mode 100644
index 0000000..e6a9944
--- /dev/null
+++ b/pkg/client/.gitattributes
@@ -0,0 +1,2 @@
+# This allows generated code to be indexed correctly
+*.go linguist-generated=false
\ No newline at end of file
diff --git a/pkg/client/.gitignore b/pkg/client/.gitignore
new file mode 100644
index 0000000..d3c2f59
--- /dev/null
+++ b/pkg/client/.gitignore
@@ -0,0 +1 @@
+# .gitignore
diff --git a/pkg/client/.speakeasy/gen.lock b/pkg/client/.speakeasy/gen.lock
new file mode 100644
index 0000000..b64529c
--- /dev/null
+++ b/pkg/client/.speakeasy/gen.lock
@@ -0,0 +1,506 @@
+lockVersion: 2.0.0
+id: e26e5b37-4391-4462-9a20-c517a83a166a
+management:
+ docChecksum: 99fcb08a3be2d974cb4ab731978aba69
+ docVersion: 0.1.0
+ speakeasyVersion: 1.351.0
+ generationVersion: 2.384.1
+ releaseVersion: 0.1.0
+ configChecksum: e396e99f506e14ef47f767a543c5792e
+features:
+ go:
+ additionalDependencies: 0.1.0
+ constsAndDefaults: 0.1.4
+ core: 3.5.2
+ defaultEnabledRetries: 0.2.0
+ envVarSecurityUsage: 0.2.1
+ errors: 2.81.9
+ globalSecurity: 2.82.9
+ globalSecurityCallbacks: 0.1.0
+ globalServerURLs: 2.82.2
+ intellisenseMarkdownSupport: 0.1.0
+ nameOverrides: 2.81.2
+ nullables: 0.1.0
+ oauth2ClientCredentials: 0.1.1
+ responseFormat: 0.1.2
+ retries: 2.83.0
+ sdkHooks: 0.1.0
+ unions: 2.85.8
+generatedFiles:
+ - v1.go
+ - v2.go
+ - orchestration.go
+ - sdk.go
+ - go.mod
+ - models/sdkerrors/sdkerror.go
+ - retry/config.go
+ - types/bigint.go
+ - types/date.go
+ - types/datetime.go
+ - types/decimal.go
+ - types/pointers.go
+ - internal/utils/contenttype.go
+ - internal/utils/form.go
+ - internal/utils/headers.go
+ - internal/utils/json.go
+ - internal/utils/pathparams.go
+ - internal/utils/queryparams.go
+ - internal/utils/requestbody.go
+ - internal/utils/retries.go
+ - internal/utils/security.go
+ - internal/utils/utils.go
+ - /models/operations/getserverinfo.go
+ - /models/operations/listtriggers.go
+ - /models/operations/createtrigger.go
+ - /models/operations/readtrigger.go
+ - /models/operations/deletetrigger.go
+ - /models/operations/listtriggersoccurrences.go
+ - /models/operations/listworkflows.go
+ - /models/operations/createworkflow.go
+ - /models/operations/getworkflow.go
+ - /models/operations/deleteworkflow.go
+ - /models/operations/runworkflow.go
+ - /models/operations/listinstances.go
+ - /models/operations/getinstance.go
+ - /models/operations/sendevent.go
+ - /models/operations/cancelevent.go
+ - /models/operations/getinstancehistory.go
+ - /models/operations/getinstancestagehistory.go
+ - /models/operations/v2getserverinfo.go
+ - /models/operations/v2listtriggers.go
+ - /models/operations/v2createtrigger.go
+ - /models/operations/v2readtrigger.go
+ - /models/operations/v2deletetrigger.go
+ - /models/operations/testtrigger.go
+ - /models/operations/v2listtriggersoccurrences.go
+ - /models/operations/v2listworkflows.go
+ - /models/operations/v2createworkflow.go
+ - /models/operations/v2getworkflow.go
+ - /models/operations/v2deleteworkflow.go
+ - /models/operations/v2runworkflow.go
+ - /models/operations/v2listinstances.go
+ - /models/operations/v2getinstance.go
+ - /models/operations/v2sendevent.go
+ - /models/operations/v2cancelevent.go
+ - /models/operations/v2getinstancehistory.go
+ - /models/operations/v2getinstancestagehistory.go
+ - /models/components/serverinfo.go
+ - /models/components/httpmetadata.go
+ - /models/components/listtriggersresponse.go
+ - /models/components/trigger.go
+ - /models/components/createtriggerresponse.go
+ - /models/components/triggerdata.go
+ - /models/components/readtriggerresponse.go
+ - /models/components/listtriggersoccurrencesresponse.go
+ - /models/components/triggeroccurrence.go
+ - /models/components/workflowinstance.go
+ - /models/components/stagestatus.go
+ - /models/components/listworkflowsresponse.go
+ - /models/components/workflow.go
+ - /models/components/workflowconfig.go
+ - /models/components/createworkflowresponse.go
+ - /models/components/createworkflowrequest.go
+ - /models/components/getworkflowresponse.go
+ - /models/components/runworkflowresponse.go
+ - /models/components/listrunsresponse.go
+ - /models/components/getworkflowinstanceresponse.go
+ - /models/components/getworkflowinstancehistoryresponse.go
+ - /models/components/workflowinstancehistory.go
+ - /models/components/stage.go
+ - /models/components/stagesend.go
+ - /models/components/stagesendsource.go
+ - /models/components/stagesendsourcepayment.go
+ - /models/components/stagesendsourceaccount.go
+ - /models/components/stagesendsourcewallet.go
+ - /models/components/stagesenddestination.go
+ - /models/components/stagesenddestinationpayment.go
+ - /models/components/stagesenddestinationaccount.go
+ - /models/components/stagesenddestinationwallet.go
+ - /models/components/monetary.go
+ - /models/components/stagedelay.go
+ - /models/components/stagewaitevent.go
+ - /models/components/update.go
+ - /models/components/updateaccount.go
+ - /models/components/getworkflowinstancehistorystageresponse.go
+ - /models/components/workflowinstancehistorystage.go
+ - /models/components/workflowinstancehistorystageoutput.go
+ - /models/components/listwalletsresponse.go
+ - /models/components/wallet.go
+ - /models/components/activitygetwalletoutput.go
+ - /models/components/walletwithbalances.go
+ - /models/components/assetholder.go
+ - /models/components/activitydebitwalletoutput.go
+ - /models/components/hold.go
+ - /models/components/subject.go
+ - /models/components/ledgeraccountsubject.go
+ - /models/components/walletsubject.go
+ - /models/components/activitygetpaymentoutput.go
+ - /models/components/payment.go
+ - /models/components/paymentmetadata.go
+ - /models/components/paymentadjustment.go
+ - /models/components/paymentstatus.go
+ - /models/components/connector.go
+ - /models/components/activityreverttransactionoutput.go
+ - /models/components/transaction.go
+ - /models/components/posting.go
+ - /models/components/activitycreatetransactionoutput.go
+ - /models/components/activitygetaccountoutput.go
+ - /models/components/account.go
+ - /models/components/volume.go
+ - /models/components/workflowinstancehistorystageinput.go
+ - /models/components/activitylistwallets.go
+ - /models/components/activityvoidhold.go
+ - /models/components/activitygetwallet.go
+ - /models/components/activitydebitwallet.go
+ - /models/components/debitwalletrequest.go
+ - /models/components/activitycreditwallet.go
+ - /models/components/creditwalletrequest.go
+ - /models/components/activityconfirmhold.go
+ - /models/components/activitygetpayment.go
+ - /models/components/activitystripetransfer.go
+ - /models/components/activityreverttransaction.go
+ - /models/components/activitycreatetransaction.go
+ - /models/components/posttransaction.go
+ - /models/components/activityaddaccountmetadata.go
+ - /models/components/activitygetaccount.go
+ - /models/components/v2serverinfo.go
+ - /models/components/v2listtriggersresponse.go
+ - /models/components/v2trigger.go
+ - /models/components/v2createtriggerresponse.go
+ - /models/components/v2triggerdata.go
+ - /models/components/v2readtriggerresponse.go
+ - /models/components/v2testtriggerresponse.go
+ - /models/components/v2triggertest.go
+ - /models/components/v2listtriggersoccurrencesresponse.go
+ - /models/components/v2triggeroccurrence.go
+ - /models/components/v2workflowinstance.go
+ - /models/components/v2stagestatus.go
+ - /models/components/v2listworkflowsresponse.go
+ - /models/components/v2workflow.go
+ - /models/components/v2workflowconfig.go
+ - /models/components/v2createworkflowresponse.go
+ - /models/components/v2createworkflowrequest.go
+ - /models/components/v2getworkflowresponse.go
+ - /models/components/v2runworkflowresponse.go
+ - /models/components/v2listrunsresponse.go
+ - /models/components/v2getworkflowinstanceresponse.go
+ - /models/components/v2getworkflowinstancehistoryresponse.go
+ - /models/components/v2workflowinstancehistory.go
+ - /models/components/v2stage.go
+ - /models/components/v2stagesend.go
+ - /models/components/v2stagesendsource.go
+ - /models/components/v2stagesendsourcepayment.go
+ - /models/components/v2stagesendsourceaccount.go
+ - /models/components/v2stagesendsourcewallet.go
+ - /models/components/v2stagesenddestination.go
+ - /models/components/v2stagesenddestinationpayment.go
+ - /models/components/v2stagesenddestinationaccount.go
+ - /models/components/v2stagesenddestinationwallet.go
+ - /models/components/v2monetary.go
+ - /models/components/v2stagedelay.go
+ - /models/components/v2stagewaitevent.go
+ - /models/components/v2update.go
+ - /models/components/v2updateaccount.go
+ - /models/components/v2getworkflowinstancehistorystageresponse.go
+ - /models/components/v2workflowinstancehistorystage.go
+ - /models/components/v2workflowinstancehistorystageoutput.go
+ - /models/components/v2listwalletsresponse.go
+ - /models/components/v2wallet.go
+ - /models/components/v2activitygetwalletoutput.go
+ - /models/components/v2walletwithbalances.go
+ - /models/components/v2assetholder.go
+ - /models/components/v2activitydebitwalletoutput.go
+ - /models/components/v2hold.go
+ - /models/components/v2subject.go
+ - /models/components/v2ledgeraccountsubject.go
+ - /models/components/v2walletsubject.go
+ - /models/components/v2activitygetpaymentoutput.go
+ - /models/components/v2payment.go
+ - /models/components/v2paymentmetadata.go
+ - /models/components/v2paymentadjustment.go
+ - /models/components/v2paymentstatus.go
+ - /models/components/v2connector.go
+ - /models/components/v2activitycreatetransactionoutput.go
+ - /models/components/v2transaction.go
+ - /models/components/v2posting.go
+ - /models/components/v2activitygetaccountoutput.go
+ - /models/components/v2account.go
+ - /models/components/v2volume.go
+ - /models/components/v2workflowinstancehistorystageinput.go
+ - /models/components/v2activitylistwallets.go
+ - /models/components/v2activityvoidhold.go
+ - /models/components/v2activitygetwallet.go
+ - /models/components/v2activitydebitwallet.go
+ - /models/components/v2debitwalletrequest.go
+ - /models/components/v2activitycreditwallet.go
+ - /models/components/v2creditwalletrequest.go
+ - /models/components/v2activityconfirmhold.go
+ - /models/components/v2activitygetpayment.go
+ - /models/components/v2activitystripetransfer.go
+ - /models/components/v2activitycreatetransaction.go
+ - /models/components/v2posttransaction.go
+ - /models/components/v2activityaddaccountmetadata.go
+ - /models/components/v2activitygetaccount.go
+ - /models/components/security.go
+ - /models/sdkerrors/error.go
+ - /models/sdkerrors/v2error.go
+ - docs/models/operations/getserverinforesponse.md
+ - docs/models/operations/listtriggersrequest.md
+ - docs/models/operations/listtriggersresponse.md
+ - docs/models/operations/createtriggerresponse.md
+ - docs/models/operations/readtriggerrequest.md
+ - docs/models/operations/readtriggerresponse.md
+ - docs/models/operations/deletetriggerrequest.md
+ - docs/models/operations/deletetriggerresponse.md
+ - docs/models/operations/listtriggersoccurrencesrequest.md
+ - docs/models/operations/listtriggersoccurrencesresponse.md
+ - docs/models/operations/listworkflowsresponse.md
+ - docs/models/operations/createworkflowresponse.md
+ - docs/models/operations/getworkflowrequest.md
+ - docs/models/operations/getworkflowresponse.md
+ - docs/models/operations/deleteworkflowrequest.md
+ - docs/models/operations/deleteworkflowresponse.md
+ - docs/models/operations/runworkflowrequest.md
+ - docs/models/operations/runworkflowresponse.md
+ - docs/models/operations/listinstancesrequest.md
+ - docs/models/operations/listinstancesresponse.md
+ - docs/models/operations/getinstancerequest.md
+ - docs/models/operations/getinstanceresponse.md
+ - docs/models/operations/sendeventrequestbody.md
+ - docs/models/operations/sendeventrequest.md
+ - docs/models/operations/sendeventresponse.md
+ - docs/models/operations/canceleventrequest.md
+ - docs/models/operations/canceleventresponse.md
+ - docs/models/operations/getinstancehistoryrequest.md
+ - docs/models/operations/getinstancehistoryresponse.md
+ - docs/models/operations/getinstancestagehistoryrequest.md
+ - docs/models/operations/getinstancestagehistoryresponse.md
+ - docs/models/operations/v2getserverinforesponse.md
+ - docs/models/operations/v2listtriggersrequest.md
+ - docs/models/operations/v2listtriggersresponse.md
+ - docs/models/operations/v2createtriggerresponse.md
+ - docs/models/operations/v2readtriggerrequest.md
+ - docs/models/operations/v2readtriggerresponse.md
+ - docs/models/operations/v2deletetriggerrequest.md
+ - docs/models/operations/v2deletetriggerresponse.md
+ - docs/models/operations/testtriggerrequest.md
+ - docs/models/operations/testtriggerresponse.md
+ - docs/models/operations/v2listtriggersoccurrencesrequest.md
+ - docs/models/operations/v2listtriggersoccurrencesresponse.md
+ - docs/models/operations/v2listworkflowsrequest.md
+ - docs/models/operations/v2listworkflowsresponse.md
+ - docs/models/operations/v2createworkflowresponse.md
+ - docs/models/operations/v2getworkflowrequest.md
+ - docs/models/operations/v2getworkflowresponse.md
+ - docs/models/operations/v2deleteworkflowrequest.md
+ - docs/models/operations/v2deleteworkflowresponse.md
+ - docs/models/operations/v2runworkflowrequest.md
+ - docs/models/operations/v2runworkflowresponse.md
+ - docs/models/operations/v2listinstancesrequest.md
+ - docs/models/operations/v2listinstancesresponse.md
+ - docs/models/operations/v2getinstancerequest.md
+ - docs/models/operations/v2getinstanceresponse.md
+ - docs/models/operations/v2sendeventrequestbody.md
+ - docs/models/operations/v2sendeventrequest.md
+ - docs/models/operations/v2sendeventresponse.md
+ - docs/models/operations/v2canceleventrequest.md
+ - docs/models/operations/v2canceleventresponse.md
+ - docs/models/operations/v2getinstancehistoryrequest.md
+ - docs/models/operations/v2getinstancehistoryresponse.md
+ - docs/models/operations/v2getinstancestagehistoryrequest.md
+ - docs/models/operations/v2getinstancestagehistoryresponse.md
+ - docs/models/components/serverinfo.md
+ - docs/models/components/httpmetadata.md
+ - docs/models/components/listtriggersresponse.md
+ - docs/models/components/trigger.md
+ - docs/models/components/createtriggerresponse.md
+ - docs/models/components/triggerdata.md
+ - docs/models/components/readtriggerresponse.md
+ - docs/models/components/listtriggersoccurrencesresponse.md
+ - docs/models/components/triggeroccurrence.md
+ - docs/models/components/workflowinstance.md
+ - docs/models/components/stagestatus.md
+ - docs/models/components/listworkflowsresponse.md
+ - docs/models/components/workflow.md
+ - docs/models/components/workflowconfig.md
+ - docs/models/components/createworkflowresponse.md
+ - docs/models/components/createworkflowrequest.md
+ - docs/models/components/getworkflowresponse.md
+ - docs/models/components/runworkflowresponse.md
+ - docs/models/components/listrunsresponse.md
+ - docs/models/components/getworkflowinstanceresponse.md
+ - docs/models/components/getworkflowinstancehistoryresponse.md
+ - docs/models/components/workflowinstancehistory.md
+ - docs/models/components/stage.md
+ - docs/models/components/stagesend.md
+ - docs/models/components/stagesendsource.md
+ - docs/models/components/stagesendsourcepayment.md
+ - docs/models/components/stagesendsourceaccount.md
+ - docs/models/components/stagesendsourcewallet.md
+ - docs/models/components/stagesenddestination.md
+ - docs/models/components/stagesenddestinationpayment.md
+ - docs/models/components/stagesenddestinationaccount.md
+ - docs/models/components/stagesenddestinationwallet.md
+ - docs/models/components/monetary.md
+ - docs/models/components/stagedelay.md
+ - docs/models/components/stagewaitevent.md
+ - docs/models/components/update.md
+ - docs/models/components/updateaccount.md
+ - docs/models/components/getworkflowinstancehistorystageresponse.md
+ - docs/models/components/workflowinstancehistorystage.md
+ - docs/models/components/workflowinstancehistorystageoutput.md
+ - docs/models/components/cursor.md
+ - docs/models/components/listwalletsresponse.md
+ - docs/models/components/wallet.md
+ - docs/models/components/activitygetwalletoutput.md
+ - docs/models/components/balances.md
+ - docs/models/components/walletwithbalances.md
+ - docs/models/components/assetholder.md
+ - docs/models/components/activitydebitwalletoutput.md
+ - docs/models/components/hold.md
+ - docs/models/components/subject.md
+ - docs/models/components/ledgeraccountsubject.md
+ - docs/models/components/walletsubject.md
+ - docs/models/components/activitygetpaymentoutput.md
+ - docs/models/components/type.md
+ - docs/models/components/scheme.md
+ - docs/models/components/raw.md
+ - docs/models/components/payment.md
+ - docs/models/components/paymentmetadata.md
+ - docs/models/components/paymentadjustmentraw.md
+ - docs/models/components/paymentadjustment.md
+ - docs/models/components/paymentstatus.md
+ - docs/models/components/connector.md
+ - docs/models/components/activityreverttransactionoutput.md
+ - docs/models/components/transaction.md
+ - docs/models/components/posting.md
+ - docs/models/components/activitycreatetransactionoutput.md
+ - docs/models/components/activitygetaccountoutput.md
+ - docs/models/components/account.md
+ - docs/models/components/volume.md
+ - docs/models/components/workflowinstancehistorystageinput.md
+ - docs/models/components/activitylistwallets.md
+ - docs/models/components/activityvoidhold.md
+ - docs/models/components/activitygetwallet.md
+ - docs/models/components/activitydebitwallet.md
+ - docs/models/components/debitwalletrequest.md
+ - docs/models/components/activitycreditwallet.md
+ - docs/models/components/creditwalletrequest.md
+ - docs/models/components/activityconfirmhold.md
+ - docs/models/components/activitygetpayment.md
+ - docs/models/components/metadata.md
+ - docs/models/components/activitystripetransfer.md
+ - docs/models/components/activityreverttransaction.md
+ - docs/models/components/activitycreatetransaction.md
+ - docs/models/components/script.md
+ - docs/models/components/posttransaction.md
+ - docs/models/components/activityaddaccountmetadata.md
+ - docs/models/components/activitygetaccount.md
+ - docs/models/components/v2serverinfo.md
+ - docs/models/components/v2listtriggersresponsecursor.md
+ - docs/models/components/v2listtriggersresponse.md
+ - docs/models/components/v2trigger.md
+ - docs/models/components/v2createtriggerresponse.md
+ - docs/models/components/v2triggerdata.md
+ - docs/models/components/v2readtriggerresponse.md
+ - docs/models/components/v2testtriggerresponse.md
+ - docs/models/components/filter.md
+ - docs/models/components/variables.md
+ - docs/models/components/v2triggertest.md
+ - docs/models/components/v2listtriggersoccurrencesresponsecursor.md
+ - docs/models/components/v2listtriggersoccurrencesresponse.md
+ - docs/models/components/v2triggeroccurrence.md
+ - docs/models/components/v2workflowinstance.md
+ - docs/models/components/v2stagestatus.md
+ - docs/models/components/v2listworkflowsresponsecursor.md
+ - docs/models/components/v2listworkflowsresponse.md
+ - docs/models/components/v2workflow.md
+ - docs/models/components/v2workflowconfig.md
+ - docs/models/components/v2createworkflowresponse.md
+ - docs/models/components/v2createworkflowrequest.md
+ - docs/models/components/v2getworkflowresponse.md
+ - docs/models/components/v2runworkflowresponse.md
+ - docs/models/components/v2listrunsresponsecursor.md
+ - docs/models/components/v2listrunsresponse.md
+ - docs/models/components/v2getworkflowinstanceresponse.md
+ - docs/models/components/v2getworkflowinstancehistoryresponse.md
+ - docs/models/components/v2workflowinstancehistory.md
+ - docs/models/components/v2stage.md
+ - docs/models/components/v2stagesend.md
+ - docs/models/components/v2stagesendsource.md
+ - docs/models/components/v2stagesendsourcepayment.md
+ - docs/models/components/v2stagesendsourceaccount.md
+ - docs/models/components/v2stagesendsourcewallet.md
+ - docs/models/components/v2stagesenddestination.md
+ - docs/models/components/v2stagesenddestinationpayment.md
+ - docs/models/components/v2stagesenddestinationaccount.md
+ - docs/models/components/v2stagesenddestinationwallet.md
+ - docs/models/components/v2monetary.md
+ - docs/models/components/v2stagedelay.md
+ - docs/models/components/v2stagewaitevent.md
+ - docs/models/components/v2update.md
+ - docs/models/components/v2updateaccount.md
+ - docs/models/components/v2getworkflowinstancehistorystageresponse.md
+ - docs/models/components/v2workflowinstancehistorystage.md
+ - docs/models/components/v2workflowinstancehistorystageoutput.md
+ - docs/models/components/v2listwalletsresponsecursor.md
+ - docs/models/components/v2listwalletsresponse.md
+ - docs/models/components/v2wallet.md
+ - docs/models/components/v2activitygetwalletoutput.md
+ - docs/models/components/v2walletwithbalancesbalances.md
+ - docs/models/components/v2walletwithbalances.md
+ - docs/models/components/v2assetholder.md
+ - docs/models/components/v2activitydebitwalletoutput.md
+ - docs/models/components/v2hold.md
+ - docs/models/components/v2subject.md
+ - docs/models/components/v2ledgeraccountsubject.md
+ - docs/models/components/v2walletsubject.md
+ - docs/models/components/v2activitygetpaymentoutput.md
+ - docs/models/components/v2paymenttype.md
+ - docs/models/components/v2paymentscheme.md
+ - docs/models/components/v2paymentraw.md
+ - docs/models/components/v2payment.md
+ - docs/models/components/v2paymentmetadata.md
+ - docs/models/components/v2paymentadjustmentraw.md
+ - docs/models/components/v2paymentadjustment.md
+ - docs/models/components/v2paymentstatus.md
+ - docs/models/components/v2connector.md
+ - docs/models/components/v2activitycreatetransactionoutput.md
+ - docs/models/components/v2transaction.md
+ - docs/models/components/v2posting.md
+ - docs/models/components/v2activitygetaccountoutput.md
+ - docs/models/components/v2account.md
+ - docs/models/components/v2volume.md
+ - docs/models/components/v2workflowinstancehistorystageinput.md
+ - docs/models/components/v2activitylistwallets.md
+ - docs/models/components/v2activityvoidhold.md
+ - docs/models/components/v2activitygetwallet.md
+ - docs/models/components/v2activitydebitwallet.md
+ - docs/models/components/v2debitwalletrequest.md
+ - docs/models/components/v2activitycreditwallet.md
+ - docs/models/components/v2creditwalletrequest.md
+ - docs/models/components/v2activityconfirmhold.md
+ - docs/models/components/v2activitygetpayment.md
+ - docs/models/components/v2activitystripetransfermetadata.md
+ - docs/models/components/v2activitystripetransfer.md
+ - docs/models/components/v2activitycreatetransaction.md
+ - docs/models/components/v2posttransactionscript.md
+ - docs/models/components/v2posttransaction.md
+ - docs/models/components/v2activityaddaccountmetadata.md
+ - docs/models/components/v2activitygetaccount.md
+ - docs/models/components/security.md
+ - docs/models/sdkerrors/errorcode.md
+ - docs/models/sdkerrors/error.md
+ - docs/models/sdkerrors/v2errorerrorcode.md
+ - docs/models/sdkerrors/v2error.md
+ - docs/sdks/sdk/README.md
+ - docs/sdks/orchestration/README.md
+ - docs/models/operations/option.md
+ - docs/sdks/v1/README.md
+ - docs/sdks/v2/README.md
+ - USAGE.md
+ - models/operations/options.go
+ - .gitattributes
+ - internal/hooks/hooks.go
+ - internal/hooks/clientcredentials.go
+ - CONTRIBUTING.md
diff --git a/pkg/client/.speakeasy/gen.yaml b/pkg/client/.speakeasy/gen.yaml
new file mode 100644
index 0000000..b51280b
--- /dev/null
+++ b/pkg/client/.speakeasy/gen.yaml
@@ -0,0 +1,33 @@
+configVersion: 2.0.0
+generation:
+ sdkClassName: SDK
+ maintainOpenAPIOrder: true
+ usageSnippets:
+ optionalPropertyRendering: withExample
+ useClassNamesForArrayFields: true
+ fixes:
+ nameResolutionDec2023: true
+ parameterOrderingFeb2024: true
+ requestResponseComponentNamesFeb2024: true
+ auth:
+ oAuth2ClientCredentialsEnabled: true
+go:
+ version: 0.1.0
+ additionalDependencies: {}
+ allowUnknownFieldsInWeakUnions: false
+ clientServerStatusCodesAsErrors: true
+ flattenGlobalSecurity: true
+ imports:
+ option: openapi
+ paths:
+ callbacks: models/callbacks
+ errors: models/sdkerrors
+ operations: models/operations
+ shared: models/components
+ webhooks: models/webhooks
+ inputModelSuffix: input
+ maxMethodParams: 0
+ methodArguments: require-security-and-request
+ outputModelSuffix: output
+ packageName: openapi
+ responseFormat: envelope-http
diff --git a/pkg/client/CONTRIBUTING.md b/pkg/client/CONTRIBUTING.md
new file mode 100644
index 0000000..d585717
--- /dev/null
+++ b/pkg/client/CONTRIBUTING.md
@@ -0,0 +1,26 @@
+# Contributing to This Repository
+
+Thank you for your interest in contributing to this repository. Please note that this repository contains generated code. As such, we do not accept direct changes or pull requests. Instead, we encourage you to follow the guidelines below to report issues and suggest improvements.
+
+## How to Report Issues
+
+If you encounter any bugs or have suggestions for improvements, please open an issue on GitHub. When reporting an issue, please provide as much detail as possible to help us reproduce the problem. This includes:
+
+- A clear and descriptive title
+- Steps to reproduce the issue
+- Expected and actual behavior
+- Any relevant logs, screenshots, or error messages
+- Information about your environment (e.g., operating system, software versions)
+ - For example can be collected using the `npx envinfo` command from your terminal if you have Node.js installed
+
+## Issue Triage and Upstream Fixes
+
+We will review and triage issues as quickly as possible. Our goal is to address bugs and incorporate improvements in the upstream source code. Fixes will be included in the next generation of the generated code.
+
+## Contact
+
+If you have any questions or need further assistance, please feel free to reach out by opening an issue.
+
+Thank you for your understanding and cooperation!
+
+The Maintainers
diff --git a/pkg/client/README.md b/pkg/client/README.md
new file mode 100644
index 0000000..1860f83
--- /dev/null
+++ b/pkg/client/README.md
@@ -0,0 +1,427 @@
+# openapi
+
+
+
+
+## 🏗 **Welcome to your new SDK!** 🏗
+
+It has been generated successfully based on your OpenAPI spec. However, it is not yet ready for production use. Here are some next steps:
+- [ ] 🛠 Make your SDK feel handcrafted by [customizing it](https://www.speakeasy.com/docs/customize-sdks)
+- [ ] ♻️ Refine your SDK quickly by iterating locally with the [Speakeasy CLI](https://github.com/speakeasy-api/speakeasy)
+- [ ] 🎁 Publish your SDK to package managers by [configuring automatic publishing](https://www.speakeasy.com/docs/advanced-setup/publish-sdks)
+- [ ] ✨ When ready to productionize, delete this section from the README
+
+
+## SDK Installation
+
+```bash
+go get openapi
+```
+
+
+
+## SDK Example Usage
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "log"
+ "openapi"
+ "openapi/models/components"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+
+```
+
+
+
+## Available Resources and Operations
+
+### [Orchestration.V1](docs/sdks/v1/README.md)
+
+* [GetServerInfo](docs/sdks/v1/README.md#getserverinfo) - Get server info
+* [ListTriggers](docs/sdks/v1/README.md#listtriggers) - List triggers
+* [CreateTrigger](docs/sdks/v1/README.md#createtrigger) - Create trigger
+* [ReadTrigger](docs/sdks/v1/README.md#readtrigger) - Read trigger
+* [DeleteTrigger](docs/sdks/v1/README.md#deletetrigger) - Delete trigger
+* [ListTriggersOccurrences](docs/sdks/v1/README.md#listtriggersoccurrences) - List triggers occurrences
+* [ListWorkflows](docs/sdks/v1/README.md#listworkflows) - List registered workflows
+* [CreateWorkflow](docs/sdks/v1/README.md#createworkflow) - Create workflow
+* [GetWorkflow](docs/sdks/v1/README.md#getworkflow) - Get a flow by id
+* [DeleteWorkflow](docs/sdks/v1/README.md#deleteworkflow) - Delete a flow by id
+* [RunWorkflow](docs/sdks/v1/README.md#runworkflow) - Run workflow
+* [ListInstances](docs/sdks/v1/README.md#listinstances) - List instances of a workflow
+* [GetInstance](docs/sdks/v1/README.md#getinstance) - Get a workflow instance by id
+* [SendEvent](docs/sdks/v1/README.md#sendevent) - Send an event to a running workflow
+* [CancelEvent](docs/sdks/v1/README.md#cancelevent) - Cancel a running workflow
+* [GetInstanceHistory](docs/sdks/v1/README.md#getinstancehistory) - Get a workflow instance history by id
+* [GetInstanceStageHistory](docs/sdks/v1/README.md#getinstancestagehistory) - Get a workflow instance stage history
+
+### [Orchestration.V2](docs/sdks/v2/README.md)
+
+* [GetServerInfo](docs/sdks/v2/README.md#getserverinfo) - Get server info
+* [ListTriggers](docs/sdks/v2/README.md#listtriggers) - List triggers
+* [CreateTrigger](docs/sdks/v2/README.md#createtrigger) - Create trigger
+* [ReadTrigger](docs/sdks/v2/README.md#readtrigger) - Read trigger
+* [DeleteTrigger](docs/sdks/v2/README.md#deletetrigger) - Delete trigger
+* [TestTrigger](docs/sdks/v2/README.md#testtrigger) - Test trigger
+* [ListTriggersOccurrences](docs/sdks/v2/README.md#listtriggersoccurrences) - List triggers occurrences
+* [ListWorkflows](docs/sdks/v2/README.md#listworkflows) - List registered workflows
+* [CreateWorkflow](docs/sdks/v2/README.md#createworkflow) - Create workflow
+* [GetWorkflow](docs/sdks/v2/README.md#getworkflow) - Get a flow by id
+* [DeleteWorkflow](docs/sdks/v2/README.md#deleteworkflow) - Delete a flow by id
+* [RunWorkflow](docs/sdks/v2/README.md#runworkflow) - Run workflow
+* [ListInstances](docs/sdks/v2/README.md#listinstances) - List instances of a workflow
+* [GetInstance](docs/sdks/v2/README.md#getinstance) - Get a workflow instance by id
+* [SendEvent](docs/sdks/v2/README.md#sendevent) - Send an event to a running workflow
+* [CancelEvent](docs/sdks/v2/README.md#cancelevent) - Cancel a running workflow
+* [GetInstanceHistory](docs/sdks/v2/README.md#getinstancehistory) - Get a workflow instance history by id
+* [GetInstanceStageHistory](docs/sdks/v2/README.md#getinstancestagehistory) - Get a workflow instance stage history
+
+
+
+## Retries
+
+Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
+
+To change the default retry strategy for a single API call, simply provide a `retry.Config` object to the call by using the `WithRetries` option:
+```go
+package main
+
+import (
+ "context"
+ "log"
+ "models/operations"
+ "openapi"
+ "openapi/models/components"
+ "openapi/retry"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx, operations.WithRetries(
+ retry.Config{
+ Strategy: "backoff",
+ Backoff: &retry.BackoffStrategy{
+ InitialInterval: 1,
+ MaxInterval: 50,
+ Exponent: 1.1,
+ MaxElapsedTime: 100,
+ },
+ RetryConnectionErrors: false,
+ }))
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+
+```
+
+If you'd like to override the default retry strategy for all operations that support retries, you can use the `WithRetryConfig` option at SDK initialization:
+```go
+package main
+
+import (
+ "context"
+ "log"
+ "openapi"
+ "openapi/models/components"
+ "openapi/retry"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithRetryConfig(
+ retry.Config{
+ Strategy: "backoff",
+ Backoff: &retry.BackoffStrategy{
+ InitialInterval: 1,
+ MaxInterval: 50,
+ Exponent: 1.1,
+ MaxElapsedTime: 100,
+ },
+ RetryConnectionErrors: false,
+ }),
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+
+```
+
+
+
+## Error Handling
+
+Handling errors in this SDK should largely match your expectations. All operations return a response object or an error, they will never return both. When specified by the OpenAPI spec document, the SDK will return the appropriate subclass.
+
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+### Example
+
+```go
+package main
+
+import (
+ "context"
+ "errors"
+ "log"
+ "openapi"
+ "openapi/models/components"
+ "openapi/models/sdkerrors"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+
+ var e *sdkerrors.Error
+ if errors.As(err, &e) {
+ // handle error
+ log.Fatal(e.Error())
+ }
+
+ var e *sdkerrors.SDKError
+ if errors.As(err, &e) {
+ // handle error
+ log.Fatal(e.Error())
+ }
+ }
+}
+
+```
+
+
+
+## Server Selection
+
+### Select Server by Index
+
+You can override the default server globally using the `WithServerIndex` option when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers:
+
+| # | Server | Variables |
+| - | ------ | --------- |
+| 0 | `http://localhost:8080/` | None |
+
+#### Example
+
+```go
+package main
+
+import (
+ "context"
+ "log"
+ "openapi"
+ "openapi/models/components"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithServerIndex(0),
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+
+```
+
+
+### Override Server URL Per-Client
+
+The default server can also be overridden globally using the `WithServerURL` option when initializing the SDK client instance. For example:
+```go
+package main
+
+import (
+ "context"
+ "log"
+ "openapi"
+ "openapi/models/components"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithServerURL("http://localhost:8080/"),
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+
+```
+
+
+
+## Custom HTTP Client
+
+The Go SDK makes API calls that wrap an internal HTTP client. The requirements for the HTTP client are very simple. It must match this interface:
+
+```go
+type HTTPClient interface {
+ Do(req *http.Request) (*http.Response, error)
+}
+```
+
+The built-in `net/http` client satisfies this interface and a default client based on the built-in is provided by default. To replace this default with a client of your own, you can implement this interface yourself or provide your own client configured as desired. Here's a simple example, which adds a client with a 30 second timeout.
+
+```go
+import (
+ "net/http"
+ "time"
+ "github.com/myorg/your-go-sdk"
+)
+
+var (
+ httpClient = &http.Client{Timeout: 30 * time.Second}
+ sdkClient = sdk.New(sdk.WithClient(httpClient))
+)
+```
+
+This can be a convenient way to configure timeouts, cookies, proxies, custom headers, and other low-level configuration.
+
+
+
+## Authentication
+
+### Per-Client Security Schemes
+
+This SDK supports the following security schemes globally:
+
+| Name | Type | Scheme |
+| -------------- | -------------- | -------------- |
+| `ClientID` | oauth2 | OAuth2 token |
+| `ClientSecret` | oauth2 | OAuth2 token |
+
+You can set the security parameters through the `WithSecurity` option when initializing the SDK client instance. The selected scheme will be used by default to authenticate with the API for all operations that support it. For example:
+```go
+package main
+
+import (
+ "context"
+ "log"
+ "openapi"
+ "openapi/models/components"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+
+```
+
+
+
+## Special Types
+
+
+
+
+
+
+# Development
+
+## Maturity
+
+This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
+to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
+looking for the latest version.
+
+## Contributions
+
+While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation.
+We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
+
+### SDK Created by [Speakeasy](https://www.speakeasy.com/?utm_source=&utm_campaign=go)
diff --git a/pkg/client/USAGE.md b/pkg/client/USAGE.md
new file mode 100644
index 0000000..8ad1029
--- /dev/null
+++ b/pkg/client/USAGE.md
@@ -0,0 +1,31 @@
+
+```go
+package main
+
+import (
+ "context"
+ "log"
+ "openapi"
+ "openapi/models/components"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+
+```
+
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/account.md b/pkg/client/docs/models/components/account.md
new file mode 100644
index 0000000..7a5ef4f
--- /dev/null
+++ b/pkg/client/docs/models/components/account.md
@@ -0,0 +1,11 @@
+# Account
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `Address` | *string* | :heavy_check_mark: | N/A | users:001 |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A | {
"admin": "true"
} |
+| `Volumes` | map[string][components.Volume](../../models/components/volume.md) | :heavy_minus_sign: | N/A | {
"USD": {
"input": 100,
"output": 10,
"balance": 90
},
"EUR": {
"input": 100,
"output": 10,
"balance": 90
}
} |
+| `EffectiveVolumes` | map[string][components.Volume](../../models/components/volume.md) | :heavy_minus_sign: | N/A | {
"USD": {
"input": 100,
"output": 10,
"balance": 90
},
"EUR": {
"input": 100,
"output": 10,
"balance": 90
}
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activityaddaccountmetadata.md b/pkg/client/docs/models/components/activityaddaccountmetadata.md
new file mode 100644
index 0000000..c275654
--- /dev/null
+++ b/pkg/client/docs/models/components/activityaddaccountmetadata.md
@@ -0,0 +1,10 @@
+# ActivityAddAccountMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------- | ------------------- | ------------------- | ------------------- |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activityconfirmhold.md b/pkg/client/docs/models/components/activityconfirmhold.md
new file mode 100644
index 0000000..f7cd137
--- /dev/null
+++ b/pkg/client/docs/models/components/activityconfirmhold.md
@@ -0,0 +1,8 @@
+# ActivityConfirmHold
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitycreatetransaction.md b/pkg/client/docs/models/components/activitycreatetransaction.md
new file mode 100644
index 0000000..0c7c2ce
--- /dev/null
+++ b/pkg/client/docs/models/components/activitycreatetransaction.md
@@ -0,0 +1,9 @@
+# ActivityCreateTransaction
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| `Ledger` | **string* | :heavy_minus_sign: | N/A |
+| `Data` | [*components.PostTransaction](../../models/components/posttransaction.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitycreatetransactionoutput.md b/pkg/client/docs/models/components/activitycreatetransactionoutput.md
new file mode 100644
index 0000000..e667e73
--- /dev/null
+++ b/pkg/client/docs/models/components/activitycreatetransactionoutput.md
@@ -0,0 +1,8 @@
+# ActivityCreateTransactionOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
+| `Data` | [components.Transaction](../../models/components/transaction.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitycreditwallet.md b/pkg/client/docs/models/components/activitycreditwallet.md
new file mode 100644
index 0000000..d18bc67
--- /dev/null
+++ b/pkg/client/docs/models/components/activitycreditwallet.md
@@ -0,0 +1,9 @@
+# ActivityCreditWallet
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `ID` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [*components.CreditWalletRequest](../../models/components/creditwalletrequest.md) | :heavy_minus_sign: | N/A | {
"amount": {
"asset": "USD/2",
"amount": 100
},
"metadata": {
"key": ""
},
"sources": []
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitydebitwallet.md b/pkg/client/docs/models/components/activitydebitwallet.md
new file mode 100644
index 0000000..dfc0afc
--- /dev/null
+++ b/pkg/client/docs/models/components/activitydebitwallet.md
@@ -0,0 +1,9 @@
+# ActivityDebitWallet
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `ID` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [*components.DebitWalletRequest](../../models/components/debitwalletrequest.md) | :heavy_minus_sign: | N/A | {
"amount": {
"asset": "USD/2",
"amount": 100
},
"metadata": {
"key": ""
},
"pending": true
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitydebitwalletoutput.md b/pkg/client/docs/models/components/activitydebitwalletoutput.md
new file mode 100644
index 0000000..c86810e
--- /dev/null
+++ b/pkg/client/docs/models/components/activitydebitwalletoutput.md
@@ -0,0 +1,8 @@
+# ActivityDebitWalletOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
+| `Data` | [components.Hold](../../models/components/hold.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitygetaccount.md b/pkg/client/docs/models/components/activitygetaccount.md
new file mode 100644
index 0000000..733d5a8
--- /dev/null
+++ b/pkg/client/docs/models/components/activitygetaccount.md
@@ -0,0 +1,9 @@
+# ActivityGetAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitygetaccountoutput.md b/pkg/client/docs/models/components/activitygetaccountoutput.md
new file mode 100644
index 0000000..bbf537d
--- /dev/null
+++ b/pkg/client/docs/models/components/activitygetaccountoutput.md
@@ -0,0 +1,8 @@
+# ActivityGetAccountOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `Data` | [components.Account](../../models/components/account.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitygetpayment.md b/pkg/client/docs/models/components/activitygetpayment.md
new file mode 100644
index 0000000..7030418
--- /dev/null
+++ b/pkg/client/docs/models/components/activitygetpayment.md
@@ -0,0 +1,8 @@
+# ActivityGetPayment
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitygetpaymentoutput.md b/pkg/client/docs/models/components/activitygetpaymentoutput.md
new file mode 100644
index 0000000..d659963
--- /dev/null
+++ b/pkg/client/docs/models/components/activitygetpaymentoutput.md
@@ -0,0 +1,8 @@
+# ActivityGetPaymentOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `Data` | [components.Payment](../../models/components/payment.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitygetwallet.md b/pkg/client/docs/models/components/activitygetwallet.md
new file mode 100644
index 0000000..482ede8
--- /dev/null
+++ b/pkg/client/docs/models/components/activitygetwallet.md
@@ -0,0 +1,8 @@
+# ActivityGetWallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitygetwalletoutput.md b/pkg/client/docs/models/components/activitygetwalletoutput.md
new file mode 100644
index 0000000..9728009
--- /dev/null
+++ b/pkg/client/docs/models/components/activitygetwalletoutput.md
@@ -0,0 +1,8 @@
+# ActivityGetWalletOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `Data` | [components.WalletWithBalances](../../models/components/walletwithbalances.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitylistwallets.md b/pkg/client/docs/models/components/activitylistwallets.md
new file mode 100644
index 0000000..0479314
--- /dev/null
+++ b/pkg/client/docs/models/components/activitylistwallets.md
@@ -0,0 +1,8 @@
+# ActivityListWallets
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activityreverttransaction.md b/pkg/client/docs/models/components/activityreverttransaction.md
new file mode 100644
index 0000000..0a9402e
--- /dev/null
+++ b/pkg/client/docs/models/components/activityreverttransaction.md
@@ -0,0 +1,9 @@
+# ActivityRevertTransaction
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activityreverttransactionoutput.md b/pkg/client/docs/models/components/activityreverttransactionoutput.md
new file mode 100644
index 0000000..dea2efd
--- /dev/null
+++ b/pkg/client/docs/models/components/activityreverttransactionoutput.md
@@ -0,0 +1,8 @@
+# ActivityRevertTransactionOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
+| `Data` | [components.Transaction](../../models/components/transaction.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activitystripetransfer.md b/pkg/client/docs/models/components/activitystripetransfer.md
new file mode 100644
index 0000000..2200f71
--- /dev/null
+++ b/pkg/client/docs/models/components/activitystripetransfer.md
@@ -0,0 +1,13 @@
+# ActivityStripeTransfer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `ConnectorID` | **string* | :heavy_minus_sign: | N/A | |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_minus_sign: | N/A | 100 |
+| `Asset` | **string* | :heavy_minus_sign: | N/A | USD |
+| `Destination` | **string* | :heavy_minus_sign: | N/A | acct_1Gqj58KZcSIg2N2q |
+| `WaitingValidation` | **bool* | :heavy_minus_sign: | N/A | false |
+| `Metadata` | [*components.Metadata](../../models/components/metadata.md) | :heavy_minus_sign: | A set of key/value pairs that you can attach to a transfer object.
It can be useful for storing additional information about the transfer in a structured format.
| {
"order_id": "6735"
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/activityvoidhold.md b/pkg/client/docs/models/components/activityvoidhold.md
new file mode 100644
index 0000000..72eb0ab
--- /dev/null
+++ b/pkg/client/docs/models/components/activityvoidhold.md
@@ -0,0 +1,8 @@
+# ActivityVoidHold
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/assetholder.md b/pkg/client/docs/models/components/assetholder.md
new file mode 100644
index 0000000..fc37e08
--- /dev/null
+++ b/pkg/client/docs/models/components/assetholder.md
@@ -0,0 +1,8 @@
+# AssetHolder
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
+| `Assets` | map[string][*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/balances.md b/pkg/client/docs/models/components/balances.md
new file mode 100644
index 0000000..0b8fe8d
--- /dev/null
+++ b/pkg/client/docs/models/components/balances.md
@@ -0,0 +1,8 @@
+# Balances
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
+| `Main` | [components.AssetHolder](../../models/components/assetholder.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/connector.md b/pkg/client/docs/models/components/connector.md
new file mode 100644
index 0000000..4dafb1a
--- /dev/null
+++ b/pkg/client/docs/models/components/connector.md
@@ -0,0 +1,15 @@
+# Connector
+
+
+## Values
+
+| Name | Value |
+| ------------------------ | ------------------------ |
+| `ConnectorStripe` | STRIPE |
+| `ConnectorDummyPay` | DUMMY-PAY |
+| `ConnectorWise` | WISE |
+| `ConnectorModulr` | MODULR |
+| `ConnectorCurrencyCloud` | CURRENCY-CLOUD |
+| `ConnectorBankingCircle` | BANKING-CIRCLE |
+| `ConnectorMangopay` | MANGOPAY |
+| `ConnectorMoneycorp` | MONEYCORP |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/createtriggerresponse.md b/pkg/client/docs/models/components/createtriggerresponse.md
new file mode 100644
index 0000000..3b24b26
--- /dev/null
+++ b/pkg/client/docs/models/components/createtriggerresponse.md
@@ -0,0 +1,8 @@
+# CreateTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `Data` | [components.Trigger](../../models/components/trigger.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/createworkflowrequest.md b/pkg/client/docs/models/components/createworkflowrequest.md
new file mode 100644
index 0000000..548f61a
--- /dev/null
+++ b/pkg/client/docs/models/components/createworkflowrequest.md
@@ -0,0 +1,9 @@
+# CreateWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
+| `Stages` | []map[string]*any* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/createworkflowresponse.md b/pkg/client/docs/models/components/createworkflowresponse.md
new file mode 100644
index 0000000..7508db2
--- /dev/null
+++ b/pkg/client/docs/models/components/createworkflowresponse.md
@@ -0,0 +1,8 @@
+# CreateWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `Data` | [components.Workflow](../../models/components/workflow.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/creditwalletrequest.md b/pkg/client/docs/models/components/creditwalletrequest.md
new file mode 100644
index 0000000..a482e41
--- /dev/null
+++ b/pkg/client/docs/models/components/creditwalletrequest.md
@@ -0,0 +1,13 @@
+# CreditWalletRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `Amount` | [components.Monetary](../../models/components/monetary.md) | :heavy_check_mark: | N/A |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Reference` | **string* | :heavy_minus_sign: | N/A |
+| `Sources` | [][components.Subject](../../models/components/subject.md) | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | The balance to credit |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/cursor.md b/pkg/client/docs/models/components/cursor.md
new file mode 100644
index 0000000..a3cb85d
--- /dev/null
+++ b/pkg/client/docs/models/components/cursor.md
@@ -0,0 +1,12 @@
+# Cursor
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `PageSize` | *int64* | :heavy_check_mark: | N/A | 15 |
+| `HasMore` | **bool* | :heavy_minus_sign: | N/A | false |
+| `Previous` | **string* | :heavy_minus_sign: | N/A | YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= |
+| `Next` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [][components.Wallet](../../models/components/wallet.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/debitwalletrequest.md b/pkg/client/docs/models/components/debitwalletrequest.md
new file mode 100644
index 0000000..b9fb48f
--- /dev/null
+++ b/pkg/client/docs/models/components/debitwalletrequest.md
@@ -0,0 +1,14 @@
+# DebitWalletRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `Amount` | [components.Monetary](../../models/components/monetary.md) | :heavy_check_mark: | N/A |
+| `Pending` | **bool* | :heavy_minus_sign: | Set to true to create a pending hold. If false, the wallet will be debited immediately. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Description` | **string* | :heavy_minus_sign: | N/A |
+| `Destination` | [*components.Subject](../../models/components/subject.md) | :heavy_minus_sign: | N/A |
+| `Balances` | []*string* | :heavy_minus_sign: | N/A |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | cannot be used in conjunction with `pending` property |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/filter.md b/pkg/client/docs/models/components/filter.md
new file mode 100644
index 0000000..e35ac99
--- /dev/null
+++ b/pkg/client/docs/models/components/filter.md
@@ -0,0 +1,9 @@
+# Filter
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Match` | **bool* | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/getworkflowinstancehistoryresponse.md b/pkg/client/docs/models/components/getworkflowinstancehistoryresponse.md
new file mode 100644
index 0000000..430cd29
--- /dev/null
+++ b/pkg/client/docs/models/components/getworkflowinstancehistoryresponse.md
@@ -0,0 +1,8 @@
+# GetWorkflowInstanceHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
+| `Data` | [][components.WorkflowInstanceHistory](../../models/components/workflowinstancehistory.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/getworkflowinstancehistorystageresponse.md b/pkg/client/docs/models/components/getworkflowinstancehistorystageresponse.md
new file mode 100644
index 0000000..6b89728
--- /dev/null
+++ b/pkg/client/docs/models/components/getworkflowinstancehistorystageresponse.md
@@ -0,0 +1,8 @@
+# GetWorkflowInstanceHistoryStageResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
+| `Data` | [][components.WorkflowInstanceHistoryStage](../../models/components/workflowinstancehistorystage.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/getworkflowinstanceresponse.md b/pkg/client/docs/models/components/getworkflowinstanceresponse.md
new file mode 100644
index 0000000..34da8ab
--- /dev/null
+++ b/pkg/client/docs/models/components/getworkflowinstanceresponse.md
@@ -0,0 +1,8 @@
+# GetWorkflowInstanceResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| `Data` | [components.WorkflowInstance](../../models/components/workflowinstance.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/getworkflowresponse.md b/pkg/client/docs/models/components/getworkflowresponse.md
new file mode 100644
index 0000000..841af13
--- /dev/null
+++ b/pkg/client/docs/models/components/getworkflowresponse.md
@@ -0,0 +1,8 @@
+# GetWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `Data` | [components.Workflow](../../models/components/workflow.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/hold.md b/pkg/client/docs/models/components/hold.md
new file mode 100644
index 0000000..129d251
--- /dev/null
+++ b/pkg/client/docs/models/components/hold.md
@@ -0,0 +1,12 @@
+# Hold
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- |
+| `ID` | *string* | :heavy_check_mark: | The unique ID of the hold. |
+| `WalletID` | *string* | :heavy_check_mark: | The ID of the wallet the hold is associated with. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the hold. |
+| `Description` | *string* | :heavy_check_mark: | N/A |
+| `Destination` | [*components.Subject](../../models/components/subject.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/httpmetadata.md b/pkg/client/docs/models/components/httpmetadata.md
new file mode 100644
index 0000000..df1fdd5
--- /dev/null
+++ b/pkg/client/docs/models/components/httpmetadata.md
@@ -0,0 +1,9 @@
+# HTTPMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
+| `Response` | [*http.Response](https://pkg.go.dev/net/http#Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `Request` | [*http.Request](https://pkg.go.dev/net/http#Request) | :heavy_check_mark: | Raw HTTP request; suitable for debugging |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/ledgeraccountsubject.md b/pkg/client/docs/models/components/ledgeraccountsubject.md
new file mode 100644
index 0000000..5aac1da
--- /dev/null
+++ b/pkg/client/docs/models/components/ledgeraccountsubject.md
@@ -0,0 +1,9 @@
+# LedgerAccountSubject
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Type` | *string* | :heavy_check_mark: | N/A |
+| `Identifier` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/listrunsresponse.md b/pkg/client/docs/models/components/listrunsresponse.md
new file mode 100644
index 0000000..466213c
--- /dev/null
+++ b/pkg/client/docs/models/components/listrunsresponse.md
@@ -0,0 +1,8 @@
+# ListRunsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| `Data` | [][components.WorkflowInstance](../../models/components/workflowinstance.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/listtriggersoccurrencesresponse.md b/pkg/client/docs/models/components/listtriggersoccurrencesresponse.md
new file mode 100644
index 0000000..367c2f8
--- /dev/null
+++ b/pkg/client/docs/models/components/listtriggersoccurrencesresponse.md
@@ -0,0 +1,8 @@
+# ListTriggersOccurrencesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `Data` | [][components.TriggerOccurrence](../../models/components/triggeroccurrence.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/listtriggersresponse.md b/pkg/client/docs/models/components/listtriggersresponse.md
new file mode 100644
index 0000000..bf4eae6
--- /dev/null
+++ b/pkg/client/docs/models/components/listtriggersresponse.md
@@ -0,0 +1,8 @@
+# ListTriggersResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `Data` | [][components.Trigger](../../models/components/trigger.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/listwalletsresponse.md b/pkg/client/docs/models/components/listwalletsresponse.md
new file mode 100644
index 0000000..e964e78
--- /dev/null
+++ b/pkg/client/docs/models/components/listwalletsresponse.md
@@ -0,0 +1,8 @@
+# ListWalletsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
+| `Cursor` | [components.Cursor](../../models/components/cursor.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/listworkflowsresponse.md b/pkg/client/docs/models/components/listworkflowsresponse.md
new file mode 100644
index 0000000..d521bec
--- /dev/null
+++ b/pkg/client/docs/models/components/listworkflowsresponse.md
@@ -0,0 +1,8 @@
+# ListWorkflowsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `Data` | [][components.Workflow](../../models/components/workflow.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/metadata.md b/pkg/client/docs/models/components/metadata.md
new file mode 100644
index 0000000..c10fe9f
--- /dev/null
+++ b/pkg/client/docs/models/components/metadata.md
@@ -0,0 +1,11 @@
+# Metadata
+
+A set of key/value pairs that you can attach to a transfer object.
+It can be useful for storing additional information about the transfer in a structured format.
+
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------- | ----------- | ----------- | ----------- |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/monetary.md b/pkg/client/docs/models/components/monetary.md
new file mode 100644
index 0000000..5dac7b2
--- /dev/null
+++ b/pkg/client/docs/models/components/monetary.md
@@ -0,0 +1,9 @@
+# Monetary
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `Asset` | *string* | :heavy_check_mark: | The asset of the monetary value. |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | The amount of the monetary value. |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/payment.md b/pkg/client/docs/models/components/payment.md
new file mode 100644
index 0000000..99f603e
--- /dev/null
+++ b/pkg/client/docs/models/components/payment.md
@@ -0,0 +1,22 @@
+# Payment
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A | XXX |
+| `Reference` | *string* | :heavy_check_mark: | N/A | |
+| `SourceAccountID` | *string* | :heavy_check_mark: | N/A | |
+| `DestinationAccountID` | *string* | :heavy_check_mark: | N/A | |
+| `ConnectorID` | *string* | :heavy_check_mark: | N/A | |
+| `Provider` | [*components.Connector](../../models/components/connector.md) | :heavy_minus_sign: | N/A | |
+| `Type` | [components.Type](../../models/components/type.md) | :heavy_check_mark: | N/A | |
+| `Status` | [components.PaymentStatus](../../models/components/paymentstatus.md) | :heavy_check_mark: | N/A | |
+| `InitialAmount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | 100 |
+| `Scheme` | [components.Scheme](../../models/components/scheme.md) | :heavy_check_mark: | N/A | |
+| `Asset` | *string* | :heavy_check_mark: | N/A | USD |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | |
+| `Raw` | [components.Raw](../../models/components/raw.md) | :heavy_check_mark: | N/A | |
+| `Adjustments` | [][components.PaymentAdjustment](../../models/components/paymentadjustment.md) | :heavy_check_mark: | N/A | |
+| `Metadata` | [components.PaymentMetadata](../../models/components/paymentmetadata.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/paymentadjustment.md b/pkg/client/docs/models/components/paymentadjustment.md
new file mode 100644
index 0000000..d9ac917
--- /dev/null
+++ b/pkg/client/docs/models/components/paymentadjustment.md
@@ -0,0 +1,12 @@
+# PaymentAdjustment
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `Status` | [components.PaymentStatus](../../models/components/paymentstatus.md) | :heavy_check_mark: | N/A | |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | 100 |
+| `Date` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | |
+| `Raw` | [components.PaymentAdjustmentRaw](../../models/components/paymentadjustmentraw.md) | :heavy_check_mark: | N/A | |
+| `Absolute` | *bool* | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/paymentadjustmentraw.md b/pkg/client/docs/models/components/paymentadjustmentraw.md
new file mode 100644
index 0000000..78f88ae
--- /dev/null
+++ b/pkg/client/docs/models/components/paymentadjustmentraw.md
@@ -0,0 +1,7 @@
+# PaymentAdjustmentRaw
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------- | ----------- | ----------- | ----------- |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/paymentmetadata.md b/pkg/client/docs/models/components/paymentmetadata.md
new file mode 100644
index 0000000..a1ac8d1
--- /dev/null
+++ b/pkg/client/docs/models/components/paymentmetadata.md
@@ -0,0 +1,8 @@
+# PaymentMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Key` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/paymentstatus.md b/pkg/client/docs/models/components/paymentstatus.md
new file mode 100644
index 0000000..2a93097
--- /dev/null
+++ b/pkg/client/docs/models/components/paymentstatus.md
@@ -0,0 +1,13 @@
+# PaymentStatus
+
+
+## Values
+
+| Name | Value |
+| ------------------------- | ------------------------- |
+| `PaymentStatusPending` | PENDING |
+| `PaymentStatusActive` | ACTIVE |
+| `PaymentStatusTerminated` | TERMINATED |
+| `PaymentStatusFailed` | FAILED |
+| `PaymentStatusSucceeded` | SUCCEEDED |
+| `PaymentStatusCancelled` | CANCELLED |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/posting.md b/pkg/client/docs/models/components/posting.md
new file mode 100644
index 0000000..dc8a9ec
--- /dev/null
+++ b/pkg/client/docs/models/components/posting.md
@@ -0,0 +1,11 @@
+# Posting
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | 100 |
+| `Asset` | *string* | :heavy_check_mark: | N/A | COIN |
+| `Destination` | *string* | :heavy_check_mark: | N/A | users:002 |
+| `Source` | *string* | :heavy_check_mark: | N/A | users:001 |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/posttransaction.md b/pkg/client/docs/models/components/posttransaction.md
new file mode 100644
index 0000000..e9935e8
--- /dev/null
+++ b/pkg/client/docs/models/components/posttransaction.md
@@ -0,0 +1,12 @@
+# PostTransaction
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | |
+| `Postings` | [][components.Posting](../../models/components/posting.md) | :heavy_minus_sign: | N/A | |
+| `Script` | [*components.Script](../../models/components/script.md) | :heavy_minus_sign: | N/A | |
+| `Reference` | **string* | :heavy_minus_sign: | N/A | ref:001 |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A | {
"admin": "true"
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/raw.md b/pkg/client/docs/models/components/raw.md
new file mode 100644
index 0000000..4d7c1a0
--- /dev/null
+++ b/pkg/client/docs/models/components/raw.md
@@ -0,0 +1,7 @@
+# Raw
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------- | ----------- | ----------- | ----------- |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/readtriggerresponse.md b/pkg/client/docs/models/components/readtriggerresponse.md
new file mode 100644
index 0000000..8f470da
--- /dev/null
+++ b/pkg/client/docs/models/components/readtriggerresponse.md
@@ -0,0 +1,8 @@
+# ReadTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `Data` | [components.Trigger](../../models/components/trigger.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/runworkflowresponse.md b/pkg/client/docs/models/components/runworkflowresponse.md
new file mode 100644
index 0000000..28c8c0b
--- /dev/null
+++ b/pkg/client/docs/models/components/runworkflowresponse.md
@@ -0,0 +1,8 @@
+# RunWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| `Data` | [components.WorkflowInstance](../../models/components/workflowinstance.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/scheme.md b/pkg/client/docs/models/components/scheme.md
new file mode 100644
index 0000000..7f066dc
--- /dev/null
+++ b/pkg/client/docs/models/components/scheme.md
@@ -0,0 +1,25 @@
+# Scheme
+
+
+## Values
+
+| Name | Value |
+| ------------------ | ------------------ |
+| `SchemeVisa` | visa |
+| `SchemeMastercard` | mastercard |
+| `SchemeAmex` | amex |
+| `SchemeDiners` | diners |
+| `SchemeDiscover` | discover |
+| `SchemeJcb` | jcb |
+| `SchemeUnionpay` | unionpay |
+| `SchemeSepaDebit` | sepa debit |
+| `SchemeSepaCredit` | sepa credit |
+| `SchemeSepa` | sepa |
+| `SchemeApplePay` | apple pay |
+| `SchemeGooglePay` | google pay |
+| `SchemeA2a` | a2a |
+| `SchemeAchDebit` | ach debit |
+| `SchemeAch` | ach |
+| `SchemeRtp` | rtp |
+| `SchemeUnknown` | unknown |
+| `SchemeOther` | other |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/script.md b/pkg/client/docs/models/components/script.md
new file mode 100644
index 0000000..cacdfe4
--- /dev/null
+++ b/pkg/client/docs/models/components/script.md
@@ -0,0 +1,9 @@
+# Script
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `Plain` | *string* | :heavy_check_mark: | N/A | vars {
account $user
}
send [COIN 10] (
source = @world
destination = $user
)
|
+| `Vars` | map[string]*any* | :heavy_minus_sign: | N/A | {
"user": "users:042"
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/security.md b/pkg/client/docs/models/components/security.md
new file mode 100644
index 0000000..0515609
--- /dev/null
+++ b/pkg/client/docs/models/components/security.md
@@ -0,0 +1,10 @@
+# Security
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `ClientID` | *string* | :heavy_check_mark: | N/A | |
+| `ClientSecret` | *string* | :heavy_check_mark: | N/A | |
+| `TokenURL` | *string* | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/serverinfo.md b/pkg/client/docs/models/components/serverinfo.md
new file mode 100644
index 0000000..bf626a0
--- /dev/null
+++ b/pkg/client/docs/models/components/serverinfo.md
@@ -0,0 +1,8 @@
+# ServerInfo
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Version` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stage.md b/pkg/client/docs/models/components/stage.md
new file mode 100644
index 0000000..9ed6619
--- /dev/null
+++ b/pkg/client/docs/models/components/stage.md
@@ -0,0 +1,29 @@
+# Stage
+
+
+## Supported Types
+
+### StageSend
+
+```go
+stage := components.CreateStageStageSend(components.StageSend{/* values here */})
+```
+
+### StageDelay
+
+```go
+stage := components.CreateStageStageDelay(components.StageDelay{/* values here */})
+```
+
+### StageWaitEvent
+
+```go
+stage := components.CreateStageStageWaitEvent(components.StageWaitEvent{/* values here */})
+```
+
+### Update
+
+```go
+stage := components.CreateStageUpdate(components.Update{/* values here */})
+```
+
diff --git a/pkg/client/docs/models/components/stagedelay.md b/pkg/client/docs/models/components/stagedelay.md
new file mode 100644
index 0000000..ee1514d
--- /dev/null
+++ b/pkg/client/docs/models/components/stagedelay.md
@@ -0,0 +1,9 @@
+# StageDelay
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| `Until` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `Duration` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesend.md b/pkg/client/docs/models/components/stagesend.md
new file mode 100644
index 0000000..12471d0
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesend.md
@@ -0,0 +1,12 @@
+# StageSend
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `Amount` | [*components.Monetary](../../models/components/monetary.md) | :heavy_minus_sign: | N/A |
+| `Destination` | [*components.StageSendDestination](../../models/components/stagesenddestination.md) | :heavy_minus_sign: | N/A |
+| `Source` | [*components.StageSendSource](../../models/components/stagesendsource.md) | :heavy_minus_sign: | N/A |
+| `Metadata` | map[string]*string* | :heavy_minus_sign: | N/A |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesenddestination.md b/pkg/client/docs/models/components/stagesenddestination.md
new file mode 100644
index 0000000..5ad0ca3
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesenddestination.md
@@ -0,0 +1,10 @@
+# StageSendDestination
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `Wallet` | [*components.StageSendDestinationWallet](../../models/components/stagesenddestinationwallet.md) | :heavy_minus_sign: | N/A |
+| `Account` | [*components.StageSendDestinationAccount](../../models/components/stagesenddestinationaccount.md) | :heavy_minus_sign: | N/A |
+| `Payment` | [*components.StageSendDestinationPayment](../../models/components/stagesenddestinationpayment.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesenddestinationaccount.md b/pkg/client/docs/models/components/stagesenddestinationaccount.md
new file mode 100644
index 0000000..de0e831
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesenddestinationaccount.md
@@ -0,0 +1,9 @@
+# StageSendDestinationAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesenddestinationpayment.md b/pkg/client/docs/models/components/stagesenddestinationpayment.md
new file mode 100644
index 0000000..44bfc23
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesenddestinationpayment.md
@@ -0,0 +1,8 @@
+# StageSendDestinationPayment
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Psp` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesenddestinationwallet.md b/pkg/client/docs/models/components/stagesenddestinationwallet.md
new file mode 100644
index 0000000..073a894
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesenddestinationwallet.md
@@ -0,0 +1,9 @@
+# StageSendDestinationWallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesendsource.md b/pkg/client/docs/models/components/stagesendsource.md
new file mode 100644
index 0000000..18e9950
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesendsource.md
@@ -0,0 +1,10 @@
+# StageSendSource
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `Wallet` | [*components.StageSendSourceWallet](../../models/components/stagesendsourcewallet.md) | :heavy_minus_sign: | N/A |
+| `Account` | [*components.StageSendSourceAccount](../../models/components/stagesendsourceaccount.md) | :heavy_minus_sign: | N/A |
+| `Payment` | [*components.StageSendSourcePayment](../../models/components/stagesendsourcepayment.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesendsourceaccount.md b/pkg/client/docs/models/components/stagesendsourceaccount.md
new file mode 100644
index 0000000..2330e55
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesendsourceaccount.md
@@ -0,0 +1,9 @@
+# StageSendSourceAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesendsourcepayment.md b/pkg/client/docs/models/components/stagesendsourcepayment.md
new file mode 100644
index 0000000..e884994
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesendsourcepayment.md
@@ -0,0 +1,8 @@
+# StageSendSourcePayment
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagesendsourcewallet.md b/pkg/client/docs/models/components/stagesendsourcewallet.md
new file mode 100644
index 0000000..57bda17
--- /dev/null
+++ b/pkg/client/docs/models/components/stagesendsourcewallet.md
@@ -0,0 +1,9 @@
+# StageSendSourceWallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagestatus.md b/pkg/client/docs/models/components/stagestatus.md
new file mode 100644
index 0000000..7b4c104
--- /dev/null
+++ b/pkg/client/docs/models/components/stagestatus.md
@@ -0,0 +1,12 @@
+# StageStatus
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| `Stage` | *float64* | :heavy_check_mark: | N/A |
+| `InstanceID` | *string* | :heavy_check_mark: | N/A |
+| `StartedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/stagewaitevent.md b/pkg/client/docs/models/components/stagewaitevent.md
new file mode 100644
index 0000000..7eaf776
--- /dev/null
+++ b/pkg/client/docs/models/components/stagewaitevent.md
@@ -0,0 +1,8 @@
+# StageWaitEvent
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Event` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/subject.md b/pkg/client/docs/models/components/subject.md
new file mode 100644
index 0000000..9379a57
--- /dev/null
+++ b/pkg/client/docs/models/components/subject.md
@@ -0,0 +1,17 @@
+# Subject
+
+
+## Supported Types
+
+### LedgerAccountSubject
+
+```go
+subject := components.CreateSubjectAccount(components.LedgerAccountSubject{/* values here */})
+```
+
+### WalletSubject
+
+```go
+subject := components.CreateSubjectWallet(components.WalletSubject{/* values here */})
+```
+
diff --git a/pkg/client/docs/models/components/transaction.md b/pkg/client/docs/models/components/transaction.md
new file mode 100644
index 0000000..e1714cd
--- /dev/null
+++ b/pkg/client/docs/models/components/transaction.md
@@ -0,0 +1,13 @@
+# Transaction
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `Timestamp` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | |
+| `Postings` | [][components.Posting](../../models/components/posting.md) | :heavy_check_mark: | N/A | |
+| `Reference` | **string* | :heavy_minus_sign: | N/A | ref:001 |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A | {
"admin": "true"
} |
+| `ID` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | |
+| `Reverted` | *bool* | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/trigger.md b/pkg/client/docs/models/components/trigger.md
new file mode 100644
index 0000000..7da6890
--- /dev/null
+++ b/pkg/client/docs/models/components/trigger.md
@@ -0,0 +1,14 @@
+# Trigger
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
+| `Event` | *string* | :heavy_check_mark: | N/A |
+| `WorkflowID` | *string* | :heavy_check_mark: | N/A |
+| `Filter` | **string* | :heavy_minus_sign: | N/A |
+| `Vars` | map[string]*any* | :heavy_minus_sign: | N/A |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/triggerdata.md b/pkg/client/docs/models/components/triggerdata.md
new file mode 100644
index 0000000..9ae80cc
--- /dev/null
+++ b/pkg/client/docs/models/components/triggerdata.md
@@ -0,0 +1,12 @@
+# TriggerData
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Event` | *string* | :heavy_check_mark: | N/A |
+| `WorkflowID` | *string* | :heavy_check_mark: | N/A |
+| `Filter` | **string* | :heavy_minus_sign: | N/A |
+| `Vars` | map[string]*any* | :heavy_minus_sign: | N/A |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/triggeroccurrence.md b/pkg/client/docs/models/components/triggeroccurrence.md
new file mode 100644
index 0000000..110832c
--- /dev/null
+++ b/pkg/client/docs/models/components/triggeroccurrence.md
@@ -0,0 +1,13 @@
+# TriggerOccurrence
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| `Date` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `WorkflowInstanceID` | **string* | :heavy_minus_sign: | N/A |
+| `WorkflowInstance` | [*components.WorkflowInstance](../../models/components/workflowinstance.md) | :heavy_minus_sign: | N/A |
+| `TriggerID` | *string* | :heavy_check_mark: | N/A |
+| `Event` | map[string]*any* | :heavy_check_mark: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/type.md b/pkg/client/docs/models/components/type.md
new file mode 100644
index 0000000..5c514be
--- /dev/null
+++ b/pkg/client/docs/models/components/type.md
@@ -0,0 +1,11 @@
+# Type
+
+
+## Values
+
+| Name | Value |
+| -------------- | -------------- |
+| `TypePayIn` | PAY-IN |
+| `TypePayout` | PAYOUT |
+| `TypeTransfer` | TRANSFER |
+| `TypeOther` | OTHER |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/update.md b/pkg/client/docs/models/components/update.md
new file mode 100644
index 0000000..1482d99
--- /dev/null
+++ b/pkg/client/docs/models/components/update.md
@@ -0,0 +1,8 @@
+# Update
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
+| `Account` | [*components.UpdateAccount](../../models/components/updateaccount.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/updateaccount.md b/pkg/client/docs/models/components/updateaccount.md
new file mode 100644
index 0000000..0882e52
--- /dev/null
+++ b/pkg/client/docs/models/components/updateaccount.md
@@ -0,0 +1,10 @@
+# UpdateAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------- | ------------------- | ------------------- | ------------------- |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2account.md b/pkg/client/docs/models/components/v2account.md
new file mode 100644
index 0000000..91b9e84
--- /dev/null
+++ b/pkg/client/docs/models/components/v2account.md
@@ -0,0 +1,11 @@
+# V2Account
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
+| `Address` | *string* | :heavy_check_mark: | N/A | users:001 |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A | {
"admin": "true"
} |
+| `Volumes` | map[string][components.V2Volume](../../models/components/v2volume.md) | :heavy_minus_sign: | N/A | {
"USD": {
"input": 100,
"output": 10,
"balance": 90
},
"EUR": {
"input": 100,
"output": 10,
"balance": 90
}
} |
+| `EffectiveVolumes` | map[string][components.V2Volume](../../models/components/v2volume.md) | :heavy_minus_sign: | N/A | {
"USD": {
"input": 100,
"output": 10,
"balance": 90
},
"EUR": {
"input": 100,
"output": 10,
"balance": 90
}
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activityaddaccountmetadata.md b/pkg/client/docs/models/components/v2activityaddaccountmetadata.md
new file mode 100644
index 0000000..e440ecd
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activityaddaccountmetadata.md
@@ -0,0 +1,10 @@
+# V2ActivityAddAccountMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------- | ------------------- | ------------------- | ------------------- |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activityconfirmhold.md b/pkg/client/docs/models/components/v2activityconfirmhold.md
new file mode 100644
index 0000000..27bb078
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activityconfirmhold.md
@@ -0,0 +1,8 @@
+# V2ActivityConfirmHold
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitycreatetransaction.md b/pkg/client/docs/models/components/v2activitycreatetransaction.md
new file mode 100644
index 0000000..f0c0cbc
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitycreatetransaction.md
@@ -0,0 +1,9 @@
+# V2ActivityCreateTransaction
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
+| `Ledger` | **string* | :heavy_minus_sign: | N/A |
+| `Data` | [*components.V2PostTransaction](../../models/components/v2posttransaction.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitycreatetransactionoutput.md b/pkg/client/docs/models/components/v2activitycreatetransactionoutput.md
new file mode 100644
index 0000000..0c51630
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitycreatetransactionoutput.md
@@ -0,0 +1,8 @@
+# V2ActivityCreateTransactionOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `Data` | [][components.V2Transaction](../../models/components/v2transaction.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitycreditwallet.md b/pkg/client/docs/models/components/v2activitycreditwallet.md
new file mode 100644
index 0000000..13592bc
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitycreditwallet.md
@@ -0,0 +1,9 @@
+# V2ActivityCreditWallet
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `ID` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [*components.V2CreditWalletRequest](../../models/components/v2creditwalletrequest.md) | :heavy_minus_sign: | N/A | {
"amount": {
"asset": "USD/2",
"amount": 100
},
"metadata": {
"key": ""
},
"sources": []
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitydebitwallet.md b/pkg/client/docs/models/components/v2activitydebitwallet.md
new file mode 100644
index 0000000..ac54ba2
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitydebitwallet.md
@@ -0,0 +1,9 @@
+# V2ActivityDebitWallet
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
+| `ID` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [*components.V2DebitWalletRequest](../../models/components/v2debitwalletrequest.md) | :heavy_minus_sign: | N/A | {
"amount": {
"asset": "USD/2",
"amount": 100
},
"metadata": {
"key": ""
},
"pending": true
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitydebitwalletoutput.md b/pkg/client/docs/models/components/v2activitydebitwalletoutput.md
new file mode 100644
index 0000000..c89cef0
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitydebitwalletoutput.md
@@ -0,0 +1,8 @@
+# V2ActivityDebitWalletOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
+| `Data` | [components.V2Hold](../../models/components/v2hold.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitygetaccount.md b/pkg/client/docs/models/components/v2activitygetaccount.md
new file mode 100644
index 0000000..2f4a1e9
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitygetaccount.md
@@ -0,0 +1,9 @@
+# V2ActivityGetAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitygetaccountoutput.md b/pkg/client/docs/models/components/v2activitygetaccountoutput.md
new file mode 100644
index 0000000..cdac7df
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitygetaccountoutput.md
@@ -0,0 +1,8 @@
+# V2ActivityGetAccountOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `Data` | [components.V2Account](../../models/components/v2account.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitygetpayment.md b/pkg/client/docs/models/components/v2activitygetpayment.md
new file mode 100644
index 0000000..3e225ce
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitygetpayment.md
@@ -0,0 +1,8 @@
+# V2ActivityGetPayment
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitygetpaymentoutput.md b/pkg/client/docs/models/components/v2activitygetpaymentoutput.md
new file mode 100644
index 0000000..4338754
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitygetpaymentoutput.md
@@ -0,0 +1,8 @@
+# V2ActivityGetPaymentOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `Data` | [components.V2Payment](../../models/components/v2payment.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitygetwallet.md b/pkg/client/docs/models/components/v2activitygetwallet.md
new file mode 100644
index 0000000..39beb12
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitygetwallet.md
@@ -0,0 +1,8 @@
+# V2ActivityGetWallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitygetwalletoutput.md b/pkg/client/docs/models/components/v2activitygetwalletoutput.md
new file mode 100644
index 0000000..d714f15
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitygetwalletoutput.md
@@ -0,0 +1,8 @@
+# V2ActivityGetWalletOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `Data` | [components.V2WalletWithBalances](../../models/components/v2walletwithbalances.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitylistwallets.md b/pkg/client/docs/models/components/v2activitylistwallets.md
new file mode 100644
index 0000000..27f4899
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitylistwallets.md
@@ -0,0 +1,8 @@
+# V2ActivityListWallets
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitystripetransfer.md b/pkg/client/docs/models/components/v2activitystripetransfer.md
new file mode 100644
index 0000000..59a39ed
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitystripetransfer.md
@@ -0,0 +1,13 @@
+# V2ActivityStripeTransfer
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `ConnectorID` | **string* | :heavy_minus_sign: | N/A | |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_minus_sign: | N/A | 100 |
+| `Asset` | **string* | :heavy_minus_sign: | N/A | USD |
+| `Destination` | **string* | :heavy_minus_sign: | N/A | acct_1Gqj58KZcSIg2N2q |
+| `WaitingValidation` | **bool* | :heavy_minus_sign: | N/A | false |
+| `Metadata` | [*components.V2ActivityStripeTransferMetadata](../../models/components/v2activitystripetransfermetadata.md) | :heavy_minus_sign: | A set of key/value pairs that you can attach to a transfer object.
It can be useful for storing additional information about the transfer in a structured format.
| {
"order_id": "6735"
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activitystripetransfermetadata.md b/pkg/client/docs/models/components/v2activitystripetransfermetadata.md
new file mode 100644
index 0000000..2f03195
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activitystripetransfermetadata.md
@@ -0,0 +1,11 @@
+# V2ActivityStripeTransferMetadata
+
+A set of key/value pairs that you can attach to a transfer object.
+It can be useful for storing additional information about the transfer in a structured format.
+
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------- | ----------- | ----------- | ----------- |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2activityvoidhold.md b/pkg/client/docs/models/components/v2activityvoidhold.md
new file mode 100644
index 0000000..d772f31
--- /dev/null
+++ b/pkg/client/docs/models/components/v2activityvoidhold.md
@@ -0,0 +1,8 @@
+# V2ActivityVoidHold
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2assetholder.md b/pkg/client/docs/models/components/v2assetholder.md
new file mode 100644
index 0000000..b689bf5
--- /dev/null
+++ b/pkg/client/docs/models/components/v2assetholder.md
@@ -0,0 +1,8 @@
+# V2AssetHolder
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
+| `Assets` | map[string][*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2connector.md b/pkg/client/docs/models/components/v2connector.md
new file mode 100644
index 0000000..9aaa31a
--- /dev/null
+++ b/pkg/client/docs/models/components/v2connector.md
@@ -0,0 +1,15 @@
+# V2Connector
+
+
+## Values
+
+| Name | Value |
+| -------------------------- | -------------------------- |
+| `V2ConnectorStripe` | STRIPE |
+| `V2ConnectorDummyPay` | DUMMY-PAY |
+| `V2ConnectorWise` | WISE |
+| `V2ConnectorModulr` | MODULR |
+| `V2ConnectorCurrencyCloud` | CURRENCY-CLOUD |
+| `V2ConnectorBankingCircle` | BANKING-CIRCLE |
+| `V2ConnectorMangopay` | MANGOPAY |
+| `V2ConnectorMoneycorp` | MONEYCORP |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2createtriggerresponse.md b/pkg/client/docs/models/components/v2createtriggerresponse.md
new file mode 100644
index 0000000..02259b9
--- /dev/null
+++ b/pkg/client/docs/models/components/v2createtriggerresponse.md
@@ -0,0 +1,8 @@
+# V2CreateTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `Data` | [components.V2Trigger](../../models/components/v2trigger.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2createworkflowrequest.md b/pkg/client/docs/models/components/v2createworkflowrequest.md
new file mode 100644
index 0000000..f7dc5e5
--- /dev/null
+++ b/pkg/client/docs/models/components/v2createworkflowrequest.md
@@ -0,0 +1,9 @@
+# V2CreateWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
+| `Stages` | []map[string]*any* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2createworkflowresponse.md b/pkg/client/docs/models/components/v2createworkflowresponse.md
new file mode 100644
index 0000000..8fb48e5
--- /dev/null
+++ b/pkg/client/docs/models/components/v2createworkflowresponse.md
@@ -0,0 +1,8 @@
+# V2CreateWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `Data` | [components.V2Workflow](../../models/components/v2workflow.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2creditwalletrequest.md b/pkg/client/docs/models/components/v2creditwalletrequest.md
new file mode 100644
index 0000000..76258ad
--- /dev/null
+++ b/pkg/client/docs/models/components/v2creditwalletrequest.md
@@ -0,0 +1,13 @@
+# V2CreditWalletRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `Amount` | [components.V2Monetary](../../models/components/v2monetary.md) | :heavy_check_mark: | N/A |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Reference` | **string* | :heavy_minus_sign: | N/A |
+| `Sources` | [][components.V2Subject](../../models/components/v2subject.md) | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | The balance to credit |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2debitwalletrequest.md b/pkg/client/docs/models/components/v2debitwalletrequest.md
new file mode 100644
index 0000000..bdacde1
--- /dev/null
+++ b/pkg/client/docs/models/components/v2debitwalletrequest.md
@@ -0,0 +1,14 @@
+# V2DebitWalletRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `Amount` | [components.V2Monetary](../../models/components/v2monetary.md) | :heavy_check_mark: | N/A |
+| `Pending` | **bool* | :heavy_minus_sign: | Set to true to create a pending hold. If false, the wallet will be debited immediately. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Description` | **string* | :heavy_minus_sign: | N/A |
+| `Destination` | [*components.V2Subject](../../models/components/v2subject.md) | :heavy_minus_sign: | N/A |
+| `Balances` | []*string* | :heavy_minus_sign: | N/A |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | cannot be used in conjunction with `pending` property |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2getworkflowinstancehistoryresponse.md b/pkg/client/docs/models/components/v2getworkflowinstancehistoryresponse.md
new file mode 100644
index 0000000..fc5db44
--- /dev/null
+++ b/pkg/client/docs/models/components/v2getworkflowinstancehistoryresponse.md
@@ -0,0 +1,8 @@
+# V2GetWorkflowInstanceHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
+| `Data` | [][components.V2WorkflowInstanceHistory](../../models/components/v2workflowinstancehistory.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2getworkflowinstancehistorystageresponse.md b/pkg/client/docs/models/components/v2getworkflowinstancehistorystageresponse.md
new file mode 100644
index 0000000..95105d5
--- /dev/null
+++ b/pkg/client/docs/models/components/v2getworkflowinstancehistorystageresponse.md
@@ -0,0 +1,8 @@
+# V2GetWorkflowInstanceHistoryStageResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `Data` | [][components.V2WorkflowInstanceHistoryStage](../../models/components/v2workflowinstancehistorystage.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2getworkflowinstanceresponse.md b/pkg/client/docs/models/components/v2getworkflowinstanceresponse.md
new file mode 100644
index 0000000..f002e91
--- /dev/null
+++ b/pkg/client/docs/models/components/v2getworkflowinstanceresponse.md
@@ -0,0 +1,8 @@
+# V2GetWorkflowInstanceResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `Data` | [components.V2WorkflowInstance](../../models/components/v2workflowinstance.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2getworkflowresponse.md b/pkg/client/docs/models/components/v2getworkflowresponse.md
new file mode 100644
index 0000000..c38546c
--- /dev/null
+++ b/pkg/client/docs/models/components/v2getworkflowresponse.md
@@ -0,0 +1,8 @@
+# V2GetWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `Data` | [components.V2Workflow](../../models/components/v2workflow.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2hold.md b/pkg/client/docs/models/components/v2hold.md
new file mode 100644
index 0000000..b8bd742
--- /dev/null
+++ b/pkg/client/docs/models/components/v2hold.md
@@ -0,0 +1,12 @@
+# V2Hold
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
+| `ID` | *string* | :heavy_check_mark: | The unique ID of the hold. |
+| `WalletID` | *string* | :heavy_check_mark: | The ID of the wallet the hold is associated with. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the hold. |
+| `Description` | *string* | :heavy_check_mark: | N/A |
+| `Destination` | [*components.V2Subject](../../models/components/v2subject.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2ledgeraccountsubject.md b/pkg/client/docs/models/components/v2ledgeraccountsubject.md
new file mode 100644
index 0000000..00bb281
--- /dev/null
+++ b/pkg/client/docs/models/components/v2ledgeraccountsubject.md
@@ -0,0 +1,9 @@
+# V2LedgerAccountSubject
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Type` | *string* | :heavy_check_mark: | N/A |
+| `Identifier` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listrunsresponse.md b/pkg/client/docs/models/components/v2listrunsresponse.md
new file mode 100644
index 0000000..141db4f
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listrunsresponse.md
@@ -0,0 +1,8 @@
+# V2ListRunsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
+| `Cursor` | [components.V2ListRunsResponseCursor](../../models/components/v2listrunsresponsecursor.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listrunsresponsecursor.md b/pkg/client/docs/models/components/v2listrunsresponsecursor.md
new file mode 100644
index 0000000..d802a1f
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listrunsresponsecursor.md
@@ -0,0 +1,12 @@
+# V2ListRunsResponseCursor
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `PageSize` | *int64* | :heavy_check_mark: | N/A | 15 |
+| `HasMore` | *bool* | :heavy_check_mark: | N/A | false |
+| `Previous` | **string* | :heavy_minus_sign: | N/A | YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= |
+| `Next` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [][components.V2WorkflowInstance](../../models/components/v2workflowinstance.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listtriggersoccurrencesresponse.md b/pkg/client/docs/models/components/v2listtriggersoccurrencesresponse.md
new file mode 100644
index 0000000..5dccf3d
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listtriggersoccurrencesresponse.md
@@ -0,0 +1,8 @@
+# V2ListTriggersOccurrencesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
+| `Cursor` | [components.V2ListTriggersOccurrencesResponseCursor](../../models/components/v2listtriggersoccurrencesresponsecursor.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listtriggersoccurrencesresponsecursor.md b/pkg/client/docs/models/components/v2listtriggersoccurrencesresponsecursor.md
new file mode 100644
index 0000000..eda230c
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listtriggersoccurrencesresponsecursor.md
@@ -0,0 +1,12 @@
+# V2ListTriggersOccurrencesResponseCursor
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `PageSize` | *int64* | :heavy_check_mark: | N/A | 15 |
+| `HasMore` | *bool* | :heavy_check_mark: | N/A | false |
+| `Previous` | **string* | :heavy_minus_sign: | N/A | YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= |
+| `Next` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [][components.V2TriggerOccurrence](../../models/components/v2triggeroccurrence.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listtriggersresponse.md b/pkg/client/docs/models/components/v2listtriggersresponse.md
new file mode 100644
index 0000000..c5f2800
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listtriggersresponse.md
@@ -0,0 +1,8 @@
+# V2ListTriggersResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
+| `Cursor` | [components.V2ListTriggersResponseCursor](../../models/components/v2listtriggersresponsecursor.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listtriggersresponsecursor.md b/pkg/client/docs/models/components/v2listtriggersresponsecursor.md
new file mode 100644
index 0000000..6b1035a
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listtriggersresponsecursor.md
@@ -0,0 +1,12 @@
+# V2ListTriggersResponseCursor
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `PageSize` | *int64* | :heavy_check_mark: | N/A | 15 |
+| `HasMore` | *bool* | :heavy_check_mark: | N/A | false |
+| `Previous` | **string* | :heavy_minus_sign: | N/A | YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= |
+| `Next` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [][components.V2Trigger](../../models/components/v2trigger.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listwalletsresponse.md b/pkg/client/docs/models/components/v2listwalletsresponse.md
new file mode 100644
index 0000000..586adc3
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listwalletsresponse.md
@@ -0,0 +1,8 @@
+# V2ListWalletsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
+| `Cursor` | [components.V2ListWalletsResponseCursor](../../models/components/v2listwalletsresponsecursor.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listwalletsresponsecursor.md b/pkg/client/docs/models/components/v2listwalletsresponsecursor.md
new file mode 100644
index 0000000..ecd28df
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listwalletsresponsecursor.md
@@ -0,0 +1,12 @@
+# V2ListWalletsResponseCursor
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `PageSize` | *int64* | :heavy_check_mark: | N/A | 15 |
+| `HasMore` | **bool* | :heavy_minus_sign: | N/A | false |
+| `Previous` | **string* | :heavy_minus_sign: | N/A | YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= |
+| `Next` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [][components.V2Wallet](../../models/components/v2wallet.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listworkflowsresponse.md b/pkg/client/docs/models/components/v2listworkflowsresponse.md
new file mode 100644
index 0000000..146a0b4
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listworkflowsresponse.md
@@ -0,0 +1,8 @@
+# V2ListWorkflowsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
+| `Cursor` | [components.V2ListWorkflowsResponseCursor](../../models/components/v2listworkflowsresponsecursor.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2listworkflowsresponsecursor.md b/pkg/client/docs/models/components/v2listworkflowsresponsecursor.md
new file mode 100644
index 0000000..167bf1a
--- /dev/null
+++ b/pkg/client/docs/models/components/v2listworkflowsresponsecursor.md
@@ -0,0 +1,12 @@
+# V2ListWorkflowsResponseCursor
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
+| `PageSize` | *int64* | :heavy_check_mark: | N/A | 15 |
+| `HasMore` | *bool* | :heavy_check_mark: | N/A | false |
+| `Previous` | **string* | :heavy_minus_sign: | N/A | YXVsdCBhbmQgYSBtYXhpbXVtIG1heF9yZXN1bHRzLol= |
+| `Next` | **string* | :heavy_minus_sign: | N/A | |
+| `Data` | [][components.V2Workflow](../../models/components/v2workflow.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2monetary.md b/pkg/client/docs/models/components/v2monetary.md
new file mode 100644
index 0000000..2a3d908
--- /dev/null
+++ b/pkg/client/docs/models/components/v2monetary.md
@@ -0,0 +1,9 @@
+# V2Monetary
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `Asset` | *string* | :heavy_check_mark: | The asset of the monetary value. |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | The amount of the monetary value. |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2payment.md b/pkg/client/docs/models/components/v2payment.md
new file mode 100644
index 0000000..81df47a
--- /dev/null
+++ b/pkg/client/docs/models/components/v2payment.md
@@ -0,0 +1,22 @@
+# V2Payment
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ID` | *string* | :heavy_check_mark: | N/A | XXX |
+| `Reference` | *string* | :heavy_check_mark: | N/A | |
+| `SourceAccountID` | *string* | :heavy_check_mark: | N/A | |
+| `DestinationAccountID` | *string* | :heavy_check_mark: | N/A | |
+| `ConnectorID` | *string* | :heavy_check_mark: | N/A | |
+| `Provider` | [*components.V2Connector](../../models/components/v2connector.md) | :heavy_minus_sign: | N/A | |
+| `Type` | [components.V2PaymentType](../../models/components/v2paymenttype.md) | :heavy_check_mark: | N/A | |
+| `Status` | [components.V2PaymentStatus](../../models/components/v2paymentstatus.md) | :heavy_check_mark: | N/A | |
+| `InitialAmount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | 100 |
+| `Scheme` | [components.V2PaymentScheme](../../models/components/v2paymentscheme.md) | :heavy_check_mark: | N/A | |
+| `Asset` | *string* | :heavy_check_mark: | N/A | USD |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | |
+| `Raw` | [components.V2PaymentRaw](../../models/components/v2paymentraw.md) | :heavy_check_mark: | N/A | |
+| `Adjustments` | [][components.V2PaymentAdjustment](../../models/components/v2paymentadjustment.md) | :heavy_check_mark: | N/A | |
+| `Metadata` | [components.V2PaymentMetadata](../../models/components/v2paymentmetadata.md) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2paymentadjustment.md b/pkg/client/docs/models/components/v2paymentadjustment.md
new file mode 100644
index 0000000..79ddd37
--- /dev/null
+++ b/pkg/client/docs/models/components/v2paymentadjustment.md
@@ -0,0 +1,12 @@
+# V2PaymentAdjustment
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| `Status` | [components.V2PaymentStatus](../../models/components/v2paymentstatus.md) | :heavy_check_mark: | N/A | |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | 100 |
+| `Date` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | |
+| `Raw` | [components.V2PaymentAdjustmentRaw](../../models/components/v2paymentadjustmentraw.md) | :heavy_check_mark: | N/A | |
+| `Absolute` | *bool* | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2paymentadjustmentraw.md b/pkg/client/docs/models/components/v2paymentadjustmentraw.md
new file mode 100644
index 0000000..0d4efd0
--- /dev/null
+++ b/pkg/client/docs/models/components/v2paymentadjustmentraw.md
@@ -0,0 +1,7 @@
+# V2PaymentAdjustmentRaw
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------- | ----------- | ----------- | ----------- |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2paymentmetadata.md b/pkg/client/docs/models/components/v2paymentmetadata.md
new file mode 100644
index 0000000..af3c416
--- /dev/null
+++ b/pkg/client/docs/models/components/v2paymentmetadata.md
@@ -0,0 +1,8 @@
+# V2PaymentMetadata
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Key` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2paymentraw.md b/pkg/client/docs/models/components/v2paymentraw.md
new file mode 100644
index 0000000..74c2ba7
--- /dev/null
+++ b/pkg/client/docs/models/components/v2paymentraw.md
@@ -0,0 +1,7 @@
+# V2PaymentRaw
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------- | ----------- | ----------- | ----------- |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2paymentscheme.md b/pkg/client/docs/models/components/v2paymentscheme.md
new file mode 100644
index 0000000..9ecb278
--- /dev/null
+++ b/pkg/client/docs/models/components/v2paymentscheme.md
@@ -0,0 +1,25 @@
+# V2PaymentScheme
+
+
+## Values
+
+| Name | Value |
+| --------------------------- | --------------------------- |
+| `V2PaymentSchemeVisa` | visa |
+| `V2PaymentSchemeMastercard` | mastercard |
+| `V2PaymentSchemeAmex` | amex |
+| `V2PaymentSchemeDiners` | diners |
+| `V2PaymentSchemeDiscover` | discover |
+| `V2PaymentSchemeJcb` | jcb |
+| `V2PaymentSchemeUnionpay` | unionpay |
+| `V2PaymentSchemeSepaDebit` | sepa debit |
+| `V2PaymentSchemeSepaCredit` | sepa credit |
+| `V2PaymentSchemeSepa` | sepa |
+| `V2PaymentSchemeApplePay` | apple pay |
+| `V2PaymentSchemeGooglePay` | google pay |
+| `V2PaymentSchemeA2a` | a2a |
+| `V2PaymentSchemeAchDebit` | ach debit |
+| `V2PaymentSchemeAch` | ach |
+| `V2PaymentSchemeRtp` | rtp |
+| `V2PaymentSchemeUnknown` | unknown |
+| `V2PaymentSchemeOther` | other |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2paymentstatus.md b/pkg/client/docs/models/components/v2paymentstatus.md
new file mode 100644
index 0000000..b1de53b
--- /dev/null
+++ b/pkg/client/docs/models/components/v2paymentstatus.md
@@ -0,0 +1,13 @@
+# V2PaymentStatus
+
+
+## Values
+
+| Name | Value |
+| --------------------------- | --------------------------- |
+| `V2PaymentStatusPending` | PENDING |
+| `V2PaymentStatusActive` | ACTIVE |
+| `V2PaymentStatusTerminated` | TERMINATED |
+| `V2PaymentStatusFailed` | FAILED |
+| `V2PaymentStatusSucceeded` | SUCCEEDED |
+| `V2PaymentStatusCancelled` | CANCELLED |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2paymenttype.md b/pkg/client/docs/models/components/v2paymenttype.md
new file mode 100644
index 0000000..714ae52
--- /dev/null
+++ b/pkg/client/docs/models/components/v2paymenttype.md
@@ -0,0 +1,11 @@
+# V2PaymentType
+
+
+## Values
+
+| Name | Value |
+| ----------------------- | ----------------------- |
+| `V2PaymentTypePayIn` | PAY-IN |
+| `V2PaymentTypePayout` | PAYOUT |
+| `V2PaymentTypeTransfer` | TRANSFER |
+| `V2PaymentTypeOther` | OTHER |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2posting.md b/pkg/client/docs/models/components/v2posting.md
new file mode 100644
index 0000000..9fa0277
--- /dev/null
+++ b/pkg/client/docs/models/components/v2posting.md
@@ -0,0 +1,11 @@
+# V2Posting
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `Amount` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | 100 |
+| `Asset` | *string* | :heavy_check_mark: | N/A | COIN |
+| `Destination` | *string* | :heavy_check_mark: | N/A | users:002 |
+| `Source` | *string* | :heavy_check_mark: | N/A | users:001 |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2posttransaction.md b/pkg/client/docs/models/components/v2posttransaction.md
new file mode 100644
index 0000000..c156fca
--- /dev/null
+++ b/pkg/client/docs/models/components/v2posttransaction.md
@@ -0,0 +1,12 @@
+# V2PostTransaction
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A | |
+| `Postings` | [][components.V2Posting](../../models/components/v2posting.md) | :heavy_minus_sign: | N/A | |
+| `Script` | [*components.V2PostTransactionScript](../../models/components/v2posttransactionscript.md) | :heavy_minus_sign: | N/A | |
+| `Reference` | **string* | :heavy_minus_sign: | N/A | ref:001 |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A | {
"admin": "true"
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2posttransactionscript.md b/pkg/client/docs/models/components/v2posttransactionscript.md
new file mode 100644
index 0000000..657c7dd
--- /dev/null
+++ b/pkg/client/docs/models/components/v2posttransactionscript.md
@@ -0,0 +1,9 @@
+# V2PostTransactionScript
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `Plain` | *string* | :heavy_check_mark: | N/A | vars {
account $user
}
send [COIN 10] (
source = @world
destination = $user
)
|
+| `Vars` | map[string]*any* | :heavy_minus_sign: | N/A | {
"user": "users:042"
} |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2readtriggerresponse.md b/pkg/client/docs/models/components/v2readtriggerresponse.md
new file mode 100644
index 0000000..d7f692f
--- /dev/null
+++ b/pkg/client/docs/models/components/v2readtriggerresponse.md
@@ -0,0 +1,8 @@
+# V2ReadTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| `Data` | [components.V2Trigger](../../models/components/v2trigger.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2runworkflowresponse.md b/pkg/client/docs/models/components/v2runworkflowresponse.md
new file mode 100644
index 0000000..bc8d1dc
--- /dev/null
+++ b/pkg/client/docs/models/components/v2runworkflowresponse.md
@@ -0,0 +1,8 @@
+# V2RunWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `Data` | [components.V2WorkflowInstance](../../models/components/v2workflowinstance.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2serverinfo.md b/pkg/client/docs/models/components/v2serverinfo.md
new file mode 100644
index 0000000..3c40c1a
--- /dev/null
+++ b/pkg/client/docs/models/components/v2serverinfo.md
@@ -0,0 +1,8 @@
+# V2ServerInfo
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Version` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stage.md b/pkg/client/docs/models/components/v2stage.md
new file mode 100644
index 0000000..a6d2612
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stage.md
@@ -0,0 +1,29 @@
+# V2Stage
+
+
+## Supported Types
+
+### V2StageSend
+
+```go
+v2Stage := components.CreateV2StageV2StageSend(components.V2StageSend{/* values here */})
+```
+
+### V2StageDelay
+
+```go
+v2Stage := components.CreateV2StageV2StageDelay(components.V2StageDelay{/* values here */})
+```
+
+### V2StageWaitEvent
+
+```go
+v2Stage := components.CreateV2StageV2StageWaitEvent(components.V2StageWaitEvent{/* values here */})
+```
+
+### V2Update
+
+```go
+v2Stage := components.CreateV2StageV2Update(components.V2Update{/* values here */})
+```
+
diff --git a/pkg/client/docs/models/components/v2stagedelay.md b/pkg/client/docs/models/components/v2stagedelay.md
new file mode 100644
index 0000000..98d2f70
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagedelay.md
@@ -0,0 +1,9 @@
+# V2StageDelay
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| `Until` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `Duration` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesend.md b/pkg/client/docs/models/components/v2stagesend.md
new file mode 100644
index 0000000..c9cb1bc
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesend.md
@@ -0,0 +1,12 @@
+# V2StageSend
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `Amount` | [*components.V2Monetary](../../models/components/v2monetary.md) | :heavy_minus_sign: | N/A |
+| `Destination` | [*components.V2StageSendDestination](../../models/components/v2stagesenddestination.md) | :heavy_minus_sign: | N/A |
+| `Source` | [*components.V2StageSendSource](../../models/components/v2stagesendsource.md) | :heavy_minus_sign: | N/A |
+| `Metadata` | map[string]*string* | :heavy_minus_sign: | N/A |
+| `Timestamp` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesenddestination.md b/pkg/client/docs/models/components/v2stagesenddestination.md
new file mode 100644
index 0000000..9685dc7
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesenddestination.md
@@ -0,0 +1,10 @@
+# V2StageSendDestination
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| `Wallet` | [*components.V2StageSendDestinationWallet](../../models/components/v2stagesenddestinationwallet.md) | :heavy_minus_sign: | N/A |
+| `Account` | [*components.V2StageSendDestinationAccount](../../models/components/v2stagesenddestinationaccount.md) | :heavy_minus_sign: | N/A |
+| `Payment` | [*components.V2StageSendDestinationPayment](../../models/components/v2stagesenddestinationpayment.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesenddestinationaccount.md b/pkg/client/docs/models/components/v2stagesenddestinationaccount.md
new file mode 100644
index 0000000..09f432f
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesenddestinationaccount.md
@@ -0,0 +1,9 @@
+# V2StageSendDestinationAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesenddestinationpayment.md b/pkg/client/docs/models/components/v2stagesenddestinationpayment.md
new file mode 100644
index 0000000..e37e485
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesenddestinationpayment.md
@@ -0,0 +1,8 @@
+# V2StageSendDestinationPayment
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Psp` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesenddestinationwallet.md b/pkg/client/docs/models/components/v2stagesenddestinationwallet.md
new file mode 100644
index 0000000..2b0ce2e
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesenddestinationwallet.md
@@ -0,0 +1,9 @@
+# V2StageSendDestinationWallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesendsource.md b/pkg/client/docs/models/components/v2stagesendsource.md
new file mode 100644
index 0000000..c86927e
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesendsource.md
@@ -0,0 +1,10 @@
+# V2StageSendSource
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `Wallet` | [*components.V2StageSendSourceWallet](../../models/components/v2stagesendsourcewallet.md) | :heavy_minus_sign: | N/A |
+| `Account` | [*components.V2StageSendSourceAccount](../../models/components/v2stagesendsourceaccount.md) | :heavy_minus_sign: | N/A |
+| `Payment` | [*components.V2StageSendSourcePayment](../../models/components/v2stagesendsourcepayment.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesendsourceaccount.md b/pkg/client/docs/models/components/v2stagesendsourceaccount.md
new file mode 100644
index 0000000..e590db4
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesendsourceaccount.md
@@ -0,0 +1,9 @@
+# V2StageSendSourceAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Ledger` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesendsourcepayment.md b/pkg/client/docs/models/components/v2stagesendsourcepayment.md
new file mode 100644
index 0000000..2548411
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesendsourcepayment.md
@@ -0,0 +1,8 @@
+# V2StageSendSourcePayment
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagesendsourcewallet.md b/pkg/client/docs/models/components/v2stagesendsourcewallet.md
new file mode 100644
index 0000000..256c76e
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagesendsourcewallet.md
@@ -0,0 +1,9 @@
+# V2StageSendSourceWallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagestatus.md b/pkg/client/docs/models/components/v2stagestatus.md
new file mode 100644
index 0000000..c248d55
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagestatus.md
@@ -0,0 +1,12 @@
+# V2StageStatus
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ |
+| `Stage` | *float64* | :heavy_check_mark: | N/A |
+| `InstanceID` | *string* | :heavy_check_mark: | N/A |
+| `StartedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2stagewaitevent.md b/pkg/client/docs/models/components/v2stagewaitevent.md
new file mode 100644
index 0000000..a8135cb
--- /dev/null
+++ b/pkg/client/docs/models/components/v2stagewaitevent.md
@@ -0,0 +1,8 @@
+# V2StageWaitEvent
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Event` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2subject.md b/pkg/client/docs/models/components/v2subject.md
new file mode 100644
index 0000000..e8ba4e1
--- /dev/null
+++ b/pkg/client/docs/models/components/v2subject.md
@@ -0,0 +1,17 @@
+# V2Subject
+
+
+## Supported Types
+
+### V2LedgerAccountSubject
+
+```go
+v2Subject := components.CreateV2SubjectAccount(components.V2LedgerAccountSubject{/* values here */})
+```
+
+### V2WalletSubject
+
+```go
+v2Subject := components.CreateV2SubjectWallet(components.V2WalletSubject{/* values here */})
+```
+
diff --git a/pkg/client/docs/models/components/v2testtriggerresponse.md b/pkg/client/docs/models/components/v2testtriggerresponse.md
new file mode 100644
index 0000000..0d2435a
--- /dev/null
+++ b/pkg/client/docs/models/components/v2testtriggerresponse.md
@@ -0,0 +1,8 @@
+# V2TestTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `Data` | [components.V2TriggerTest](../../models/components/v2triggertest.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2transaction.md b/pkg/client/docs/models/components/v2transaction.md
new file mode 100644
index 0000000..c0e468c
--- /dev/null
+++ b/pkg/client/docs/models/components/v2transaction.md
@@ -0,0 +1,12 @@
+# V2Transaction
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
+| `Timestamp` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A | |
+| `Postings` | [][components.V2Posting](../../models/components/v2posting.md) | :heavy_check_mark: | N/A | |
+| `Reference` | **string* | :heavy_minus_sign: | N/A | ref:001 |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A | {
"admin": "true"
} |
+| `Txid` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2trigger.md b/pkg/client/docs/models/components/v2trigger.md
new file mode 100644
index 0000000..a098e0d
--- /dev/null
+++ b/pkg/client/docs/models/components/v2trigger.md
@@ -0,0 +1,14 @@
+# V2Trigger
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
+| `Event` | *string* | :heavy_check_mark: | N/A |
+| `WorkflowID` | *string* | :heavy_check_mark: | N/A |
+| `Filter` | **string* | :heavy_minus_sign: | N/A |
+| `Vars` | map[string]*any* | :heavy_minus_sign: | N/A |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2triggerdata.md b/pkg/client/docs/models/components/v2triggerdata.md
new file mode 100644
index 0000000..c2ff69b
--- /dev/null
+++ b/pkg/client/docs/models/components/v2triggerdata.md
@@ -0,0 +1,12 @@
+# V2TriggerData
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Event` | *string* | :heavy_check_mark: | N/A |
+| `WorkflowID` | *string* | :heavy_check_mark: | N/A |
+| `Filter` | **string* | :heavy_minus_sign: | N/A |
+| `Vars` | map[string]*any* | :heavy_minus_sign: | N/A |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2triggeroccurrence.md b/pkg/client/docs/models/components/v2triggeroccurrence.md
new file mode 100644
index 0000000..0f0cb42
--- /dev/null
+++ b/pkg/client/docs/models/components/v2triggeroccurrence.md
@@ -0,0 +1,13 @@
+# V2TriggerOccurrence
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| `Date` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `WorkflowInstanceID` | **string* | :heavy_minus_sign: | N/A |
+| `WorkflowInstance` | [*components.V2WorkflowInstance](../../models/components/v2workflowinstance.md) | :heavy_minus_sign: | N/A |
+| `TriggerID` | *string* | :heavy_check_mark: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
+| `Event` | map[string]*any* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2triggertest.md b/pkg/client/docs/models/components/v2triggertest.md
new file mode 100644
index 0000000..8feae58
--- /dev/null
+++ b/pkg/client/docs/models/components/v2triggertest.md
@@ -0,0 +1,9 @@
+# V2TriggerTest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
+| `Filter` | [*components.Filter](../../models/components/filter.md) | :heavy_minus_sign: | N/A |
+| `Variables` | map[string][components.Variables](../../models/components/variables.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2update.md b/pkg/client/docs/models/components/v2update.md
new file mode 100644
index 0000000..d9af438
--- /dev/null
+++ b/pkg/client/docs/models/components/v2update.md
@@ -0,0 +1,8 @@
+# V2Update
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| `Account` | [*components.V2UpdateAccount](../../models/components/v2updateaccount.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2updateaccount.md b/pkg/client/docs/models/components/v2updateaccount.md
new file mode 100644
index 0000000..3407247
--- /dev/null
+++ b/pkg/client/docs/models/components/v2updateaccount.md
@@ -0,0 +1,10 @@
+# V2UpdateAccount
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------- | ------------------- | ------------------- | ------------------- |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2volume.md b/pkg/client/docs/models/components/v2volume.md
new file mode 100644
index 0000000..1b6c643
--- /dev/null
+++ b/pkg/client/docs/models/components/v2volume.md
@@ -0,0 +1,10 @@
+# V2Volume
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `Input` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A |
+| `Output` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A |
+| `Balance` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2wallet.md b/pkg/client/docs/models/components/v2wallet.md
new file mode 100644
index 0000000..25b567c
--- /dev/null
+++ b/pkg/client/docs/models/components/v2wallet.md
@@ -0,0 +1,12 @@
+# V2Wallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
+| `ID` | *string* | :heavy_check_mark: | The unique ID of the wallet. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2walletsubject.md b/pkg/client/docs/models/components/v2walletsubject.md
new file mode 100644
index 0000000..e797cf4
--- /dev/null
+++ b/pkg/client/docs/models/components/v2walletsubject.md
@@ -0,0 +1,10 @@
+# V2WalletSubject
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Type` | *string* | :heavy_check_mark: | N/A |
+| `Identifier` | *string* | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2walletwithbalances.md b/pkg/client/docs/models/components/v2walletwithbalances.md
new file mode 100644
index 0000000..dd0efca
--- /dev/null
+++ b/pkg/client/docs/models/components/v2walletwithbalances.md
@@ -0,0 +1,13 @@
+# V2WalletWithBalances
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
+| `ID` | *string* | :heavy_check_mark: | The unique ID of the wallet. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `Balances` | [components.V2WalletWithBalancesBalances](../../models/components/v2walletwithbalancesbalances.md) | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2walletwithbalancesbalances.md b/pkg/client/docs/models/components/v2walletwithbalancesbalances.md
new file mode 100644
index 0000000..1ee8181
--- /dev/null
+++ b/pkg/client/docs/models/components/v2walletwithbalancesbalances.md
@@ -0,0 +1,8 @@
+# V2WalletWithBalancesBalances
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `Main` | [components.V2AssetHolder](../../models/components/v2assetholder.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2workflow.md b/pkg/client/docs/models/components/v2workflow.md
new file mode 100644
index 0000000..307e847
--- /dev/null
+++ b/pkg/client/docs/models/components/v2workflow.md
@@ -0,0 +1,11 @@
+# V2Workflow
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| `Config` | [components.V2WorkflowConfig](../../models/components/v2workflowconfig.md) | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `UpdatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2workflowconfig.md b/pkg/client/docs/models/components/v2workflowconfig.md
new file mode 100644
index 0000000..e2c509f
--- /dev/null
+++ b/pkg/client/docs/models/components/v2workflowconfig.md
@@ -0,0 +1,9 @@
+# V2WorkflowConfig
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
+| `Stages` | []map[string]*any* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2workflowinstance.md b/pkg/client/docs/models/components/v2workflowinstance.md
new file mode 100644
index 0000000..6d96e10
--- /dev/null
+++ b/pkg/client/docs/models/components/v2workflowinstance.md
@@ -0,0 +1,15 @@
+# V2WorkflowInstance
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `WorkflowID` | *string* | :heavy_check_mark: | N/A |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `UpdatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `Status` | [][components.V2StageStatus](../../models/components/v2stagestatus.md) | :heavy_minus_sign: | N/A |
+| `Terminated` | *bool* | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2workflowinstancehistory.md b/pkg/client/docs/models/components/v2workflowinstancehistory.md
new file mode 100644
index 0000000..0121050
--- /dev/null
+++ b/pkg/client/docs/models/components/v2workflowinstancehistory.md
@@ -0,0 +1,13 @@
+# V2WorkflowInstanceHistory
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `Input` | [components.V2Stage](../../models/components/v2stage.md) | :heavy_check_mark: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
+| `Terminated` | *bool* | :heavy_check_mark: | N/A |
+| `StartedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2workflowinstancehistorystage.md b/pkg/client/docs/models/components/v2workflowinstancehistorystage.md
new file mode 100644
index 0000000..f8977e2
--- /dev/null
+++ b/pkg/client/docs/models/components/v2workflowinstancehistorystage.md
@@ -0,0 +1,17 @@
+# V2WorkflowInstanceHistoryStage
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `Input` | [components.V2WorkflowInstanceHistoryStageInput](../../models/components/v2workflowinstancehistorystageinput.md) | :heavy_check_mark: | N/A |
+| `Output` | [*components.V2WorkflowInstanceHistoryStageOutput](../../models/components/v2workflowinstancehistorystageoutput.md) | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
+| `Terminated` | *bool* | :heavy_check_mark: | N/A |
+| `StartedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `LastFailure` | **string* | :heavy_minus_sign: | N/A |
+| `Attempt` | *int64* | :heavy_check_mark: | N/A |
+| `NextExecution` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2workflowinstancehistorystageinput.md b/pkg/client/docs/models/components/v2workflowinstancehistorystageinput.md
new file mode 100644
index 0000000..e4737f7
--- /dev/null
+++ b/pkg/client/docs/models/components/v2workflowinstancehistorystageinput.md
@@ -0,0 +1,18 @@
+# V2WorkflowInstanceHistoryStageInput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
+| `GetAccount` | [*components.V2ActivityGetAccount](../../models/components/v2activitygetaccount.md) | :heavy_minus_sign: | N/A |
+| `AddAccountMetadata` | [*components.V2ActivityAddAccountMetadata](../../models/components/v2activityaddaccountmetadata.md) | :heavy_minus_sign: | N/A |
+| `CreateTransaction` | [*components.V2ActivityCreateTransaction](../../models/components/v2activitycreatetransaction.md) | :heavy_minus_sign: | N/A |
+| `StripeTransfer` | [*components.V2ActivityStripeTransfer](../../models/components/v2activitystripetransfer.md) | :heavy_minus_sign: | N/A |
+| `GetPayment` | [*components.V2ActivityGetPayment](../../models/components/v2activitygetpayment.md) | :heavy_minus_sign: | N/A |
+| `ConfirmHold` | [*components.V2ActivityConfirmHold](../../models/components/v2activityconfirmhold.md) | :heavy_minus_sign: | N/A |
+| `CreditWallet` | [*components.V2ActivityCreditWallet](../../models/components/v2activitycreditwallet.md) | :heavy_minus_sign: | N/A |
+| `DebitWallet` | [*components.V2ActivityDebitWallet](../../models/components/v2activitydebitwallet.md) | :heavy_minus_sign: | N/A |
+| `GetWallet` | [*components.V2ActivityGetWallet](../../models/components/v2activitygetwallet.md) | :heavy_minus_sign: | N/A |
+| `VoidHold` | [*components.V2ActivityVoidHold](../../models/components/v2activityvoidhold.md) | :heavy_minus_sign: | N/A |
+| `ListWallets` | [*components.V2ActivityListWallets](../../models/components/v2activitylistwallets.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/v2workflowinstancehistorystageoutput.md b/pkg/client/docs/models/components/v2workflowinstancehistorystageoutput.md
new file mode 100644
index 0000000..ea96b8c
--- /dev/null
+++ b/pkg/client/docs/models/components/v2workflowinstancehistorystageoutput.md
@@ -0,0 +1,13 @@
+# V2WorkflowInstanceHistoryStageOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `GetAccount` | [*components.V2ActivityGetAccountOutput](../../models/components/v2activitygetaccountoutput.md) | :heavy_minus_sign: | N/A |
+| `CreateTransaction` | [*components.V2ActivityCreateTransactionOutput](../../models/components/v2activitycreatetransactionoutput.md) | :heavy_minus_sign: | N/A |
+| `GetPayment` | [*components.V2ActivityGetPaymentOutput](../../models/components/v2activitygetpaymentoutput.md) | :heavy_minus_sign: | N/A |
+| `DebitWallet` | [*components.V2ActivityDebitWalletOutput](../../models/components/v2activitydebitwalletoutput.md) | :heavy_minus_sign: | N/A |
+| `GetWallet` | [*components.V2ActivityGetWalletOutput](../../models/components/v2activitygetwalletoutput.md) | :heavy_minus_sign: | N/A |
+| `ListWallets` | [*components.V2ListWalletsResponse](../../models/components/v2listwalletsresponse.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/variables.md b/pkg/client/docs/models/components/variables.md
new file mode 100644
index 0000000..db3a24b
--- /dev/null
+++ b/pkg/client/docs/models/components/variables.md
@@ -0,0 +1,9 @@
+# Variables
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Value` | **string* | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/volume.md b/pkg/client/docs/models/components/volume.md
new file mode 100644
index 0000000..5e2ea51
--- /dev/null
+++ b/pkg/client/docs/models/components/volume.md
@@ -0,0 +1,10 @@
+# Volume
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- |
+| `Input` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A |
+| `Output` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_check_mark: | N/A |
+| `Balance` | [*big.Int](https://pkg.go.dev/math/big#Int) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/wallet.md b/pkg/client/docs/models/components/wallet.md
new file mode 100644
index 0000000..bc9b4f1
--- /dev/null
+++ b/pkg/client/docs/models/components/wallet.md
@@ -0,0 +1,12 @@
+# Wallet
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
+| `ID` | *string* | :heavy_check_mark: | The unique ID of the wallet. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/walletsubject.md b/pkg/client/docs/models/components/walletsubject.md
new file mode 100644
index 0000000..3cd64d1
--- /dev/null
+++ b/pkg/client/docs/models/components/walletsubject.md
@@ -0,0 +1,10 @@
+# WalletSubject
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Type` | *string* | :heavy_check_mark: | N/A |
+| `Identifier` | *string* | :heavy_check_mark: | N/A |
+| `Balance` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/walletwithbalances.md b/pkg/client/docs/models/components/walletwithbalances.md
new file mode 100644
index 0000000..211a42a
--- /dev/null
+++ b/pkg/client/docs/models/components/walletwithbalances.md
@@ -0,0 +1,13 @@
+# WalletWithBalances
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `ID` | *string* | :heavy_check_mark: | The unique ID of the wallet. |
+| `Metadata` | map[string]*string* | :heavy_check_mark: | Metadata associated with the wallet. |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `Balances` | [components.Balances](../../models/components/balances.md) | :heavy_check_mark: | N/A |
+| `Ledger` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/workflow.md b/pkg/client/docs/models/components/workflow.md
new file mode 100644
index 0000000..b6b4aef
--- /dev/null
+++ b/pkg/client/docs/models/components/workflow.md
@@ -0,0 +1,11 @@
+# Workflow
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
+| `Config` | [components.WorkflowConfig](../../models/components/workflowconfig.md) | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `UpdatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `ID` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/workflowconfig.md b/pkg/client/docs/models/components/workflowconfig.md
new file mode 100644
index 0000000..971f9f2
--- /dev/null
+++ b/pkg/client/docs/models/components/workflowconfig.md
@@ -0,0 +1,9 @@
+# WorkflowConfig
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | **string* | :heavy_minus_sign: | N/A |
+| `Stages` | []map[string]*any* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/workflowinstance.md b/pkg/client/docs/models/components/workflowinstance.md
new file mode 100644
index 0000000..f377942
--- /dev/null
+++ b/pkg/client/docs/models/components/workflowinstance.md
@@ -0,0 +1,15 @@
+# WorkflowInstance
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `WorkflowID` | *string* | :heavy_check_mark: | N/A |
+| `ID` | *string* | :heavy_check_mark: | N/A |
+| `CreatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `UpdatedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `Status` | [][components.StageStatus](../../models/components/stagestatus.md) | :heavy_minus_sign: | N/A |
+| `Terminated` | *bool* | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/workflowinstancehistory.md b/pkg/client/docs/models/components/workflowinstancehistory.md
new file mode 100644
index 0000000..3a07429
--- /dev/null
+++ b/pkg/client/docs/models/components/workflowinstancehistory.md
@@ -0,0 +1,13 @@
+# WorkflowInstanceHistory
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `Input` | [components.Stage](../../models/components/stage.md) | :heavy_check_mark: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
+| `Terminated` | *bool* | :heavy_check_mark: | N/A |
+| `StartedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/workflowinstancehistorystage.md b/pkg/client/docs/models/components/workflowinstancehistorystage.md
new file mode 100644
index 0000000..84adbf1
--- /dev/null
+++ b/pkg/client/docs/models/components/workflowinstancehistorystage.md
@@ -0,0 +1,17 @@
+# WorkflowInstanceHistoryStage
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| `Name` | *string* | :heavy_check_mark: | N/A |
+| `Input` | [components.WorkflowInstanceHistoryStageInput](../../models/components/workflowinstancehistorystageinput.md) | :heavy_check_mark: | N/A |
+| `Output` | [*components.WorkflowInstanceHistoryStageOutput](../../models/components/workflowinstancehistorystageoutput.md) | :heavy_minus_sign: | N/A |
+| `Error` | **string* | :heavy_minus_sign: | N/A |
+| `Terminated` | *bool* | :heavy_check_mark: | N/A |
+| `StartedAt` | [time.Time](https://pkg.go.dev/time#Time) | :heavy_check_mark: | N/A |
+| `TerminatedAt` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
+| `LastFailure` | **string* | :heavy_minus_sign: | N/A |
+| `Attempt` | *int64* | :heavy_check_mark: | N/A |
+| `NextExecution` | [*time.Time](https://pkg.go.dev/time#Time) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/workflowinstancehistorystageinput.md b/pkg/client/docs/models/components/workflowinstancehistorystageinput.md
new file mode 100644
index 0000000..a05289e
--- /dev/null
+++ b/pkg/client/docs/models/components/workflowinstancehistorystageinput.md
@@ -0,0 +1,19 @@
+# WorkflowInstanceHistoryStageInput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
+| `GetAccount` | [*components.ActivityGetAccount](../../models/components/activitygetaccount.md) | :heavy_minus_sign: | N/A |
+| `AddAccountMetadata` | [*components.ActivityAddAccountMetadata](../../models/components/activityaddaccountmetadata.md) | :heavy_minus_sign: | N/A |
+| `CreateTransaction` | [*components.ActivityCreateTransaction](../../models/components/activitycreatetransaction.md) | :heavy_minus_sign: | N/A |
+| `RevertTransaction` | [*components.ActivityRevertTransaction](../../models/components/activityreverttransaction.md) | :heavy_minus_sign: | N/A |
+| `StripeTransfer` | [*components.ActivityStripeTransfer](../../models/components/activitystripetransfer.md) | :heavy_minus_sign: | N/A |
+| `GetPayment` | [*components.ActivityGetPayment](../../models/components/activitygetpayment.md) | :heavy_minus_sign: | N/A |
+| `ConfirmHold` | [*components.ActivityConfirmHold](../../models/components/activityconfirmhold.md) | :heavy_minus_sign: | N/A |
+| `CreditWallet` | [*components.ActivityCreditWallet](../../models/components/activitycreditwallet.md) | :heavy_minus_sign: | N/A |
+| `DebitWallet` | [*components.ActivityDebitWallet](../../models/components/activitydebitwallet.md) | :heavy_minus_sign: | N/A |
+| `GetWallet` | [*components.ActivityGetWallet](../../models/components/activitygetwallet.md) | :heavy_minus_sign: | N/A |
+| `VoidHold` | [*components.ActivityVoidHold](../../models/components/activityvoidhold.md) | :heavy_minus_sign: | N/A |
+| `ListWallets` | [*components.ActivityListWallets](../../models/components/activitylistwallets.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/components/workflowinstancehistorystageoutput.md b/pkg/client/docs/models/components/workflowinstancehistorystageoutput.md
new file mode 100644
index 0000000..b54551a
--- /dev/null
+++ b/pkg/client/docs/models/components/workflowinstancehistorystageoutput.md
@@ -0,0 +1,14 @@
+# WorkflowInstanceHistoryStageOutput
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `GetAccount` | [*components.ActivityGetAccountOutput](../../models/components/activitygetaccountoutput.md) | :heavy_minus_sign: | N/A |
+| `CreateTransaction` | [*components.ActivityCreateTransactionOutput](../../models/components/activitycreatetransactionoutput.md) | :heavy_minus_sign: | N/A |
+| `RevertTransaction` | [*components.ActivityRevertTransactionOutput](../../models/components/activityreverttransactionoutput.md) | :heavy_minus_sign: | N/A |
+| `GetPayment` | [*components.ActivityGetPaymentOutput](../../models/components/activitygetpaymentoutput.md) | :heavy_minus_sign: | N/A |
+| `DebitWallet` | [*components.ActivityDebitWalletOutput](../../models/components/activitydebitwalletoutput.md) | :heavy_minus_sign: | N/A |
+| `GetWallet` | [*components.ActivityGetWalletOutput](../../models/components/activitygetwalletoutput.md) | :heavy_minus_sign: | N/A |
+| `ListWallets` | [*components.ListWalletsResponse](../../models/components/listwalletsresponse.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/canceleventrequest.md b/pkg/client/docs/models/operations/canceleventrequest.md
new file mode 100644
index 0000000..88b1757
--- /dev/null
+++ b/pkg/client/docs/models/operations/canceleventrequest.md
@@ -0,0 +1,8 @@
+# CancelEventRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/canceleventresponse.md b/pkg/client/docs/models/operations/canceleventresponse.md
new file mode 100644
index 0000000..c1ef9fa
--- /dev/null
+++ b/pkg/client/docs/models/operations/canceleventresponse.md
@@ -0,0 +1,8 @@
+# CancelEventResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/createtriggerresponse.md b/pkg/client/docs/models/operations/createtriggerresponse.md
new file mode 100644
index 0000000..ad924d5
--- /dev/null
+++ b/pkg/client/docs/models/operations/createtriggerresponse.md
@@ -0,0 +1,9 @@
+# CreateTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `CreateTriggerResponse` | [*components.CreateTriggerResponse](../../models/components/createtriggerresponse.md) | :heavy_minus_sign: | Created trigger |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/createworkflowresponse.md b/pkg/client/docs/models/operations/createworkflowresponse.md
new file mode 100644
index 0000000..fbebe5f
--- /dev/null
+++ b/pkg/client/docs/models/operations/createworkflowresponse.md
@@ -0,0 +1,9 @@
+# CreateWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `CreateWorkflowResponse` | [*components.CreateWorkflowResponse](../../models/components/createworkflowresponse.md) | :heavy_minus_sign: | Created workflow |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/deletetriggerrequest.md b/pkg/client/docs/models/operations/deletetriggerrequest.md
new file mode 100644
index 0000000..feb6d39
--- /dev/null
+++ b/pkg/client/docs/models/operations/deletetriggerrequest.md
@@ -0,0 +1,8 @@
+# DeleteTriggerRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `TriggerID` | *string* | :heavy_check_mark: | The trigger id |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/deletetriggerresponse.md b/pkg/client/docs/models/operations/deletetriggerresponse.md
new file mode 100644
index 0000000..511a2dd
--- /dev/null
+++ b/pkg/client/docs/models/operations/deletetriggerresponse.md
@@ -0,0 +1,8 @@
+# DeleteTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/deleteworkflowrequest.md b/pkg/client/docs/models/operations/deleteworkflowrequest.md
new file mode 100644
index 0000000..a27d1f4
--- /dev/null
+++ b/pkg/client/docs/models/operations/deleteworkflowrequest.md
@@ -0,0 +1,8 @@
+# DeleteWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `FlowID` | *string* | :heavy_check_mark: | The flow id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/deleteworkflowresponse.md b/pkg/client/docs/models/operations/deleteworkflowresponse.md
new file mode 100644
index 0000000..e6ce8dd
--- /dev/null
+++ b/pkg/client/docs/models/operations/deleteworkflowresponse.md
@@ -0,0 +1,8 @@
+# DeleteWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getinstancehistoryrequest.md b/pkg/client/docs/models/operations/getinstancehistoryrequest.md
new file mode 100644
index 0000000..83dc8fc
--- /dev/null
+++ b/pkg/client/docs/models/operations/getinstancehistoryrequest.md
@@ -0,0 +1,8 @@
+# GetInstanceHistoryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getinstancehistoryresponse.md b/pkg/client/docs/models/operations/getinstancehistoryresponse.md
new file mode 100644
index 0000000..7880ff3
--- /dev/null
+++ b/pkg/client/docs/models/operations/getinstancehistoryresponse.md
@@ -0,0 +1,9 @@
+# GetInstanceHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `GetWorkflowInstanceHistoryResponse` | [*components.GetWorkflowInstanceHistoryResponse](../../models/components/getworkflowinstancehistoryresponse.md) | :heavy_minus_sign: | The workflow instance history |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getinstancerequest.md b/pkg/client/docs/models/operations/getinstancerequest.md
new file mode 100644
index 0000000..0eadce3
--- /dev/null
+++ b/pkg/client/docs/models/operations/getinstancerequest.md
@@ -0,0 +1,8 @@
+# GetInstanceRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getinstanceresponse.md b/pkg/client/docs/models/operations/getinstanceresponse.md
new file mode 100644
index 0000000..c31fdfe
--- /dev/null
+++ b/pkg/client/docs/models/operations/getinstanceresponse.md
@@ -0,0 +1,9 @@
+# GetInstanceResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `GetWorkflowInstanceResponse` | [*components.GetWorkflowInstanceResponse](../../models/components/getworkflowinstanceresponse.md) | :heavy_minus_sign: | The workflow instance |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getinstancestagehistoryrequest.md b/pkg/client/docs/models/operations/getinstancestagehistoryrequest.md
new file mode 100644
index 0000000..8d55440
--- /dev/null
+++ b/pkg/client/docs/models/operations/getinstancestagehistoryrequest.md
@@ -0,0 +1,9 @@
+# GetInstanceStageHistoryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
+| `Number` | *int64* | :heavy_check_mark: | The stage number | 0 |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getinstancestagehistoryresponse.md b/pkg/client/docs/models/operations/getinstancestagehistoryresponse.md
new file mode 100644
index 0000000..c77846d
--- /dev/null
+++ b/pkg/client/docs/models/operations/getinstancestagehistoryresponse.md
@@ -0,0 +1,9 @@
+# GetInstanceStageHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `GetWorkflowInstanceHistoryStageResponse` | [*components.GetWorkflowInstanceHistoryStageResponse](../../models/components/getworkflowinstancehistorystageresponse.md) | :heavy_minus_sign: | The workflow instance stage history |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getserverinforesponse.md b/pkg/client/docs/models/operations/getserverinforesponse.md
new file mode 100644
index 0000000..19f563e
--- /dev/null
+++ b/pkg/client/docs/models/operations/getserverinforesponse.md
@@ -0,0 +1,9 @@
+# GetServerInfoResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `ServerInfo` | [*components.ServerInfo](../../models/components/serverinfo.md) | :heavy_minus_sign: | Server information |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getworkflowrequest.md b/pkg/client/docs/models/operations/getworkflowrequest.md
new file mode 100644
index 0000000..9ff4e75
--- /dev/null
+++ b/pkg/client/docs/models/operations/getworkflowrequest.md
@@ -0,0 +1,8 @@
+# GetWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `FlowID` | *string* | :heavy_check_mark: | The flow id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/getworkflowresponse.md b/pkg/client/docs/models/operations/getworkflowresponse.md
new file mode 100644
index 0000000..2b21912
--- /dev/null
+++ b/pkg/client/docs/models/operations/getworkflowresponse.md
@@ -0,0 +1,9 @@
+# GetWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `GetWorkflowResponse` | [*components.GetWorkflowResponse](../../models/components/getworkflowresponse.md) | :heavy_minus_sign: | The workflow |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/listinstancesrequest.md b/pkg/client/docs/models/operations/listinstancesrequest.md
new file mode 100644
index 0000000..4ae85d5
--- /dev/null
+++ b/pkg/client/docs/models/operations/listinstancesrequest.md
@@ -0,0 +1,9 @@
+# ListInstancesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------ | ------------------------ | ------------------------ | ------------------------ | ------------------------ |
+| `WorkflowID` | **string* | :heavy_minus_sign: | A workflow id | xxx |
+| `Running` | **bool* | :heavy_minus_sign: | Filter running instances | true |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/listinstancesresponse.md b/pkg/client/docs/models/operations/listinstancesresponse.md
new file mode 100644
index 0000000..8822a1a
--- /dev/null
+++ b/pkg/client/docs/models/operations/listinstancesresponse.md
@@ -0,0 +1,9 @@
+# ListInstancesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `ListRunsResponse` | [*components.ListRunsResponse](../../models/components/listrunsresponse.md) | :heavy_minus_sign: | List of workflow instances |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/listtriggersoccurrencesrequest.md b/pkg/client/docs/models/operations/listtriggersoccurrencesrequest.md
new file mode 100644
index 0000000..ee2406b
--- /dev/null
+++ b/pkg/client/docs/models/operations/listtriggersoccurrencesrequest.md
@@ -0,0 +1,8 @@
+# ListTriggersOccurrencesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `TriggerID` | *string* | :heavy_check_mark: | The trigger id |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/listtriggersoccurrencesresponse.md b/pkg/client/docs/models/operations/listtriggersoccurrencesresponse.md
new file mode 100644
index 0000000..a07185e
--- /dev/null
+++ b/pkg/client/docs/models/operations/listtriggersoccurrencesresponse.md
@@ -0,0 +1,9 @@
+# ListTriggersOccurrencesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `ListTriggersOccurrencesResponse` | [*components.ListTriggersOccurrencesResponse](../../models/components/listtriggersoccurrencesresponse.md) | :heavy_minus_sign: | List of triggers occurrences |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/listtriggersrequest.md b/pkg/client/docs/models/operations/listtriggersrequest.md
new file mode 100644
index 0000000..cfc708a
--- /dev/null
+++ b/pkg/client/docs/models/operations/listtriggersrequest.md
@@ -0,0 +1,8 @@
+# ListTriggersRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | **string* | :heavy_minus_sign: | search by name |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/listtriggersresponse.md b/pkg/client/docs/models/operations/listtriggersresponse.md
new file mode 100644
index 0000000..d589025
--- /dev/null
+++ b/pkg/client/docs/models/operations/listtriggersresponse.md
@@ -0,0 +1,9 @@
+# ListTriggersResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `ListTriggersResponse` | [*components.ListTriggersResponse](../../models/components/listtriggersresponse.md) | :heavy_minus_sign: | List of triggers |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/listworkflowsresponse.md b/pkg/client/docs/models/operations/listworkflowsresponse.md
new file mode 100644
index 0000000..2d881e3
--- /dev/null
+++ b/pkg/client/docs/models/operations/listworkflowsresponse.md
@@ -0,0 +1,9 @@
+# ListWorkflowsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `ListWorkflowsResponse` | [*components.ListWorkflowsResponse](../../models/components/listworkflowsresponse.md) | :heavy_minus_sign: | List of workflows |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/option.md b/pkg/client/docs/models/operations/option.md
new file mode 100644
index 0000000..35d8a1e
--- /dev/null
+++ b/pkg/client/docs/models/operations/option.md
@@ -0,0 +1,37 @@
+## Options
+
+### WithServerURL
+
+WithServerURL allows providing an alternative server URL.
+
+```go
+operations.WithServerURL("http://api.example.com")
+```
+
+## WithTemplatedServerURL
+
+WithTemplatedServerURL allows providing an alternative server URL with templated parameters.
+
+```go
+operations.WithTemplatedServerURL("http://{host}:{port}", map[string]string{
+ "host": "api.example.com",
+ "port": "8080",
+})
+```
+
+### WithRetries
+
+WithRetries allows customizing the default retry configuration. Only usable with methods that mention they support retries.
+
+```go
+operations.WithRetries(retry.Config{
+ Strategy: "backoff",
+ Backoff: retry.BackoffStrategy{
+ InitialInterval: 500 * time.Millisecond,
+ MaxInterval: 60 * time.Second,
+ Exponent: 1.5,
+ MaxElapsedTime: 5 * time.Minute,
+ },
+ RetryConnectionErrors: true,
+})
+```
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/readtriggerrequest.md b/pkg/client/docs/models/operations/readtriggerrequest.md
new file mode 100644
index 0000000..2ddf0c1
--- /dev/null
+++ b/pkg/client/docs/models/operations/readtriggerrequest.md
@@ -0,0 +1,8 @@
+# ReadTriggerRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `TriggerID` | *string* | :heavy_check_mark: | The trigger id |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/readtriggerresponse.md b/pkg/client/docs/models/operations/readtriggerresponse.md
new file mode 100644
index 0000000..c7002d9
--- /dev/null
+++ b/pkg/client/docs/models/operations/readtriggerresponse.md
@@ -0,0 +1,9 @@
+# ReadTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `ReadTriggerResponse` | [*components.ReadTriggerResponse](../../models/components/readtriggerresponse.md) | :heavy_minus_sign: | A specific trigger |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/runworkflowrequest.md b/pkg/client/docs/models/operations/runworkflowrequest.md
new file mode 100644
index 0000000..406d829
--- /dev/null
+++ b/pkg/client/docs/models/operations/runworkflowrequest.md
@@ -0,0 +1,10 @@
+# RunWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| `WorkflowID` | *string* | :heavy_check_mark: | The flow id | xxx |
+| `Wait` | **bool* | :heavy_minus_sign: | Wait end of the workflow before return | |
+| `RequestBody` | map[string]*string* | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/runworkflowresponse.md b/pkg/client/docs/models/operations/runworkflowresponse.md
new file mode 100644
index 0000000..39babb3
--- /dev/null
+++ b/pkg/client/docs/models/operations/runworkflowresponse.md
@@ -0,0 +1,9 @@
+# RunWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `RunWorkflowResponse` | [*components.RunWorkflowResponse](../../models/components/runworkflowresponse.md) | :heavy_minus_sign: | The workflow instance |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/sendeventrequest.md b/pkg/client/docs/models/operations/sendeventrequest.md
new file mode 100644
index 0000000..1ba08a6
--- /dev/null
+++ b/pkg/client/docs/models/operations/sendeventrequest.md
@@ -0,0 +1,9 @@
+# SendEventRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
+| `RequestBody` | [*operations.SendEventRequestBody](../../models/operations/sendeventrequestbody.md) | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/sendeventrequestbody.md b/pkg/client/docs/models/operations/sendeventrequestbody.md
new file mode 100644
index 0000000..902bd41
--- /dev/null
+++ b/pkg/client/docs/models/operations/sendeventrequestbody.md
@@ -0,0 +1,8 @@
+# SendEventRequestBody
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/sendeventresponse.md b/pkg/client/docs/models/operations/sendeventresponse.md
new file mode 100644
index 0000000..805e896
--- /dev/null
+++ b/pkg/client/docs/models/operations/sendeventresponse.md
@@ -0,0 +1,8 @@
+# SendEventResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/testtriggerrequest.md b/pkg/client/docs/models/operations/testtriggerrequest.md
new file mode 100644
index 0000000..42721d6
--- /dev/null
+++ b/pkg/client/docs/models/operations/testtriggerrequest.md
@@ -0,0 +1,9 @@
+# TestTriggerRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `TriggerID` | *string* | :heavy_check_mark: | The trigger id |
+| `RequestBody` | map[string]*any* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/testtriggerresponse.md b/pkg/client/docs/models/operations/testtriggerresponse.md
new file mode 100644
index 0000000..488029d
--- /dev/null
+++ b/pkg/client/docs/models/operations/testtriggerresponse.md
@@ -0,0 +1,9 @@
+# TestTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2TestTriggerResponse` | [*components.V2TestTriggerResponse](../../models/components/v2testtriggerresponse.md) | :heavy_minus_sign: | Test a trigger |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2canceleventrequest.md b/pkg/client/docs/models/operations/v2canceleventrequest.md
new file mode 100644
index 0000000..84070d4
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2canceleventrequest.md
@@ -0,0 +1,8 @@
+# V2CancelEventRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2canceleventresponse.md b/pkg/client/docs/models/operations/v2canceleventresponse.md
new file mode 100644
index 0000000..cbdf6a3
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2canceleventresponse.md
@@ -0,0 +1,8 @@
+# V2CancelEventResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2createtriggerresponse.md b/pkg/client/docs/models/operations/v2createtriggerresponse.md
new file mode 100644
index 0000000..98d9253
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2createtriggerresponse.md
@@ -0,0 +1,9 @@
+# V2CreateTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2CreateTriggerResponse` | [*components.V2CreateTriggerResponse](../../models/components/v2createtriggerresponse.md) | :heavy_minus_sign: | Created trigger |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2createworkflowresponse.md b/pkg/client/docs/models/operations/v2createworkflowresponse.md
new file mode 100644
index 0000000..ff10b43
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2createworkflowresponse.md
@@ -0,0 +1,9 @@
+# V2CreateWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2CreateWorkflowResponse` | [*components.V2CreateWorkflowResponse](../../models/components/v2createworkflowresponse.md) | :heavy_minus_sign: | Created workflow |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2deletetriggerrequest.md b/pkg/client/docs/models/operations/v2deletetriggerrequest.md
new file mode 100644
index 0000000..2cf4817
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2deletetriggerrequest.md
@@ -0,0 +1,8 @@
+# V2DeleteTriggerRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `TriggerID` | *string* | :heavy_check_mark: | The trigger id |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2deletetriggerresponse.md b/pkg/client/docs/models/operations/v2deletetriggerresponse.md
new file mode 100644
index 0000000..3b00d72
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2deletetriggerresponse.md
@@ -0,0 +1,8 @@
+# V2DeleteTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2deleteworkflowrequest.md b/pkg/client/docs/models/operations/v2deleteworkflowrequest.md
new file mode 100644
index 0000000..86306e2
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2deleteworkflowrequest.md
@@ -0,0 +1,8 @@
+# V2DeleteWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `FlowID` | *string* | :heavy_check_mark: | The flow id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2deleteworkflowresponse.md b/pkg/client/docs/models/operations/v2deleteworkflowresponse.md
new file mode 100644
index 0000000..8d241f5
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2deleteworkflowresponse.md
@@ -0,0 +1,8 @@
+# V2DeleteWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getinstancehistoryrequest.md b/pkg/client/docs/models/operations/v2getinstancehistoryrequest.md
new file mode 100644
index 0000000..3d0693b
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getinstancehistoryrequest.md
@@ -0,0 +1,8 @@
+# V2GetInstanceHistoryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getinstancehistoryresponse.md b/pkg/client/docs/models/operations/v2getinstancehistoryresponse.md
new file mode 100644
index 0000000..9551db9
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getinstancehistoryresponse.md
@@ -0,0 +1,9 @@
+# V2GetInstanceHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2GetWorkflowInstanceHistoryResponse` | [*components.V2GetWorkflowInstanceHistoryResponse](../../models/components/v2getworkflowinstancehistoryresponse.md) | :heavy_minus_sign: | The workflow instance history |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getinstancerequest.md b/pkg/client/docs/models/operations/v2getinstancerequest.md
new file mode 100644
index 0000000..10052d5
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getinstancerequest.md
@@ -0,0 +1,8 @@
+# V2GetInstanceRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getinstanceresponse.md b/pkg/client/docs/models/operations/v2getinstanceresponse.md
new file mode 100644
index 0000000..c61a2c6
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getinstanceresponse.md
@@ -0,0 +1,9 @@
+# V2GetInstanceResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2GetWorkflowInstanceResponse` | [*components.V2GetWorkflowInstanceResponse](../../models/components/v2getworkflowinstanceresponse.md) | :heavy_minus_sign: | The workflow instance |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getinstancestagehistoryrequest.md b/pkg/client/docs/models/operations/v2getinstancestagehistoryrequest.md
new file mode 100644
index 0000000..5bd9a38
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getinstancestagehistoryrequest.md
@@ -0,0 +1,9 @@
+# V2GetInstanceStageHistoryRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
+| `Number` | *int64* | :heavy_check_mark: | The stage number | 0 |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getinstancestagehistoryresponse.md b/pkg/client/docs/models/operations/v2getinstancestagehistoryresponse.md
new file mode 100644
index 0000000..4597a82
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getinstancestagehistoryresponse.md
@@ -0,0 +1,9 @@
+# V2GetInstanceStageHistoryResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2GetWorkflowInstanceHistoryStageResponse` | [*components.V2GetWorkflowInstanceHistoryStageResponse](../../models/components/v2getworkflowinstancehistorystageresponse.md) | :heavy_minus_sign: | The workflow instance stage history |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getserverinforesponse.md b/pkg/client/docs/models/operations/v2getserverinforesponse.md
new file mode 100644
index 0000000..b3dde45
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getserverinforesponse.md
@@ -0,0 +1,9 @@
+# V2GetServerInfoResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2ServerInfo` | [*components.V2ServerInfo](../../models/components/v2serverinfo.md) | :heavy_minus_sign: | Server information |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getworkflowrequest.md b/pkg/client/docs/models/operations/v2getworkflowrequest.md
new file mode 100644
index 0000000..b83270e
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getworkflowrequest.md
@@ -0,0 +1,8 @@
+# V2GetWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
+| `FlowID` | *string* | :heavy_check_mark: | The flow id | xxx |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2getworkflowresponse.md b/pkg/client/docs/models/operations/v2getworkflowresponse.md
new file mode 100644
index 0000000..4c8f6f4
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2getworkflowresponse.md
@@ -0,0 +1,9 @@
+# V2GetWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2GetWorkflowResponse` | [*components.V2GetWorkflowResponse](../../models/components/v2getworkflowresponse.md) | :heavy_minus_sign: | The workflow |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listinstancesrequest.md b/pkg/client/docs/models/operations/v2listinstancesrequest.md
new file mode 100644
index 0000000..292a946
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listinstancesrequest.md
@@ -0,0 +1,11 @@
+# V2ListInstancesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `Cursor` | **string* | :heavy_minus_sign: | Parameter used in pagination requests.
Set to the value of next for the next page of results.
Set to the value of previous for the previous page of results.
No other parameters can be set when this parameter is set.
| aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== |
+| `PageSize` | **int64* | :heavy_minus_sign: | The maximum number of results to return per page.
| 100 |
+| `WorkflowID` | **string* | :heavy_minus_sign: | A workflow id | xxx |
+| `Running` | **bool* | :heavy_minus_sign: | Filter running instances | true |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listinstancesresponse.md b/pkg/client/docs/models/operations/v2listinstancesresponse.md
new file mode 100644
index 0000000..994f247
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listinstancesresponse.md
@@ -0,0 +1,9 @@
+# V2ListInstancesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2ListRunsResponse` | [*components.V2ListRunsResponse](../../models/components/v2listrunsresponse.md) | :heavy_minus_sign: | List of workflow instances |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listtriggersoccurrencesrequest.md b/pkg/client/docs/models/operations/v2listtriggersoccurrencesrequest.md
new file mode 100644
index 0000000..0f69943
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listtriggersoccurrencesrequest.md
@@ -0,0 +1,10 @@
+# V2ListTriggersOccurrencesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `TriggerID` | *string* | :heavy_check_mark: | The trigger id | |
+| `Cursor` | **string* | :heavy_minus_sign: | Parameter used in pagination requests.
Set to the value of next for the next page of results.
Set to the value of previous for the previous page of results.
No other parameters can be set when this parameter is set.
| aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== |
+| `PageSize` | **int64* | :heavy_minus_sign: | The maximum number of results to return per page.
| 100 |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listtriggersoccurrencesresponse.md b/pkg/client/docs/models/operations/v2listtriggersoccurrencesresponse.md
new file mode 100644
index 0000000..0a88eb6
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listtriggersoccurrencesresponse.md
@@ -0,0 +1,9 @@
+# V2ListTriggersOccurrencesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2ListTriggersOccurrencesResponse` | [*components.V2ListTriggersOccurrencesResponse](../../models/components/v2listtriggersoccurrencesresponse.md) | :heavy_minus_sign: | List of triggers occurrences |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listtriggersrequest.md b/pkg/client/docs/models/operations/v2listtriggersrequest.md
new file mode 100644
index 0000000..fd9158e
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listtriggersrequest.md
@@ -0,0 +1,10 @@
+# V2ListTriggersRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `Cursor` | **string* | :heavy_minus_sign: | Parameter used in pagination requests.
Set to the value of next for the next page of results.
Set to the value of previous for the previous page of results.
No other parameters can be set when this parameter is set.
| aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== |
+| `PageSize` | **int64* | :heavy_minus_sign: | The maximum number of results to return per page.
| 100 |
+| `Name` | **string* | :heavy_minus_sign: | search by name | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listtriggersresponse.md b/pkg/client/docs/models/operations/v2listtriggersresponse.md
new file mode 100644
index 0000000..f3b1a66
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listtriggersresponse.md
@@ -0,0 +1,9 @@
+# V2ListTriggersResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2ListTriggersResponse` | [*components.V2ListTriggersResponse](../../models/components/v2listtriggersresponse.md) | :heavy_minus_sign: | List of triggers |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listworkflowsrequest.md b/pkg/client/docs/models/operations/v2listworkflowsrequest.md
new file mode 100644
index 0000000..c94297e
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listworkflowsrequest.md
@@ -0,0 +1,9 @@
+# V2ListWorkflowsRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `Cursor` | **string* | :heavy_minus_sign: | Parameter used in pagination requests.
Set to the value of next for the next page of results.
Set to the value of previous for the previous page of results.
No other parameters can be set when this parameter is set.
| aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ== |
+| `PageSize` | **int64* | :heavy_minus_sign: | The maximum number of results to return per page.
| 100 |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2listworkflowsresponse.md b/pkg/client/docs/models/operations/v2listworkflowsresponse.md
new file mode 100644
index 0000000..ca5892b
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2listworkflowsresponse.md
@@ -0,0 +1,9 @@
+# V2ListWorkflowsResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2ListWorkflowsResponse` | [*components.V2ListWorkflowsResponse](../../models/components/v2listworkflowsresponse.md) | :heavy_minus_sign: | List of workflows |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2readtriggerrequest.md b/pkg/client/docs/models/operations/v2readtriggerrequest.md
new file mode 100644
index 0000000..a95a449
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2readtriggerrequest.md
@@ -0,0 +1,8 @@
+# V2ReadTriggerRequest
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `TriggerID` | *string* | :heavy_check_mark: | The trigger id |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2readtriggerresponse.md b/pkg/client/docs/models/operations/v2readtriggerresponse.md
new file mode 100644
index 0000000..fdeaee9
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2readtriggerresponse.md
@@ -0,0 +1,9 @@
+# V2ReadTriggerResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2ReadTriggerResponse` | [*components.V2ReadTriggerResponse](../../models/components/v2readtriggerresponse.md) | :heavy_minus_sign: | A specific trigger |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2runworkflowrequest.md b/pkg/client/docs/models/operations/v2runworkflowrequest.md
new file mode 100644
index 0000000..2ad98e8
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2runworkflowrequest.md
@@ -0,0 +1,10 @@
+# V2RunWorkflowRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- | -------------------------------------- |
+| `WorkflowID` | *string* | :heavy_check_mark: | The flow id | xxx |
+| `Wait` | **bool* | :heavy_minus_sign: | Wait end of the workflow before return | |
+| `RequestBody` | map[string]*string* | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2runworkflowresponse.md b/pkg/client/docs/models/operations/v2runworkflowresponse.md
new file mode 100644
index 0000000..9e5f692
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2runworkflowresponse.md
@@ -0,0 +1,9 @@
+# V2RunWorkflowResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
+| `V2RunWorkflowResponse` | [*components.V2RunWorkflowResponse](../../models/components/v2runworkflowresponse.md) | :heavy_minus_sign: | The workflow instance |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2sendeventrequest.md b/pkg/client/docs/models/operations/v2sendeventrequest.md
new file mode 100644
index 0000000..f516c2b
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2sendeventrequest.md
@@ -0,0 +1,9 @@
+# V2SendEventRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
+| `InstanceID` | *string* | :heavy_check_mark: | The instance id | xxx |
+| `RequestBody` | [*operations.V2SendEventRequestBody](../../models/operations/v2sendeventrequestbody.md) | :heavy_minus_sign: | N/A | |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2sendeventrequestbody.md b/pkg/client/docs/models/operations/v2sendeventrequestbody.md
new file mode 100644
index 0000000..04919df
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2sendeventrequestbody.md
@@ -0,0 +1,8 @@
+# V2SendEventRequestBody
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------ | ------------------ | ------------------ | ------------------ |
+| `Name` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/operations/v2sendeventresponse.md b/pkg/client/docs/models/operations/v2sendeventresponse.md
new file mode 100644
index 0000000..4bc0024
--- /dev/null
+++ b/pkg/client/docs/models/operations/v2sendeventresponse.md
@@ -0,0 +1,8 @@
+# V2SendEventResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ |
+| `HTTPMeta` | [components.HTTPMetadata](../../models/components/httpmetadata.md) | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/sdkerrors/error.md b/pkg/client/docs/models/sdkerrors/error.md
new file mode 100644
index 0000000..3a2cf0c
--- /dev/null
+++ b/pkg/client/docs/models/sdkerrors/error.md
@@ -0,0 +1,11 @@
+# Error
+
+General error
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
+| `ErrorCode` | [sdkerrors.ErrorCode](../../models/sdkerrors/errorcode.md) | :heavy_check_mark: | N/A |
+| `ErrorMessage` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/sdkerrors/errorcode.md b/pkg/client/docs/models/sdkerrors/errorcode.md
new file mode 100644
index 0000000..9657ade
--- /dev/null
+++ b/pkg/client/docs/models/sdkerrors/errorcode.md
@@ -0,0 +1,10 @@
+# ErrorCode
+
+
+## Values
+
+| Name | Value |
+| --------------------- | --------------------- |
+| `ErrorCodeValidation` | VALIDATION |
+| `ErrorCodeNotFound` | NOT_FOUND |
+| `ErrorCodeInternal` | INTERNAL |
\ No newline at end of file
diff --git a/pkg/client/docs/models/sdkerrors/v2error.md b/pkg/client/docs/models/sdkerrors/v2error.md
new file mode 100644
index 0000000..764cdba
--- /dev/null
+++ b/pkg/client/docs/models/sdkerrors/v2error.md
@@ -0,0 +1,11 @@
+# V2Error
+
+General error
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
+| `ErrorCode` | [sdkerrors.V2ErrorErrorCode](../../models/sdkerrors/v2errorerrorcode.md) | :heavy_check_mark: | N/A |
+| `ErrorMessage` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/pkg/client/docs/models/sdkerrors/v2errorerrorcode.md b/pkg/client/docs/models/sdkerrors/v2errorerrorcode.md
new file mode 100644
index 0000000..85e5576
--- /dev/null
+++ b/pkg/client/docs/models/sdkerrors/v2errorerrorcode.md
@@ -0,0 +1,10 @@
+# V2ErrorErrorCode
+
+
+## Values
+
+| Name | Value |
+| ---------------------------- | ---------------------------- |
+| `V2ErrorErrorCodeValidation` | VALIDATION |
+| `V2ErrorErrorCodeNotFound` | NOT_FOUND |
+| `V2ErrorErrorCodeInternal` | INTERNAL |
\ No newline at end of file
diff --git a/pkg/client/docs/sdks/sdk/README.md b/pkg/client/docs/sdks/sdk/README.md
new file mode 100644
index 0000000..829faa7
--- /dev/null
+++ b/pkg/client/docs/sdks/sdk/README.md
@@ -0,0 +1,7 @@
+# SDK
+
+
+## Overview
+
+### Available Operations
+
diff --git a/pkg/client/docs/sdks/v1/README.md b/pkg/client/docs/sdks/v1/README.md
new file mode 100644
index 0000000..6fd4a1a
--- /dev/null
+++ b/pkg/client/docs/sdks/v1/README.md
@@ -0,0 +1,943 @@
+# V1
+(*Orchestration.V1*)
+
+### Available Operations
+
+* [GetServerInfo](#getserverinfo) - Get server info
+* [ListTriggers](#listtriggers) - List triggers
+* [CreateTrigger](#createtrigger) - Create trigger
+* [ReadTrigger](#readtrigger) - Read trigger
+* [DeleteTrigger](#deletetrigger) - Delete trigger
+* [ListTriggersOccurrences](#listtriggersoccurrences) - List triggers occurrences
+* [ListWorkflows](#listworkflows) - List registered workflows
+* [CreateWorkflow](#createworkflow) - Create workflow
+* [GetWorkflow](#getworkflow) - Get a flow by id
+* [DeleteWorkflow](#deleteworkflow) - Delete a flow by id
+* [RunWorkflow](#runworkflow) - Run workflow
+* [ListInstances](#listinstances) - List instances of a workflow
+* [GetInstance](#getinstance) - Get a workflow instance by id
+* [SendEvent](#sendevent) - Send an event to a running workflow
+* [CancelEvent](#cancelevent) - Cancel a running workflow
+* [GetInstanceHistory](#getinstancehistory) - Get a workflow instance history by id
+* [GetInstanceStageHistory](#getinstancestagehistory) - Get a workflow instance stage history
+
+## GetServerInfo
+
+Get server info
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ServerInfo != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.GetServerInfoResponse](../../models/operations/getserverinforesponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListTriggers
+
+List triggers
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.ListTriggersRequest{}
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.ListTriggers(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ListTriggersResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.ListTriggersRequest](../../models/operations/listtriggersrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.ListTriggersResponse](../../models/operations/listtriggersresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## CreateTrigger
+
+Create trigger
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.CreateTrigger(ctx, nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.CreateTriggerResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [components.TriggerData](../../models/components/triggerdata.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.CreateTriggerResponse](../../models/operations/createtriggerresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ReadTrigger
+
+Read trigger
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.ReadTriggerRequest{
+ TriggerID: "",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.ReadTrigger(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ReadTriggerResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.ReadTriggerRequest](../../models/operations/readtriggerrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.ReadTriggerResponse](../../models/operations/readtriggerresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## DeleteTrigger
+
+Read trigger
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.DeleteTriggerRequest{
+ TriggerID: "",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.DeleteTrigger(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.DeleteTriggerRequest](../../models/operations/deletetriggerrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.DeleteTriggerResponse](../../models/operations/deletetriggerresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListTriggersOccurrences
+
+List triggers occurrences
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.ListTriggersOccurrencesRequest{
+ TriggerID: "",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.ListTriggersOccurrences(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ListTriggersOccurrencesResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.ListTriggersOccurrencesRequest](../../models/operations/listtriggersoccurrencesrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.ListTriggersOccurrencesResponse](../../models/operations/listtriggersoccurrencesresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListWorkflows
+
+List registered workflows
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.ListWorkflows(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ListWorkflowsResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.ListWorkflowsResponse](../../models/operations/listworkflowsresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## CreateWorkflow
+
+Create a workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.CreateWorkflow(ctx, nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.CreateWorkflowResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [components.CreateWorkflowRequest](../../models/components/createworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.CreateWorkflowResponse](../../models/operations/createworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetWorkflow
+
+Get a flow by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.GetWorkflowRequest{
+ FlowID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetWorkflow(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.GetWorkflowResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.GetWorkflowRequest](../../models/operations/getworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.GetWorkflowResponse](../../models/operations/getworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## DeleteWorkflow
+
+Delete a flow by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.DeleteWorkflowRequest{
+ FlowID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.DeleteWorkflow(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.DeleteWorkflowRequest](../../models/operations/deleteworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.DeleteWorkflowResponse](../../models/operations/deleteworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## RunWorkflow
+
+Run workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.RunWorkflowRequest{
+ WorkflowID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.RunWorkflow(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.RunWorkflowResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.RunWorkflowRequest](../../models/operations/runworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.RunWorkflowResponse](../../models/operations/runworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListInstances
+
+List instances of a workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.ListInstancesRequest{
+ WorkflowID: openapi.String("xxx"),
+ Running: openapi.Bool(true),
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.ListInstances(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.ListRunsResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.ListInstancesRequest](../../models/operations/listinstancesrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.ListInstancesResponse](../../models/operations/listinstancesresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetInstance
+
+Get a workflow instance by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.GetInstanceRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetInstance(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.GetWorkflowInstanceResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.GetInstanceRequest](../../models/operations/getinstancerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.GetInstanceResponse](../../models/operations/getinstanceresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## SendEvent
+
+Send an event to a running workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.SendEventRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.SendEvent(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.SendEventRequest](../../models/operations/sendeventrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.SendEventResponse](../../models/operations/sendeventresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## CancelEvent
+
+Cancel a running workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.CancelEventRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.CancelEvent(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.CancelEventRequest](../../models/operations/canceleventrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.CancelEventResponse](../../models/operations/canceleventresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetInstanceHistory
+
+Get a workflow instance history by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.GetInstanceHistoryRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetInstanceHistory(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.GetWorkflowInstanceHistoryResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.GetInstanceHistoryRequest](../../models/operations/getinstancehistoryrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.GetInstanceHistoryResponse](../../models/operations/getinstancehistoryresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetInstanceStageHistory
+
+Get a workflow instance stage history
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.GetInstanceStageHistoryRequest{
+ InstanceID: "xxx",
+ Number: 0,
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V1.GetInstanceStageHistory(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.GetWorkflowInstanceHistoryStageResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.GetInstanceStageHistoryRequest](../../models/operations/getinstancestagehistoryrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.GetInstanceStageHistoryResponse](../../models/operations/getinstancestagehistoryresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
diff --git a/pkg/client/docs/sdks/v2/README.md b/pkg/client/docs/sdks/v2/README.md
new file mode 100644
index 0000000..e230fcb
--- /dev/null
+++ b/pkg/client/docs/sdks/v2/README.md
@@ -0,0 +1,1011 @@
+# V2
+(*Orchestration.V2*)
+
+### Available Operations
+
+* [GetServerInfo](#getserverinfo) - Get server info
+* [ListTriggers](#listtriggers) - List triggers
+* [CreateTrigger](#createtrigger) - Create trigger
+* [ReadTrigger](#readtrigger) - Read trigger
+* [DeleteTrigger](#deletetrigger) - Delete trigger
+* [TestTrigger](#testtrigger) - Test trigger
+* [ListTriggersOccurrences](#listtriggersoccurrences) - List triggers occurrences
+* [ListWorkflows](#listworkflows) - List registered workflows
+* [CreateWorkflow](#createworkflow) - Create workflow
+* [GetWorkflow](#getworkflow) - Get a flow by id
+* [DeleteWorkflow](#deleteworkflow) - Delete a flow by id
+* [RunWorkflow](#runworkflow) - Run workflow
+* [ListInstances](#listinstances) - List instances of a workflow
+* [GetInstance](#getinstance) - Get a workflow instance by id
+* [SendEvent](#sendevent) - Send an event to a running workflow
+* [CancelEvent](#cancelevent) - Cancel a running workflow
+* [GetInstanceHistory](#getinstancehistory) - Get a workflow instance history by id
+* [GetInstanceStageHistory](#getinstancestagehistory) - Get a workflow instance stage history
+
+## GetServerInfo
+
+Get server info
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.GetServerInfo(ctx)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2ServerInfo != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2GetServerInfoResponse](../../models/operations/v2getserverinforesponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListTriggers
+
+List triggers
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2ListTriggersRequest{
+ Cursor: openapi.String("aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ=="),
+ PageSize: openapi.Int64(100),
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.ListTriggers(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2ListTriggersResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2ListTriggersRequest](../../models/operations/v2listtriggersrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2ListTriggersResponse](../../models/operations/v2listtriggersresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## CreateTrigger
+
+Create trigger
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.CreateTrigger(ctx, nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2CreateTriggerResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [components.V2TriggerData](../../models/components/v2triggerdata.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2CreateTriggerResponse](../../models/operations/v2createtriggerresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ReadTrigger
+
+Read trigger
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2ReadTriggerRequest{
+ TriggerID: "",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.ReadTrigger(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2ReadTriggerResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2ReadTriggerRequest](../../models/operations/v2readtriggerrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2ReadTriggerResponse](../../models/operations/v2readtriggerresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## DeleteTrigger
+
+Read trigger
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2DeleteTriggerRequest{
+ TriggerID: "",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.DeleteTrigger(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2DeleteTriggerRequest](../../models/operations/v2deletetriggerrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2DeleteTriggerResponse](../../models/operations/v2deletetriggerresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## TestTrigger
+
+Test trigger
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.TestTriggerRequest{
+ TriggerID: "",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.TestTrigger(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2TestTriggerResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.TestTriggerRequest](../../models/operations/testtriggerrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.TestTriggerResponse](../../models/operations/testtriggerresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListTriggersOccurrences
+
+List triggers occurrences
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2ListTriggersOccurrencesRequest{
+ TriggerID: "",
+ Cursor: openapi.String("aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ=="),
+ PageSize: openapi.Int64(100),
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.ListTriggersOccurrences(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2ListTriggersOccurrencesResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2ListTriggersOccurrencesRequest](../../models/operations/v2listtriggersoccurrencesrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2ListTriggersOccurrencesResponse](../../models/operations/v2listtriggersoccurrencesresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListWorkflows
+
+List registered workflows
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2ListWorkflowsRequest{
+ Cursor: openapi.String("aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ=="),
+ PageSize: openapi.Int64(100),
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.ListWorkflows(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2ListWorkflowsResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2ListWorkflowsRequest](../../models/operations/v2listworkflowsrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2ListWorkflowsResponse](../../models/operations/v2listworkflowsresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## CreateWorkflow
+
+Create a workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.CreateWorkflow(ctx, nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2CreateWorkflowResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [components.V2CreateWorkflowRequest](../../models/components/v2createworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2CreateWorkflowResponse](../../models/operations/v2createworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetWorkflow
+
+Get a flow by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2GetWorkflowRequest{
+ FlowID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.GetWorkflow(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2GetWorkflowResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2GetWorkflowRequest](../../models/operations/v2getworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2GetWorkflowResponse](../../models/operations/v2getworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## DeleteWorkflow
+
+Delete a flow by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2DeleteWorkflowRequest{
+ FlowID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.DeleteWorkflow(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2DeleteWorkflowRequest](../../models/operations/v2deleteworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2DeleteWorkflowResponse](../../models/operations/v2deleteworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## RunWorkflow
+
+Run workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2RunWorkflowRequest{
+ WorkflowID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.RunWorkflow(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2RunWorkflowResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2RunWorkflowRequest](../../models/operations/v2runworkflowrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2RunWorkflowResponse](../../models/operations/v2runworkflowresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## ListInstances
+
+List instances of a workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2ListInstancesRequest{
+ Cursor: openapi.String("aHR0cHM6Ly9nLnBhZ2UvTmVrby1SYW1lbj9zaGFyZQ=="),
+ PageSize: openapi.Int64(100),
+ WorkflowID: openapi.String("xxx"),
+ Running: openapi.Bool(true),
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.ListInstances(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2ListRunsResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2ListInstancesRequest](../../models/operations/v2listinstancesrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2ListInstancesResponse](../../models/operations/v2listinstancesresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetInstance
+
+Get a workflow instance by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2GetInstanceRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.GetInstance(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2GetWorkflowInstanceResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2GetInstanceRequest](../../models/operations/v2getinstancerequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2GetInstanceResponse](../../models/operations/v2getinstanceresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## SendEvent
+
+Send an event to a running workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2SendEventRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.SendEvent(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2SendEventRequest](../../models/operations/v2sendeventrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2SendEventResponse](../../models/operations/v2sendeventresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## CancelEvent
+
+Cancel a running workflow
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2CancelEventRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.CancelEvent(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2CancelEventRequest](../../models/operations/v2canceleventrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2CancelEventResponse](../../models/operations/v2canceleventresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetInstanceHistory
+
+Get a workflow instance history by id
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2GetInstanceHistoryRequest{
+ InstanceID: "xxx",
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.GetInstanceHistory(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2GetWorkflowInstanceHistoryResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2GetInstanceHistoryRequest](../../models/operations/v2getinstancehistoryrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2GetInstanceHistoryResponse](../../models/operations/v2getinstancehistoryresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
+
+## GetInstanceStageHistory
+
+Get a workflow instance stage history
+
+### Example Usage
+
+```go
+package main
+
+import(
+ "openapi/models/components"
+ "openapi"
+ "openapi/models/operations"
+ "context"
+ "log"
+)
+
+func main() {
+ s := openapi.New(
+ openapi.WithSecurity(components.Security{
+ ClientID: "",
+ ClientSecret: "",
+ }),
+ )
+ request := operations.V2GetInstanceStageHistoryRequest{
+ InstanceID: "xxx",
+ Number: 0,
+ }
+ ctx := context.Background()
+ res, err := s.Orchestration.V2.GetInstanceStageHistory(ctx, request)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if res.V2GetWorkflowInstanceHistoryStageResponse != nil {
+ // handle response
+ }
+}
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
+| `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. |
+| `request` | [operations.V2GetInstanceStageHistoryRequest](../../models/operations/v2getinstancestagehistoryrequest.md) | :heavy_check_mark: | The request object to use for the request. |
+| `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. |
+
+
+### Response
+
+**[*operations.V2GetInstanceStageHistoryResponse](../../models/operations/v2getinstancestagehistoryresponse.md), error**
+| Error Object | Status Code | Content Type |
+| ------------------ | ------------------ | ------------------ |
+| sdkerrors.V2Error | default | application/json |
+| sdkerrors.SDKError | 4xx-5xx | */* |
diff --git a/pkg/client/go.mod b/pkg/client/go.mod
new file mode 100644
index 0000000..180f4dd
--- /dev/null
+++ b/pkg/client/go.mod
@@ -0,0 +1,10 @@
+
+module openapi
+
+go 1.20
+
+require (
+ github.com/cenkalti/backoff/v4 v4.2.0
+ github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05
+ github.com/spyzhov/ajson v0.8.0
+)
diff --git a/pkg/client/go.sum b/pkg/client/go.sum
new file mode 100644
index 0000000..0fee03f
--- /dev/null
+++ b/pkg/client/go.sum
@@ -0,0 +1,3 @@
+github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
+github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05/go.mod h1:M9R1FoZ3y//hwwnJtO51ypFGwm8ZfpxPT/ZLtO1mcgQ=
+github.com/spyzhov/ajson v0.8.0/go.mod h1:63V+CGM6f1Bu/p4nLIN8885ojBdt88TbLoSFzyqMuVA=
diff --git a/pkg/client/internal/hooks/clientcredentials.go b/pkg/client/internal/hooks/clientcredentials.go
new file mode 100644
index 0000000..cde7c67
--- /dev/null
+++ b/pkg/client/internal/hooks/clientcredentials.go
@@ -0,0 +1,251 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package hooks
+
+import (
+ "bytes"
+ "context"
+ "crypto/md5"
+ "encoding/hex"
+ "encoding/json"
+ "fmt"
+ "io"
+ "net/http"
+ "net/url"
+ "openapi/models/components"
+ "strings"
+ "time"
+)
+
+type session struct {
+ Credentials *credentials
+ Token string
+ ExpiresAt *int64
+ Scopes []string
+}
+
+type tokenResponse struct {
+ AccessToken string `json:"access_token"`
+ TokenType string `json:"token_type"`
+ ExpiresIn *int64 `json:"expires_in"`
+}
+
+type credentials struct {
+ ClientID string
+ ClientSecret string
+ TokenURL string
+}
+
+type clientCredentialsHook struct {
+ baseURL string
+ client HTTPClient
+ sessions map[string]*session
+}
+
+var (
+ _ sdkInitHook = (*clientCredentialsHook)(nil)
+ _ beforeRequestHook = (*clientCredentialsHook)(nil)
+ _ afterErrorHook = (*clientCredentialsHook)(nil)
+)
+
+func NewClientCredentialsHook() *clientCredentialsHook {
+ return &clientCredentialsHook{
+ sessions: make(map[string]*session),
+ }
+}
+
+func (c *clientCredentialsHook) SDKInit(baseURL string, client HTTPClient) (string, HTTPClient) {
+ c.baseURL = baseURL
+ c.client = client
+ return baseURL, client
+}
+
+func (c *clientCredentialsHook) BeforeRequest(ctx BeforeRequestContext, req *http.Request) (*http.Request, error) {
+ if ctx.OAuth2Scopes == nil {
+ // OAuth2 not in use
+ return req, nil
+ }
+
+ credentials, err := c.getCredentials(ctx.Context, ctx.SecuritySource)
+ if err != nil {
+ return nil, &FailEarly{Cause: err}
+ }
+ if credentials == nil {
+ return req, err
+ }
+
+ sessionKey := getSessionKey(credentials.ClientID, credentials.ClientSecret)
+ sess, ok := c.sessions[sessionKey]
+ if !ok || !hasRequiredScopes(sess.Scopes, ctx.OAuth2Scopes) || hasTokenExpired(sess.ExpiresAt) {
+ s, err := c.doTokenRequest(ctx.Context, credentials, getScopes(ctx.OAuth2Scopes, sess))
+ if err != nil {
+ return nil, fmt.Errorf("failed to get token: %w", err)
+ }
+
+ c.sessions[sessionKey] = s
+ sess = s
+ }
+
+ req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", sess.Token))
+
+ return req, nil
+}
+
+func (c *clientCredentialsHook) AfterError(ctx AfterErrorContext, res *http.Response, err error) (*http.Response, error) {
+ if ctx.OAuth2Scopes == nil {
+ // OAuth2 not in use
+ return res, err
+ }
+
+ // We don't want to refresh the token if the error is not related to the token
+ if err != nil {
+ return res, err
+ }
+
+ credentials, err := c.getCredentials(ctx.Context, ctx.SecuritySource)
+ if err != nil {
+ return nil, &FailEarly{Cause: err}
+ }
+ if credentials == nil {
+ return res, err
+ }
+
+ if res != nil && res.StatusCode == http.StatusUnauthorized {
+ sessionKey := getSessionKey(credentials.ClientID, credentials.ClientSecret)
+ delete(c.sessions, sessionKey)
+ }
+
+ return res, err
+}
+
+func (c *clientCredentialsHook) doTokenRequest(ctx context.Context, credentials *credentials, scopes []string) (*session, error) {
+ values := url.Values{}
+ values.Set("grant_type", "client_credentials")
+ values.Set("client_id", credentials.ClientID)
+ values.Set("client_secret", credentials.ClientSecret)
+
+ if len(scopes) > 0 {
+ values.Set("scope", strings.Join(scopes, " "))
+ }
+
+ tokenURL := credentials.TokenURL
+ u, err := url.Parse(tokenURL)
+ if err != nil {
+ return nil, fmt.Errorf("failed to parse token URL: %w", err)
+ }
+ if !u.IsAbs() {
+ tokenURL, err = url.JoinPath(c.baseURL, tokenURL)
+ if err != nil {
+ return nil, fmt.Errorf("failed to parse token URL: %w", err)
+ }
+ }
+
+ req, err := http.NewRequestWithContext(ctx, http.MethodPost, tokenURL, bytes.NewBufferString(values.Encode()))
+ if err != nil {
+ return nil, fmt.Errorf("failed to create token request: %w", err)
+ }
+
+ req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
+
+ res, err := c.client.Do(req)
+ if err != nil {
+ return nil, fmt.Errorf("failed to send token request: %w", err)
+ }
+ defer res.Body.Close()
+
+ if res.StatusCode < 200 || res.StatusCode >= 300 {
+ body, _ := io.ReadAll(res.Body)
+ return nil, fmt.Errorf("unexpected status code: %d: %s", res.StatusCode, body)
+ }
+
+ var tokenRes tokenResponse
+ if err := json.NewDecoder(res.Body).Decode(&tokenRes); err != nil {
+ return nil, fmt.Errorf("failed to decode token response: %w", err)
+ }
+
+ if tokenRes.TokenType != "Bearer" {
+ return nil, fmt.Errorf("unexpected token type: %s", tokenRes.TokenType)
+ }
+
+ var expiresAt *int64
+ if tokenRes.ExpiresIn != nil {
+ expiresAt = new(int64)
+ *expiresAt = time.Now().Unix() + *tokenRes.ExpiresIn
+ }
+
+ return &session{
+ Credentials: credentials,
+ Token: tokenRes.AccessToken,
+ ExpiresAt: expiresAt,
+ Scopes: scopes,
+ }, nil
+}
+
+func (c *clientCredentialsHook) getCredentials(ctx context.Context, source func(ctx context.Context) (interface{}, error)) (*credentials, error) {
+ if source == nil {
+ return nil, nil
+ }
+
+ sec, err := source(ctx)
+ if err != nil {
+ return nil, err
+ }
+
+ security, ok := sec.(components.Security)
+
+ if !ok {
+ return nil, fmt.Errorf("unexpected security type: %T", sec)
+ }
+
+ return &credentials{
+ ClientID: security.ClientID,
+ ClientSecret: security.ClientSecret,
+ TokenURL: security.GetTokenURL(),
+ }, nil
+}
+
+func getSessionKey(clientID, clientSecret string) string {
+ key := fmt.Sprintf("%s:%s", clientID, clientSecret)
+ hash := md5.Sum([]byte(key))
+ return hex.EncodeToString(hash[:])
+}
+
+func hasRequiredScopes(scopes []string, requiredScopes []string) bool {
+ for _, requiredScope := range requiredScopes {
+ found := false
+ for _, scope := range scopes {
+ if scope == requiredScope {
+ found = true
+ break
+ }
+ }
+ if !found {
+ return false
+ }
+ }
+ return true
+}
+
+func getScopes(requiredScopes []string, sess *session) []string {
+ scopes := requiredScopes
+ if sess != nil {
+ for _, scope := range sess.Scopes {
+ found := false
+ for _, requiredScope := range requiredScopes {
+ if scope == requiredScope {
+ found = true
+ break
+ }
+ }
+ if !found {
+ scopes = append(scopes, scope)
+ }
+ }
+ }
+
+ return scopes
+}
+
+func hasTokenExpired(expiresAt *int64) bool {
+ return expiresAt == nil || time.Now().Unix()+60 >= *expiresAt
+}
diff --git a/pkg/client/internal/hooks/hooks.go b/pkg/client/internal/hooks/hooks.go
new file mode 100644
index 0000000..a1fbccf
--- /dev/null
+++ b/pkg/client/internal/hooks/hooks.go
@@ -0,0 +1,152 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package hooks
+
+import (
+ "context"
+ "errors"
+ "net/http"
+)
+
+type FailEarly struct {
+ Cause error
+}
+
+var _ error = (*FailEarly)(nil)
+
+func (f *FailEarly) Error() string {
+ return f.Cause.Error()
+}
+
+// HTTPClient provides an interface for supplying the SDK with a custom HTTP client
+type HTTPClient interface {
+ Do(req *http.Request) (*http.Response, error)
+}
+
+type HookContext struct {
+ Context context.Context
+ OperationID string
+ OAuth2Scopes []string
+ SecuritySource func(context.Context) (interface{}, error)
+}
+
+type BeforeRequestContext struct {
+ HookContext
+}
+
+type AfterSuccessContext struct {
+ HookContext
+}
+
+type AfterErrorContext struct {
+ HookContext
+}
+
+// sdkInitHook is called when the SDK is initializing. The hook can modify and return a new baseURL and HTTP client to be used by the SDK.
+type sdkInitHook interface {
+ SDKInit(baseURL string, client HTTPClient) (string, HTTPClient)
+}
+
+// beforeRequestHook is called before the SDK sends a request. The hook can modify the request before it is sent or return an error to stop the request from being sent.
+type beforeRequestHook interface {
+ BeforeRequest(hookCtx BeforeRequestContext, req *http.Request) (*http.Request, error)
+}
+
+// afterSuccessHook is called after the SDK receives a response. The hook can modify the response before it is handled or return an error to stop the response from being handled.
+type afterSuccessHook interface {
+ AfterSuccess(hookCtx AfterSuccessContext, res *http.Response) (*http.Response, error)
+}
+
+// afterErrorHook is called after the SDK encounters an error, or a non-successful response. The hook can modify the response if available otherwise modify the error.
+// All afterErrorHook hooks are called and returning an error won't stop the other hooks from being called. But if you want to stop the other hooks from being called, you can return a FailEarly error wrapping your error.
+type afterErrorHook interface {
+ AfterError(hookCtx AfterErrorContext, res *http.Response, err error) (*http.Response, error)
+}
+
+type Hooks struct {
+ sdkInitHooks []sdkInitHook
+ beforeRequestHook []beforeRequestHook
+ afterSuccessHook []afterSuccessHook
+ afterErrorHook []afterErrorHook
+}
+
+func New() *Hooks {
+ cc := NewClientCredentialsHook()
+
+ h := &Hooks{
+ sdkInitHooks: []sdkInitHook{
+ cc,
+ },
+ beforeRequestHook: []beforeRequestHook{
+ cc,
+ },
+ afterSuccessHook: []afterSuccessHook{},
+ afterErrorHook: []afterErrorHook{
+ cc,
+ },
+ }
+
+ initHooks(h)
+
+ return h
+}
+
+// registerSDKInitHook registers a hook to be used by the SDK for the initialization event.
+func (h *Hooks) registerSDKInitHook(hook sdkInitHook) {
+ h.sdkInitHooks = append(h.sdkInitHooks, hook)
+}
+
+// registerBeforeRequestHook registers a hook to be used by the SDK for the before request event.
+func (h *Hooks) registerBeforeRequestHook(hook beforeRequestHook) {
+ h.beforeRequestHook = append(h.beforeRequestHook, hook)
+}
+
+// registerAfterSuccessHook registers a hook to be used by the SDK for the after success event.
+func (h *Hooks) registerAfterSuccessHook(hook afterSuccessHook) {
+ h.afterSuccessHook = append(h.afterSuccessHook, hook)
+}
+
+// registerAfterErrorHook registers a hook to be used by the SDK for the after error event.
+func (h *Hooks) registerAfterErrorHook(hook afterErrorHook) {
+ h.afterErrorHook = append(h.afterErrorHook, hook)
+}
+
+func (h *Hooks) SDKInit(baseURL string, client HTTPClient) (string, HTTPClient) {
+ for _, hook := range h.sdkInitHooks {
+ baseURL, client = hook.SDKInit(baseURL, client)
+ }
+ return baseURL, client
+}
+
+func (h *Hooks) BeforeRequest(hookCtx BeforeRequestContext, req *http.Request) (*http.Request, error) {
+ for _, hook := range h.beforeRequestHook {
+ var err error
+ req, err = hook.BeforeRequest(hookCtx, req)
+ if err != nil {
+ return req, err
+ }
+ }
+ return req, nil
+}
+
+func (h *Hooks) AfterSuccess(hookCtx AfterSuccessContext, res *http.Response) (*http.Response, error) {
+ for _, hook := range h.afterSuccessHook {
+ var err error
+ res, err = hook.AfterSuccess(hookCtx, res)
+ if err != nil {
+ return res, err
+ }
+ }
+ return res, nil
+}
+
+func (h *Hooks) AfterError(hookCtx AfterErrorContext, res *http.Response, err error) (*http.Response, error) {
+ for _, hook := range h.afterErrorHook {
+ res, err = hook.AfterError(hookCtx, res, err)
+ var fe *FailEarly
+ if errors.As(err, &fe) {
+ return nil, fe.Cause
+ }
+ }
+ return res, err
+}
diff --git a/pkg/client/internal/hooks/registration.go b/pkg/client/internal/hooks/registration.go
new file mode 100644
index 0000000..fa131be
--- /dev/null
+++ b/pkg/client/internal/hooks/registration.go
@@ -0,0 +1,18 @@
+package hooks
+
+/*
+ * This file is only ever generated once on the first generation and then is free to be modified.
+ * Any hooks you wish to add should be registered in the initHooks function. Feel free to define
+ * your hooks in this file or in separate files in the hooks package.
+ *
+ * Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance.
+ */
+
+func initHooks(h *Hooks) {
+ // exampleHook := &ExampleHook{}
+
+ // h.registerSDKInitHook(exampleHook)
+ // h.registerBeforeRequestHook(exampleHook)
+ // h.registerAfterErrorHook(exampleHook)
+ // h.registerAfterSuccessHook(exampleHook)
+}
diff --git a/pkg/client/internal/utils/contenttype.go b/pkg/client/internal/utils/contenttype.go
new file mode 100644
index 0000000..f6487e0
--- /dev/null
+++ b/pkg/client/internal/utils/contenttype.go
@@ -0,0 +1,37 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "fmt"
+ "mime"
+ "strings"
+)
+
+func MatchContentType(contentType string, pattern string) bool {
+ if contentType == "" {
+ contentType = "application/octet-stream"
+ }
+
+ if contentType == pattern || pattern == "*" || pattern == "*/*" {
+ return true
+ }
+
+ mediaType, _, err := mime.ParseMediaType(contentType)
+ if err != nil {
+ return false
+ }
+
+ if mediaType == pattern {
+ return true
+ }
+
+ parts := strings.Split(mediaType, "/")
+ if len(parts) == 2 {
+ if fmt.Sprintf("%s/*", parts[0]) == pattern || fmt.Sprintf("*/%s", parts[1]) == pattern {
+ return true
+ }
+ }
+
+ return false
+}
diff --git a/pkg/client/internal/utils/form.go b/pkg/client/internal/utils/form.go
new file mode 100644
index 0000000..a01d3a4
--- /dev/null
+++ b/pkg/client/internal/utils/form.go
@@ -0,0 +1,117 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "fmt"
+ "math/big"
+ "net/url"
+ "reflect"
+ "strings"
+ "time"
+
+ "github.com/ericlagergren/decimal"
+
+ "openapi/types"
+)
+
+func populateForm(paramName string, explode bool, objType reflect.Type, objValue reflect.Value, delimiter string, getFieldName func(reflect.StructField) string) url.Values {
+
+ formValues := url.Values{}
+
+ if isNil(objType, objValue) {
+ return formValues
+ }
+
+ if objType.Kind() == reflect.Pointer {
+ objType = objType.Elem()
+ objValue = objValue.Elem()
+ }
+
+ switch objType.Kind() {
+ case reflect.Struct:
+ switch objValue.Interface().(type) {
+ case time.Time:
+ formValues.Add(paramName, valToString(objValue.Interface()))
+ case types.Date:
+ formValues.Add(paramName, valToString(objValue.Interface()))
+ case big.Int:
+ formValues.Add(paramName, valToString(objValue.Interface()))
+ case decimal.Big:
+ formValues.Add(paramName, valToString(objValue.Interface()))
+ default:
+ var items []string
+
+ for i := 0; i < objType.NumField(); i++ {
+ fieldType := objType.Field(i)
+ valType := objValue.Field(i)
+
+ if isNil(fieldType.Type, valType) {
+ continue
+ }
+
+ if valType.Kind() == reflect.Pointer {
+ valType = valType.Elem()
+ }
+
+ fieldName := getFieldName(fieldType)
+ if fieldName == "" {
+ continue
+ }
+
+ if explode {
+ formValues.Add(fieldName, valToString(valType.Interface()))
+ } else {
+ items = append(items, fmt.Sprintf("%s%s%s", fieldName, delimiter, valToString(valType.Interface())))
+ }
+ }
+
+ if len(items) > 0 {
+ formValues.Add(paramName, strings.Join(items, delimiter))
+ }
+ }
+ case reflect.Map:
+ items := []string{}
+
+ iter := objValue.MapRange()
+ for iter.Next() {
+ if explode {
+ formValues.Add(iter.Key().String(), valToString(iter.Value().Interface()))
+ } else {
+ items = append(items, fmt.Sprintf("%s%s%s", iter.Key().String(), delimiter, valToString(iter.Value().Interface())))
+ }
+ }
+
+ if len(items) > 0 {
+ formValues.Add(paramName, strings.Join(items, delimiter))
+ }
+ case reflect.Slice, reflect.Array:
+ values := parseDelimitedArray(explode, objValue, delimiter)
+ for _, v := range values {
+ formValues.Add(paramName, v)
+ }
+ default:
+ formValues.Add(paramName, valToString(objValue.Interface()))
+ }
+
+ return formValues
+}
+
+func parseDelimitedArray(explode bool, objValue reflect.Value, delimiter string) []string {
+ values := []string{}
+ items := []string{}
+
+ for i := 0; i < objValue.Len(); i++ {
+ if explode {
+ values = append(values, valToString(objValue.Index(i).Interface()))
+ } else {
+ items = append(items, valToString(objValue.Index(i).Interface()))
+ }
+ }
+
+ if len(items) > 0 {
+ values = append(values, strings.Join(items, delimiter))
+ }
+
+ return values
+}
diff --git a/pkg/client/internal/utils/headers.go b/pkg/client/internal/utils/headers.go
new file mode 100644
index 0000000..a07608b
--- /dev/null
+++ b/pkg/client/internal/utils/headers.go
@@ -0,0 +1,124 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+ "reflect"
+ "strings"
+)
+
+func PopulateHeaders(_ context.Context, req *http.Request, headers interface{}, globals interface{}) {
+ globalsAlreadyPopulated := populateHeaders(headers, globals, req.Header, []string{})
+ if globals != nil {
+ _ = populateHeaders(globals, nil, req.Header, globalsAlreadyPopulated)
+ }
+}
+
+func populateHeaders(headers interface{}, globals interface{}, reqHeaders http.Header, skipFields []string) []string {
+ headerParamsStructType, headerParamsValType := dereferencePointers(reflect.TypeOf(headers), reflect.ValueOf(headers))
+
+ globalsAlreadyPopulated := []string{}
+
+ for i := 0; i < headerParamsStructType.NumField(); i++ {
+ fieldType := headerParamsStructType.Field(i)
+ valType := headerParamsValType.Field(i)
+
+ if contains(skipFields, fieldType.Name) {
+ continue
+ }
+
+ if globals != nil {
+ var globalFound bool
+ fieldType, valType, globalFound = populateFromGlobals(fieldType, valType, headerParamTagKey, globals)
+ if globalFound {
+ globalsAlreadyPopulated = append(globalsAlreadyPopulated, fieldType.Name)
+ }
+ }
+
+ tag := parseParamTag(headerParamTagKey, fieldType, "simple", false)
+ if tag == nil {
+ continue
+ }
+
+ value := serializeHeader(fieldType.Type, valType, tag.Explode)
+ if value != "" {
+ reqHeaders.Add(tag.ParamName, value)
+ }
+ }
+
+ return globalsAlreadyPopulated
+}
+
+func serializeHeader(objType reflect.Type, objValue reflect.Value, explode bool) string {
+ if isNil(objType, objValue) {
+ return ""
+ }
+
+ if objType.Kind() == reflect.Pointer {
+ objType = objType.Elem()
+ objValue = objValue.Elem()
+ }
+
+ switch objType.Kind() {
+ case reflect.Struct:
+ items := []string{}
+
+ for i := 0; i < objType.NumField(); i++ {
+ fieldType := objType.Field(i)
+ valType := objValue.Field(i)
+
+ if isNil(fieldType.Type, valType) {
+ continue
+ }
+
+ if fieldType.Type.Kind() == reflect.Pointer {
+ valType = valType.Elem()
+ }
+
+ tag := parseParamTag(headerParamTagKey, fieldType, "simple", false)
+ if tag == nil {
+ continue
+ }
+
+ fieldName := tag.ParamName
+
+ if fieldName == "" {
+ continue
+ }
+
+ if explode {
+ items = append(items, fmt.Sprintf("%s=%s", fieldName, valToString(valType.Interface())))
+ } else {
+ items = append(items, fieldName, valToString(valType.Interface()))
+ }
+ }
+
+ return strings.Join(items, ",")
+ case reflect.Map:
+ items := []string{}
+
+ iter := objValue.MapRange()
+ for iter.Next() {
+ if explode {
+ items = append(items, fmt.Sprintf("%s=%s", iter.Key().String(), valToString(iter.Value().Interface())))
+ } else {
+ items = append(items, iter.Key().String(), valToString(iter.Value().Interface()))
+ }
+ }
+
+ return strings.Join(items, ",")
+ case reflect.Slice, reflect.Array:
+ items := []string{}
+
+ for i := 0; i < objValue.Len(); i++ {
+ items = append(items, valToString(objValue.Index(i).Interface()))
+ }
+
+ return strings.Join(items, ",")
+ default:
+ return valToString(objValue.Interface())
+ }
+}
diff --git a/pkg/client/internal/utils/json.go b/pkg/client/internal/utils/json.go
new file mode 100644
index 0000000..f740dcd
--- /dev/null
+++ b/pkg/client/internal/utils/json.go
@@ -0,0 +1,670 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "math/big"
+ "reflect"
+ "strconv"
+ "strings"
+ "time"
+ "unsafe"
+
+ "openapi/types"
+
+ "github.com/ericlagergren/decimal"
+)
+
+func MarshalJSON(v interface{}, tag reflect.StructTag, topLevel bool) ([]byte, error) {
+ typ, val := dereferencePointers(reflect.TypeOf(v), reflect.ValueOf(v))
+
+ switch {
+ case isModelType(typ):
+ if topLevel {
+ return json.Marshal(v)
+ }
+
+ if isNil(typ, val) {
+ return []byte("null"), nil
+ }
+
+ out := map[string]json.RawMessage{}
+
+ for i := 0; i < typ.NumField(); i++ {
+ field := typ.Field(i)
+ fieldVal := val.Field(i)
+
+ fieldName := field.Name
+
+ omitEmpty := false
+ jsonTag := field.Tag.Get("json")
+ if jsonTag != "" {
+ for _, tag := range strings.Split(jsonTag, ",") {
+ if tag == "omitempty" {
+ omitEmpty = true
+ } else {
+ fieldName = tag
+ }
+ }
+ }
+
+ if isNil(field.Type, fieldVal) && field.Tag.Get("const") == "" {
+ if omitEmpty {
+ continue
+ }
+ }
+
+ if !field.IsExported() && field.Tag.Get("const") == "" {
+ continue
+ }
+
+ additionalProperties := field.Tag.Get("additionalProperties")
+ if fieldName == "-" && additionalProperties == "" {
+ continue
+ }
+
+ if additionalProperties == "true" {
+ if isNil(field.Type, fieldVal) {
+ continue
+ }
+ fieldVal := trueReflectValue(fieldVal)
+ if fieldVal.Type().Kind() != reflect.Map {
+ return nil, fmt.Errorf("additionalProperties must be a map")
+ }
+
+ for _, key := range fieldVal.MapKeys() {
+ r, err := marshalValue(fieldVal.MapIndex(key).Interface(), field.Tag)
+ if err != nil {
+ return nil, err
+ }
+
+ out[key.String()] = r
+ }
+
+ continue
+ }
+
+ var fv interface{}
+
+ if field.IsExported() {
+ fv = fieldVal.Interface()
+ } else {
+ pt := reflect.New(typ).Elem()
+ pt.Set(val)
+
+ pf := pt.Field(i)
+
+ fv = reflect.NewAt(pf.Type(), unsafe.Pointer(pf.UnsafeAddr())).Elem().Interface()
+ }
+
+ r, err := marshalValue(fv, field.Tag)
+ if err != nil {
+ return nil, err
+ }
+
+ out[fieldName] = r
+ }
+
+ return json.Marshal(out)
+ default:
+ return marshalValue(v, tag)
+ }
+}
+
+func UnmarshalJSON(b []byte, v interface{}, tag reflect.StructTag, topLevel bool, disallowUnknownFields bool) error {
+ if reflect.TypeOf(v).Kind() != reflect.Ptr {
+ return fmt.Errorf("v must be a pointer")
+ }
+
+ typ, val := dereferencePointers(reflect.TypeOf(v), reflect.ValueOf(v))
+
+ switch {
+ case isModelType(typ):
+ if topLevel || bytes.Equal(b, []byte("null")) {
+ d := json.NewDecoder(bytes.NewReader(b))
+ if disallowUnknownFields {
+ d.DisallowUnknownFields()
+ }
+ return d.Decode(v)
+ }
+
+ var unmarhsaled map[string]json.RawMessage
+
+ if err := json.Unmarshal(b, &unmarhsaled); err != nil {
+ return err
+ }
+
+ var additionalPropertiesField *reflect.StructField
+ var additionalPropertiesValue *reflect.Value
+
+ for i := 0; i < typ.NumField(); i++ {
+ field := typ.Field(i)
+ fieldVal := val.Field(i)
+
+ fieldName := field.Name
+
+ jsonTag := field.Tag.Get("json")
+ if jsonTag != "" {
+ for _, tag := range strings.Split(jsonTag, ",") {
+ if tag != "omitempty" {
+ fieldName = tag
+ }
+ }
+ }
+
+ if field.Tag.Get("additionalProperties") == "true" {
+ additionalPropertiesField = &field
+ additionalPropertiesValue = &fieldVal
+ continue
+ }
+
+ // If we receive a value for a const field ignore it but mark it as unmarshaled
+ if field.Tag.Get("const") != "" {
+ if r, ok := unmarhsaled[fieldName]; ok {
+ val := string(r)
+ if strings.HasPrefix(val, `"`) && strings.HasSuffix(val, `"`) {
+ val = val[1 : len(val)-1]
+ }
+ if val != field.Tag.Get("const") {
+ return fmt.Errorf("const field %s does not match expected value %s", fieldName, field.Tag.Get("const"))
+ }
+
+ delete(unmarhsaled, fieldName)
+ }
+ } else if !field.IsExported() {
+ continue
+ }
+
+ value, ok := unmarhsaled[fieldName]
+ if !ok {
+ defaultTag := field.Tag.Get("default")
+ if defaultTag != "" {
+ value = handleDefaultConstValue(defaultTag, fieldVal.Interface(), field.Tag)
+ ok = true
+ }
+ } else {
+ delete(unmarhsaled, fieldName)
+ }
+
+ if ok {
+ if err := unmarshalValue(value, fieldVal, field.Tag, disallowUnknownFields); err != nil {
+ return err
+ }
+ }
+ }
+
+ keys := make([]string, 0, len(unmarhsaled))
+ for k := range unmarhsaled {
+ keys = append(keys, k)
+ }
+
+ if len(keys) > 0 {
+ if disallowUnknownFields && (additionalPropertiesField == nil || additionalPropertiesValue == nil) {
+ return fmt.Errorf("unknown fields: %v", keys)
+ }
+
+ if additionalPropertiesField != nil && additionalPropertiesValue != nil {
+ typeOfMap := additionalPropertiesField.Type
+ if additionalPropertiesValue.Type().Kind() == reflect.Interface {
+ typeOfMap = reflect.TypeOf(map[string]interface{}{})
+ } else if additionalPropertiesValue.Type().Kind() != reflect.Map {
+ return fmt.Errorf("additionalProperties must be a map")
+ }
+
+ mapValue := reflect.MakeMap(typeOfMap)
+
+ for key, value := range unmarhsaled {
+ val := reflect.New(typeOfMap.Elem())
+
+ if err := unmarshalValue(value, val, additionalPropertiesField.Tag, disallowUnknownFields); err != nil {
+ return err
+ }
+
+ if val.Elem().Type().String() == typeOfMap.Elem().String() {
+ mapValue.SetMapIndex(reflect.ValueOf(key), val.Elem())
+ } else {
+ mapValue.SetMapIndex(reflect.ValueOf(key), trueReflectValue(val))
+ }
+
+ }
+ if additionalPropertiesValue.Type().Kind() == reflect.Interface {
+ additionalPropertiesValue.Set(mapValue)
+ } else {
+ additionalPropertiesValue.Set(mapValue)
+ }
+ }
+ }
+ default:
+ return unmarshalValue(b, reflect.ValueOf(v), tag, disallowUnknownFields)
+ }
+
+ return nil
+}
+
+func marshalValue(v interface{}, tag reflect.StructTag) (json.RawMessage, error) {
+ constTag := tag.Get("const")
+ if constTag != "" {
+ return handleDefaultConstValue(constTag, v, tag), nil
+ }
+
+ if isNil(reflect.TypeOf(v), reflect.ValueOf(v)) {
+ defaultTag := tag.Get("default")
+ if defaultTag != "" {
+ return handleDefaultConstValue(defaultTag, v, tag), nil
+ }
+
+ return []byte("null"), nil
+ }
+
+ typ, val := dereferencePointers(reflect.TypeOf(v), reflect.ValueOf(v))
+ switch typ.Kind() {
+ case reflect.Int64:
+ format := tag.Get("integer")
+ if format == "string" {
+ b := val.Interface().(int64)
+ return []byte(fmt.Sprintf(`"%d"`, b)), nil
+ }
+ case reflect.Float64:
+ format := tag.Get("number")
+ if format == "string" {
+ b := val.Interface().(float64)
+ return []byte(fmt.Sprintf(`"%g"`, b)), nil
+ }
+ case reflect.Map:
+ if isNil(typ, val) {
+ return []byte("null"), nil
+ }
+
+ out := map[string]json.RawMessage{}
+
+ for _, key := range val.MapKeys() {
+ itemVal := val.MapIndex(key)
+
+ if isNil(itemVal.Type(), itemVal) {
+ out[key.String()] = []byte("null")
+ continue
+ }
+
+ r, err := marshalValue(itemVal.Interface(), tag)
+ if err != nil {
+ return nil, err
+ }
+
+ out[key.String()] = r
+ }
+
+ return json.Marshal(out)
+ case reflect.Slice, reflect.Array:
+ if isNil(typ, val) {
+ return []byte("null"), nil
+ }
+
+ out := []json.RawMessage{}
+
+ for i := 0; i < val.Len(); i++ {
+ itemVal := val.Index(i)
+
+ if isNil(itemVal.Type(), itemVal) {
+ out = append(out, []byte("null"))
+ continue
+ }
+
+ r, err := marshalValue(itemVal.Interface(), tag)
+ if err != nil {
+ return nil, err
+ }
+
+ out = append(out, r)
+ }
+
+ return json.Marshal(out)
+ case reflect.Struct:
+ switch typ {
+ case reflect.TypeOf(time.Time{}):
+ return []byte(fmt.Sprintf(`"%s"`, val.Interface().(time.Time).Format(time.RFC3339Nano))), nil
+ case reflect.TypeOf(big.Int{}):
+ format := tag.Get("bigint")
+ if format == "string" {
+ b := val.Interface().(big.Int)
+ return []byte(fmt.Sprintf(`"%s"`, (&b).String())), nil
+ }
+ case reflect.TypeOf(decimal.Big{}):
+ format := tag.Get("decimal")
+ if format == "number" {
+ b := val.Interface().(decimal.Big)
+ f, ok := (&b).Float64()
+ if ok {
+ return []byte(b.String()), nil
+ }
+
+ return []byte(fmt.Sprintf(`%f`, f)), nil
+ }
+ }
+ }
+
+ return json.Marshal(v)
+}
+
+func handleDefaultConstValue(tagValue string, val interface{}, tag reflect.StructTag) json.RawMessage {
+ if tagValue == "null" {
+ return []byte("null")
+ }
+
+ typ := dereferenceTypePointer(reflect.TypeOf(val))
+ switch typ {
+ case reflect.TypeOf(time.Time{}):
+ return []byte(fmt.Sprintf(`"%s"`, tagValue))
+ case reflect.TypeOf(big.Int{}):
+ bigIntTag := tag.Get("bigint")
+ if bigIntTag == "string" {
+ return []byte(fmt.Sprintf(`"%s"`, tagValue))
+ }
+ case reflect.TypeOf(int64(0)):
+ format := tag.Get("integer")
+ if format == "string" {
+ return []byte(fmt.Sprintf(`"%s"`, tagValue))
+ }
+ case reflect.TypeOf(float64(0)):
+ format := tag.Get("number")
+ if format == "string" {
+ return []byte(fmt.Sprintf(`"%s"`, tagValue))
+ }
+ case reflect.TypeOf(decimal.Big{}):
+ decimalTag := tag.Get("decimal")
+ if decimalTag != "number" {
+ return []byte(fmt.Sprintf(`"%s"`, tagValue))
+ }
+ case reflect.TypeOf(types.Date{}):
+ return []byte(fmt.Sprintf(`"%s"`, tagValue))
+ default:
+ if typ.Kind() == reflect.String {
+ return []byte(fmt.Sprintf("%q", tagValue))
+ }
+ }
+
+ return []byte(tagValue)
+}
+
+func unmarshalValue(value json.RawMessage, v reflect.Value, tag reflect.StructTag, disallowUnknownFields bool) error {
+ if bytes.Equal(value, []byte("null")) {
+ if v.CanAddr() {
+ return json.Unmarshal(value, v.Addr().Interface())
+ } else {
+ return json.Unmarshal(value, v.Interface())
+ }
+ }
+
+ typ := dereferenceTypePointer(v.Type())
+
+ switch typ.Kind() {
+ case reflect.Int64:
+ var b int64
+
+ format := tag.Get("integer")
+ if format == "string" {
+ var s string
+ if err := json.Unmarshal(value, &s); err != nil {
+ return err
+ }
+
+ var err error
+ b, err = strconv.ParseInt(s, 10, 64)
+ if err != nil {
+ return fmt.Errorf("failed to parse string as int64: %w", err)
+ }
+ if v.Kind() == reflect.Ptr {
+ if v.IsNil() {
+ v.Set(reflect.New(typ))
+ }
+ v = v.Elem()
+ }
+
+ v.Set(reflect.ValueOf(b))
+ return nil
+ }
+ case reflect.Float64:
+ var b float64
+
+ format := tag.Get("number")
+ if format == "string" {
+ var s string
+ if err := json.Unmarshal(value, &s); err != nil {
+ return err
+ }
+
+ var err error
+ b, err = strconv.ParseFloat(s, 64)
+ if err != nil {
+ return fmt.Errorf("failed to parse string as float64: %w", err)
+ }
+
+ if v.Kind() == reflect.Ptr {
+ if v.IsNil() {
+ v.Set(reflect.New(typ))
+ }
+ v = v.Elem()
+ }
+
+ v.Set(reflect.ValueOf(b))
+ return nil
+ }
+ case reflect.Map:
+ if bytes.Equal(value, []byte("null")) || !isComplexValueType(dereferenceTypePointer(typ.Elem())) {
+ if v.CanAddr() {
+ return json.Unmarshal(value, v.Addr().Interface())
+ } else {
+ return json.Unmarshal(value, v.Interface())
+ }
+ }
+
+ var unmarhsaled map[string]json.RawMessage
+
+ if err := json.Unmarshal(value, &unmarhsaled); err != nil {
+ return err
+ }
+
+ m := reflect.MakeMap(typ)
+
+ for k, value := range unmarhsaled {
+ itemVal := reflect.New(typ.Elem())
+
+ if err := unmarshalValue(value, itemVal, tag, disallowUnknownFields); err != nil {
+ return err
+ }
+
+ m.SetMapIndex(reflect.ValueOf(k), itemVal.Elem())
+ }
+
+ v.Set(m)
+ return nil
+ case reflect.Slice, reflect.Array:
+ if bytes.Equal(value, []byte("null")) || !isComplexValueType(dereferenceTypePointer(typ.Elem())) {
+ if v.CanAddr() {
+ return json.Unmarshal(value, v.Addr().Interface())
+ } else {
+ return json.Unmarshal(value, v.Interface())
+ }
+ }
+
+ var unmarhsaled []json.RawMessage
+
+ if err := json.Unmarshal(value, &unmarhsaled); err != nil {
+ return err
+ }
+
+ arrVal := v
+
+ for _, value := range unmarhsaled {
+ itemVal := reflect.New(typ.Elem())
+
+ if err := unmarshalValue(value, itemVal, tag, disallowUnknownFields); err != nil {
+ return err
+ }
+
+ arrVal = reflect.Append(arrVal, itemVal.Elem())
+ }
+
+ v.Set(arrVal)
+ return nil
+ case reflect.Struct:
+ switch typ {
+ case reflect.TypeOf(time.Time{}):
+ var s string
+ if err := json.Unmarshal(value, &s); err != nil {
+ return err
+ }
+
+ t, err := time.Parse(time.RFC3339Nano, s)
+ if err != nil {
+ return fmt.Errorf("failed to parse string as time.Time: %w", err)
+ }
+
+ if v.Kind() == reflect.Ptr {
+ if v.IsNil() {
+ v.Set(reflect.New(typ))
+ }
+ v = v.Elem()
+ }
+
+ v.Set(reflect.ValueOf(t))
+ return nil
+ case reflect.TypeOf(big.Int{}):
+ var b *big.Int
+
+ format := tag.Get("bigint")
+ if format == "string" {
+ var s string
+ if err := json.Unmarshal(value, &s); err != nil {
+ return err
+ }
+
+ var ok bool
+ b, ok = new(big.Int).SetString(s, 10)
+ if !ok {
+ return fmt.Errorf("failed to parse string as big.Int")
+ }
+ } else {
+ if err := json.Unmarshal(value, &b); err != nil {
+ return err
+ }
+ }
+
+ if v.Kind() == reflect.Ptr && v.Elem().Kind() == reflect.Ptr {
+ v = v.Elem()
+ }
+
+ v.Set(reflect.ValueOf(b))
+ return nil
+ case reflect.TypeOf(decimal.Big{}):
+ var d *decimal.Big
+ format := tag.Get("decimal")
+ if format == "number" {
+ var ok bool
+ d, ok = new(decimal.Big).SetString(string(value))
+ if !ok {
+ return fmt.Errorf("failed to parse number as decimal.Big")
+ }
+ } else {
+ if err := json.Unmarshal(value, &d); err != nil {
+ return err
+ }
+ }
+
+ if v.Kind() == reflect.Ptr && v.Elem().Kind() == reflect.Ptr {
+ v = v.Elem()
+ }
+
+ v.Set(reflect.ValueOf(d))
+ return nil
+ case reflect.TypeOf(types.Date{}):
+ var s string
+
+ if err := json.Unmarshal(value, &s); err != nil {
+ return err
+ }
+
+ d, err := types.DateFromString(s)
+ if err != nil {
+ return fmt.Errorf("failed to parse string as types.Date: %w", err)
+ }
+
+ if v.Kind() == reflect.Ptr {
+ if v.IsNil() {
+ v.Set(reflect.New(typ))
+ }
+ v = v.Elem()
+ }
+
+ v.Set(reflect.ValueOf(d))
+ return nil
+ }
+ }
+
+ var val interface{}
+
+ if v.CanAddr() {
+ val = v.Addr().Interface()
+ } else {
+ val = v.Interface()
+ }
+
+ d := json.NewDecoder(bytes.NewReader(value))
+ if disallowUnknownFields {
+ d.DisallowUnknownFields()
+ }
+ return d.Decode(val)
+}
+
+func dereferencePointers(typ reflect.Type, val reflect.Value) (reflect.Type, reflect.Value) {
+ if typ.Kind() == reflect.Ptr {
+ typ = typ.Elem()
+ val = val.Elem()
+ } else {
+ return typ, val
+ }
+
+ return dereferencePointers(typ, val)
+}
+
+func dereferenceTypePointer(typ reflect.Type) reflect.Type {
+ if typ.Kind() == reflect.Ptr {
+ typ = typ.Elem()
+ } else {
+ return typ
+ }
+
+ return dereferenceTypePointer(typ)
+}
+
+func isComplexValueType(typ reflect.Type) bool {
+ switch typ.Kind() {
+ case reflect.Struct:
+ switch typ {
+ case reflect.TypeOf(time.Time{}):
+ fallthrough
+ case reflect.TypeOf(big.Int{}):
+ fallthrough
+ case reflect.TypeOf(decimal.Big{}):
+ fallthrough
+ case reflect.TypeOf(types.Date{}):
+ return true
+ }
+ }
+
+ return false
+}
+
+func isModelType(typ reflect.Type) bool {
+ if isComplexValueType(typ) {
+ return false
+ }
+
+ if typ.Kind() == reflect.Struct {
+ return true
+ }
+
+ return false
+}
diff --git a/pkg/client/internal/utils/pathparams.go b/pkg/client/internal/utils/pathparams.go
new file mode 100644
index 0000000..a01f74d
--- /dev/null
+++ b/pkg/client/internal/utils/pathparams.go
@@ -0,0 +1,172 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "context"
+ "fmt"
+ "math/big"
+ "net/url"
+ "reflect"
+ "strings"
+ "time"
+
+ "github.com/ericlagergren/decimal"
+
+ "openapi/types"
+)
+
+func GenerateURL(_ context.Context, serverURL, path string, pathParams interface{}, globals interface{}) (string, error) {
+ uri := strings.TrimSuffix(serverURL, "/") + path
+
+ parsedParameters := map[string]string{}
+
+ globalsAlreadyPopulated, err := populateParsedParameters(pathParams, globals, parsedParameters, []string{})
+ if err != nil {
+ return "", err
+ }
+
+ if globals != nil {
+ _, err = populateParsedParameters(globals, nil, parsedParameters, globalsAlreadyPopulated)
+ if err != nil {
+ return "", err
+ }
+ }
+
+ // TODO should we handle the case where there are no matching path params?
+ return ReplaceParameters(uri, parsedParameters), nil
+}
+
+func populateParsedParameters(pathParams interface{}, globals interface{}, parsedParameters map[string]string, skipFields []string) ([]string, error) {
+ pathParamsStructType, pathParamsValType := dereferencePointers(reflect.TypeOf(pathParams), reflect.ValueOf(pathParams))
+
+ globalsAlreadyPopulated := []string{}
+
+ for i := 0; i < pathParamsStructType.NumField(); i++ {
+ fieldType := pathParamsStructType.Field(i)
+ valType := pathParamsValType.Field(i)
+
+ if contains(skipFields, fieldType.Name) {
+ continue
+ }
+
+ requestTag := getRequestTag(fieldType)
+ if requestTag != nil {
+ continue
+ }
+
+ ppTag := parseParamTag(pathParamTagKey, fieldType, "simple", false)
+ if ppTag == nil {
+ continue
+ }
+
+ if globals != nil {
+ var globalFound bool
+ fieldType, valType, globalFound = populateFromGlobals(fieldType, valType, pathParamTagKey, globals)
+ if globalFound {
+ globalsAlreadyPopulated = append(globalsAlreadyPopulated, fieldType.Name)
+ }
+ }
+
+ if ppTag.Serialization != "" {
+ vals, err := populateSerializedParams(ppTag, fieldType.Type, valType)
+ if err != nil {
+ return nil, err
+ }
+ for k, v := range vals {
+ parsedParameters[k] = url.PathEscape(v)
+ }
+ } else {
+ // TODO: support other styles
+ switch ppTag.Style {
+ case "simple":
+ simpleParams := getSimplePathParams(ppTag.ParamName, fieldType.Type, valType, ppTag.Explode)
+ for k, v := range simpleParams {
+ parsedParameters[k] = v
+ }
+ }
+ }
+ }
+
+ return globalsAlreadyPopulated, nil
+}
+
+func getSimplePathParams(parentName string, objType reflect.Type, objValue reflect.Value, explode bool) map[string]string {
+ pathParams := make(map[string]string)
+
+ if isNil(objType, objValue) {
+ return nil
+ }
+
+ if objType.Kind() == reflect.Ptr {
+ objType = objType.Elem()
+ objValue = objValue.Elem()
+ }
+
+ switch objType.Kind() {
+ case reflect.Array, reflect.Slice:
+ if objValue.Len() == 0 {
+ return nil
+ }
+ var ppVals []string
+ for i := 0; i < objValue.Len(); i++ {
+ ppVals = append(ppVals, valToString(objValue.Index(i).Interface()))
+ }
+ pathParams[parentName] = strings.Join(ppVals, ",")
+ case reflect.Map:
+ if objValue.Len() == 0 {
+ return nil
+ }
+ var ppVals []string
+ objMap := objValue.MapRange()
+ for objMap.Next() {
+ if explode {
+ ppVals = append(ppVals, fmt.Sprintf("%s=%s", objMap.Key().String(), valToString(objMap.Value().Interface())))
+ } else {
+ ppVals = append(ppVals, fmt.Sprintf("%s,%s", objMap.Key().String(), valToString(objMap.Value().Interface())))
+ }
+ }
+ pathParams[parentName] = strings.Join(ppVals, ",")
+ case reflect.Struct:
+ switch objValue.Interface().(type) {
+ case time.Time:
+ pathParams[parentName] = valToString(objValue.Interface())
+ case types.Date:
+ pathParams[parentName] = valToString(objValue.Interface())
+ case big.Int:
+ pathParams[parentName] = valToString(objValue.Interface())
+ case decimal.Big:
+ pathParams[parentName] = valToString(objValue.Interface())
+ default:
+ var ppVals []string
+ for i := 0; i < objType.NumField(); i++ {
+ fieldType := objType.Field(i)
+ valType := objValue.Field(i)
+
+ ppTag := parseParamTag(pathParamTagKey, fieldType, "simple", explode)
+ if ppTag == nil {
+ continue
+ }
+
+ if isNil(fieldType.Type, valType) {
+ continue
+ }
+
+ if fieldType.Type.Kind() == reflect.Pointer {
+ valType = valType.Elem()
+ }
+
+ if explode {
+ ppVals = append(ppVals, fmt.Sprintf("%s=%s", ppTag.ParamName, valToString(valType.Interface())))
+ } else {
+ ppVals = append(ppVals, fmt.Sprintf("%s,%s", ppTag.ParamName, valToString(valType.Interface())))
+ }
+ }
+ pathParams[parentName] = strings.Join(ppVals, ",")
+ }
+ default:
+ pathParams[parentName] = valToString(objValue.Interface())
+ }
+
+ return pathParams
+}
diff --git a/pkg/client/internal/utils/queryparams.go b/pkg/client/internal/utils/queryparams.go
new file mode 100644
index 0000000..6bd2b1a
--- /dev/null
+++ b/pkg/client/internal/utils/queryparams.go
@@ -0,0 +1,259 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "math/big"
+ "net/http"
+ "net/url"
+ "reflect"
+ "time"
+
+ "github.com/ericlagergren/decimal"
+
+ "openapi/types"
+)
+
+func PopulateQueryParams(_ context.Context, req *http.Request, queryParams interface{}, globals interface{}) error {
+ // Query parameters may already be present from overriding URL
+ if req.URL.RawQuery != "" {
+ return nil
+ }
+
+ values := url.Values{}
+
+ globalsAlreadyPopulated, err := populateQueryParams(queryParams, globals, values, []string{})
+ if err != nil {
+ return err
+ }
+
+ if globals != nil {
+ _, err = populateQueryParams(globals, nil, values, globalsAlreadyPopulated)
+ if err != nil {
+ return err
+ }
+ }
+
+ req.URL.RawQuery = values.Encode()
+
+ return nil
+}
+
+func populateQueryParams(queryParams interface{}, globals interface{}, values url.Values, skipFields []string) ([]string, error) {
+ queryParamsStructType, queryParamsValType := dereferencePointers(reflect.TypeOf(queryParams), reflect.ValueOf(queryParams))
+
+ globalsAlreadyPopulated := []string{}
+
+ for i := 0; i < queryParamsStructType.NumField(); i++ {
+ fieldType := queryParamsStructType.Field(i)
+ valType := queryParamsValType.Field(i)
+
+ if contains(skipFields, fieldType.Name) {
+ continue
+ }
+
+ requestTag := getRequestTag(fieldType)
+ if requestTag != nil {
+ continue
+ }
+
+ qpTag := parseQueryParamTag(fieldType)
+ if qpTag == nil {
+ continue
+ }
+
+ if globals != nil {
+ var globalFound bool
+ fieldType, valType, globalFound = populateFromGlobals(fieldType, valType, queryParamTagKey, globals)
+ if globalFound {
+ globalsAlreadyPopulated = append(globalsAlreadyPopulated, fieldType.Name)
+ }
+ }
+
+ if qpTag.Serialization != "" {
+ vals, err := populateSerializedParams(qpTag, fieldType.Type, valType)
+ if err != nil {
+ return nil, err
+ }
+ for k, v := range vals {
+ values.Add(k, v)
+ }
+ } else {
+ switch qpTag.Style {
+ case "deepObject":
+ vals := populateDeepObjectParams(qpTag, fieldType.Type, valType)
+ for k, v := range vals {
+ for _, vv := range v {
+ values.Add(k, vv)
+ }
+ }
+ case "form":
+ vals := populateFormParams(qpTag, fieldType.Type, valType, ",")
+ for k, v := range vals {
+ for _, vv := range v {
+ values.Add(k, vv)
+ }
+ }
+ case "pipeDelimited":
+ vals := populateFormParams(qpTag, fieldType.Type, valType, "|")
+ for k, v := range vals {
+ for _, vv := range v {
+ values.Add(k, vv)
+ }
+ }
+ default:
+ return nil, fmt.Errorf("unsupported style: %s", qpTag.Style)
+ }
+ }
+ }
+
+ return globalsAlreadyPopulated, nil
+}
+
+func populateSerializedParams(tag *paramTag, objType reflect.Type, objValue reflect.Value) (map[string]string, error) {
+ if isNil(objType, objValue) {
+ return nil, nil
+ }
+
+ if objType.Kind() == reflect.Pointer {
+ objValue = objValue.Elem()
+ }
+
+ values := map[string]string{}
+
+ switch tag.Serialization {
+ case "json":
+ data, err := json.Marshal(objValue.Interface())
+ if err != nil {
+ return nil, fmt.Errorf("error marshaling json: %v", err)
+ }
+ values[tag.ParamName] = string(data)
+ }
+
+ return values, nil
+}
+
+func populateDeepObjectParams(tag *paramTag, objType reflect.Type, objValue reflect.Value) url.Values {
+ values := url.Values{}
+
+ if isNil(objType, objValue) {
+ return values
+ }
+
+ if objValue.Kind() == reflect.Pointer {
+ objValue = objValue.Elem()
+ }
+
+ switch objValue.Kind() {
+ case reflect.Map:
+ populateDeepObjectParamsMap(values, tag.ParamName, objValue)
+ case reflect.Struct:
+ populateDeepObjectParamsStruct(values, tag.ParamName, objValue)
+ }
+
+ return values
+}
+
+func populateDeepObjectParamsArray(qsValues url.Values, priorScope string, value reflect.Value) {
+ if value.Kind() != reflect.Array && value.Kind() != reflect.Slice {
+ return
+ }
+
+ for i := 0; i < value.Len(); i++ {
+ qsValues.Add(priorScope, valToString(value.Index(i).Interface()))
+ }
+}
+
+func populateDeepObjectParamsMap(qsValues url.Values, priorScope string, mapValue reflect.Value) {
+ if mapValue.Kind() != reflect.Map {
+ return
+ }
+
+ iter := mapValue.MapRange()
+
+ for iter.Next() {
+ scope := priorScope + "[" + iter.Key().String() + "]"
+ iterValue := iter.Value()
+
+ switch iterValue.Kind() {
+ case reflect.Array, reflect.Slice:
+ populateDeepObjectParamsArray(qsValues, scope, iterValue)
+ case reflect.Map:
+ populateDeepObjectParamsMap(qsValues, scope, iterValue)
+ default:
+ qsValues.Add(scope, valToString(iterValue.Interface()))
+ }
+ }
+}
+
+func populateDeepObjectParamsStruct(qsValues url.Values, priorScope string, structValue reflect.Value) {
+ if structValue.Kind() != reflect.Struct {
+ return
+ }
+
+ structType := structValue.Type()
+
+ for i := 0; i < structType.NumField(); i++ {
+ field := structType.Field(i)
+ fieldValue := structValue.Field(i)
+
+ if isNil(field.Type, fieldValue) {
+ continue
+ }
+
+ if fieldValue.Kind() == reflect.Pointer {
+ fieldValue = fieldValue.Elem()
+ }
+
+ qpTag := parseQueryParamTag(field)
+
+ if qpTag == nil {
+ continue
+ }
+
+ scope := priorScope + "[" + qpTag.ParamName + "]"
+
+ switch fieldValue.Kind() {
+ case reflect.Array, reflect.Slice:
+ populateDeepObjectParamsArray(qsValues, scope, fieldValue)
+ case reflect.Map:
+ populateDeepObjectParamsMap(qsValues, scope, fieldValue)
+ case reflect.Struct:
+ switch fieldValue.Type() {
+ case reflect.TypeOf(big.Int{}), reflect.TypeOf(decimal.Big{}), reflect.TypeOf(time.Time{}), reflect.TypeOf(types.Date{}):
+ qsValues.Add(scope, valToString(fieldValue.Interface()))
+
+ continue
+ }
+
+ populateDeepObjectParamsStruct(qsValues, scope, fieldValue)
+ default:
+ qsValues.Add(scope, valToString(fieldValue.Interface()))
+ }
+ }
+}
+
+func populateFormParams(tag *paramTag, objType reflect.Type, objValue reflect.Value, delimiter string) url.Values {
+ return populateForm(tag.ParamName, tag.Explode, objType, objValue, delimiter, func(fieldType reflect.StructField) string {
+ qpTag := parseQueryParamTag(fieldType)
+ if qpTag == nil {
+ return ""
+ }
+
+ return qpTag.ParamName
+ })
+}
+
+type paramTag struct {
+ Style string
+ Explode bool
+ ParamName string
+ Serialization string
+}
+
+func parseQueryParamTag(field reflect.StructField) *paramTag {
+ return parseParamTag(queryParamTagKey, field, "form", true)
+}
diff --git a/pkg/client/internal/utils/requestbody.go b/pkg/client/internal/utils/requestbody.go
new file mode 100644
index 0000000..0fd33cf
--- /dev/null
+++ b/pkg/client/internal/utils/requestbody.go
@@ -0,0 +1,409 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "bytes"
+ "context"
+ "fmt"
+ "io"
+ "mime/multipart"
+ "net/url"
+ "reflect"
+ "regexp"
+)
+
+const (
+ requestTagKey = "request"
+ multipartFormTagKey = "multipartForm"
+ formTagKey = "form"
+)
+
+var (
+ jsonEncodingRegex = regexp.MustCompile(`(application|text)\/.*?\+*json.*`)
+ multipartEncodingRegex = regexp.MustCompile(`multipart\/.*`)
+ urlEncodedEncodingRegex = regexp.MustCompile(`application\/x-www-form-urlencoded.*`)
+)
+
+func SerializeRequestBody(_ context.Context, request interface{}, nullable, optional bool, requestFieldName, serializationMethod, tag string) (io.Reader, string, error) {
+ bodyReader, contentType, err := serializeRequestBody(request, nullable, optional, requestFieldName, serializationMethod, tag)
+ if err != nil {
+ return nil, "", fmt.Errorf("error serializing request body: %w", err)
+ }
+
+ if bodyReader == nil && !optional {
+ return nil, "", fmt.Errorf("request body is required")
+ }
+
+ return bodyReader, contentType, nil
+}
+
+func serializeRequestBody(request interface{}, nullable, optional bool, requestFieldName, serializationMethod, tag string) (io.Reader, string, error) {
+ requestStructType := reflect.TypeOf(request)
+ requestValType := reflect.ValueOf(request)
+
+ if isNil(requestStructType, requestValType) {
+ if !nullable && optional {
+ return nil, "", nil
+ }
+
+ return serializeContentType(requestFieldName, SerializationMethodToContentType[serializationMethod], requestValType, tag)
+ }
+
+ if requestStructType.Kind() == reflect.Pointer {
+ requestStructType = requestStructType.Elem()
+ requestValType = requestValType.Elem()
+ }
+
+ if requestStructType.Kind() != reflect.Struct {
+ return serializeContentType(requestFieldName, SerializationMethodToContentType[serializationMethod], requestValType, tag)
+ }
+
+ requestField, ok := requestStructType.FieldByName(requestFieldName)
+
+ if ok {
+ tag := getRequestTag(requestField)
+ if tag != nil {
+ // request object (non-flattened)
+ requestVal := requestValType.FieldByName(requestFieldName)
+ if isNil(requestField.Type, requestVal) {
+ if !nullable && optional {
+ return nil, "", nil
+ }
+
+ return serializeContentType(requestFieldName, tag.MediaType, requestVal, string(requestField.Tag))
+ }
+
+ return serializeContentType(requestFieldName, tag.MediaType, requestVal, string(requestField.Tag))
+ }
+ }
+
+ // flattened request object
+ return serializeContentType(requestFieldName, SerializationMethodToContentType[serializationMethod], reflect.ValueOf(request), tag)
+}
+
+func serializeContentType(fieldName string, mediaType string, val reflect.Value, tag string) (*bytes.Buffer, string, error) {
+ buf := &bytes.Buffer{}
+
+ if isNil(val.Type(), val) {
+ // TODO: what does a null mean for other content types? Just returning an empty buffer for now
+ if jsonEncodingRegex.MatchString(mediaType) {
+ if _, err := buf.Write([]byte("null")); err != nil {
+ return nil, "", err
+ }
+ }
+
+ return buf, mediaType, nil
+ }
+
+ switch {
+ case jsonEncodingRegex.MatchString(mediaType):
+ data, err := MarshalJSON(val.Interface(), reflect.StructTag(tag), true)
+ if err != nil {
+ return nil, "", err
+ }
+
+ if _, err := buf.Write(data); err != nil {
+ return nil, "", err
+ }
+ case multipartEncodingRegex.MatchString(mediaType):
+ var err error
+ mediaType, err = encodeMultipartFormData(buf, val.Interface())
+ if err != nil {
+ return nil, "", err
+ }
+ case urlEncodedEncodingRegex.MatchString(mediaType):
+ if err := encodeFormData(fieldName, buf, val.Interface()); err != nil {
+ return nil, "", err
+ }
+ default:
+ val = reflect.Indirect(val)
+
+ switch {
+ case val.Type().Kind() == reflect.String:
+ if _, err := buf.WriteString(valToString(val.Interface())); err != nil {
+ return nil, "", err
+ }
+ case val.Type() == reflect.TypeOf([]byte(nil)):
+ if _, err := buf.Write(val.Bytes()); err != nil {
+ return nil, "", err
+ }
+ default:
+ return nil, "", fmt.Errorf("invalid request body type %s for mediaType %s", val.Type(), mediaType)
+ }
+ }
+
+ return buf, mediaType, nil
+}
+
+func encodeMultipartFormData(w io.Writer, data interface{}) (string, error) {
+ requestStructType := reflect.TypeOf(data)
+ requestValType := reflect.ValueOf(data)
+
+ if requestStructType.Kind() == reflect.Pointer {
+ requestStructType = requestStructType.Elem()
+ requestValType = requestValType.Elem()
+ }
+
+ writer := multipart.NewWriter(w)
+
+ for i := 0; i < requestStructType.NumField(); i++ {
+ field := requestStructType.Field(i)
+ fieldType := field.Type
+ valType := requestValType.Field(i)
+
+ if isNil(fieldType, valType) {
+ continue
+ }
+
+ if fieldType.Kind() == reflect.Pointer {
+ fieldType = fieldType.Elem()
+ valType = valType.Elem()
+ }
+
+ tag := parseMultipartFormTag(field)
+ if tag.File {
+ if err := encodeMultipartFormDataFile(writer, fieldType, valType); err != nil {
+ writer.Close()
+ return "", err
+ }
+ } else if tag.JSON {
+ jw, err := writer.CreateFormField(tag.Name)
+ if err != nil {
+ writer.Close()
+ return "", err
+ }
+ d, err := MarshalJSON(valType.Interface(), field.Tag, true)
+ if err != nil {
+ writer.Close()
+ return "", err
+ }
+ if _, err := jw.Write(d); err != nil {
+ writer.Close()
+ return "", err
+ }
+ } else {
+ switch fieldType.Kind() {
+ case reflect.Slice, reflect.Array:
+ values := parseDelimitedArray(true, valType, ",")
+ for _, v := range values {
+ if err := writer.WriteField(tag.Name+"[]", v); err != nil {
+ writer.Close()
+ return "", err
+ }
+ }
+ default:
+ if err := writer.WriteField(tag.Name, valToString(valType.Interface())); err != nil {
+ writer.Close()
+ return "", err
+ }
+ }
+ }
+ }
+
+ if err := writer.Close(); err != nil {
+ return "", err
+ }
+
+ return writer.FormDataContentType(), nil
+}
+
+func encodeMultipartFormDataFile(w *multipart.Writer, fieldType reflect.Type, valType reflect.Value) error {
+ if fieldType.Kind() != reflect.Struct {
+ return fmt.Errorf("invalid type %s for multipart/form-data file", valType.Type())
+ }
+
+ var fieldName string
+ var fileName string
+ var content []byte
+
+ for i := 0; i < fieldType.NumField(); i++ {
+ field := fieldType.Field(i)
+ val := valType.Field(i)
+
+ tag := parseMultipartFormTag(field)
+ if !tag.Content && tag.Name == "" {
+ continue
+ }
+
+ if tag.Content {
+ content = val.Bytes()
+ } else {
+ fieldName = tag.Name
+ fileName = val.String()
+ }
+ }
+
+ if fieldName == "" || fileName == "" || content == nil {
+ return fmt.Errorf("invalid multipart/form-data file")
+ }
+
+ fw, err := w.CreateFormFile(fieldName, fileName)
+ if err != nil {
+ return err
+ }
+ if _, err := fw.Write(content); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func encodeFormData(fieldName string, w io.Writer, data interface{}) error {
+ requestType := reflect.TypeOf(data)
+ requestValType := reflect.ValueOf(data)
+
+ if requestType.Kind() == reflect.Pointer {
+ requestType = requestType.Elem()
+ requestValType = requestValType.Elem()
+ }
+
+ dataValues := url.Values{}
+
+ switch requestType.Kind() {
+ case reflect.Struct:
+ for i := 0; i < requestType.NumField(); i++ {
+ field := requestType.Field(i)
+ fieldType := field.Type
+ valType := requestValType.Field(i)
+
+ if isNil(fieldType, valType) {
+ continue
+ }
+
+ if fieldType.Kind() == reflect.Pointer {
+ fieldType = fieldType.Elem()
+ valType = valType.Elem()
+ }
+
+ tag := parseFormTag(field)
+ if tag.JSON {
+ data, err := MarshalJSON(valType.Interface(), field.Tag, true)
+ if err != nil {
+ return err
+ }
+ dataValues.Set(tag.Name, string(data))
+ } else {
+ switch tag.Style {
+ // TODO: support other styles
+ case "form":
+ values := populateForm(tag.Name, tag.Explode, fieldType, valType, ",", func(sf reflect.StructField) string {
+ tag := parseFormTag(field)
+ if tag == nil {
+ return ""
+ }
+
+ return tag.Name
+ })
+ for k, v := range values {
+ for _, vv := range v {
+ dataValues.Add(k, vv)
+ }
+ }
+ }
+ }
+ }
+ case reflect.Map:
+ for _, k := range requestValType.MapKeys() {
+ v := requestValType.MapIndex(k)
+ dataValues.Set(fmt.Sprintf("%v", k.Interface()), valToString(v.Interface()))
+ }
+ case reflect.Slice, reflect.Array:
+ for i := 0; i < requestValType.Len(); i++ {
+ v := requestValType.Index(i)
+ dataValues.Set(fieldName, valToString(v.Interface()))
+ }
+ }
+
+ if _, err := w.Write([]byte(dataValues.Encode())); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+type requestTag struct {
+ MediaType string
+}
+
+func getRequestTag(field reflect.StructField) *requestTag {
+ // example `request:"mediaType=multipart/form-data"`
+ values := parseStructTag(requestTagKey, field)
+ if values == nil {
+ return nil
+ }
+
+ tag := &requestTag{
+ MediaType: "application/octet-stream",
+ }
+
+ for k, v := range values {
+ switch k {
+ case "mediaType":
+ tag.MediaType = v
+ }
+ }
+
+ return tag
+}
+
+type multipartFormTag struct {
+ File bool
+ Content bool
+ JSON bool
+ Name string
+}
+
+func parseMultipartFormTag(field reflect.StructField) *multipartFormTag {
+ // example `multipartForm:"name=file"`
+ values := parseStructTag(multipartFormTagKey, field)
+
+ tag := &multipartFormTag{}
+
+ for k, v := range values {
+ switch k {
+ case "file":
+ tag.File = v == "true"
+ case "content":
+ tag.Content = v == "true"
+ case "name":
+ tag.Name = v
+ case "json":
+ tag.JSON = v == "true"
+ }
+ }
+
+ return tag
+}
+
+type formTag struct {
+ Name string
+ JSON bool
+ Style string
+ Explode bool
+}
+
+func parseFormTag(field reflect.StructField) *formTag {
+ // example `form:"name=propName,style=spaceDelimited,explode"`
+ values := parseStructTag(formTagKey, field)
+
+ tag := &formTag{
+ Style: "form",
+ Explode: true,
+ }
+
+ for k, v := range values {
+ switch k {
+ case "name":
+ tag.Name = v
+ case "json":
+ tag.JSON = v == "true"
+ case "style":
+ tag.Style = v
+ case "explode":
+ tag.Explode = v == "true"
+ }
+ }
+
+ return tag
+}
diff --git a/pkg/client/internal/utils/retries.go b/pkg/client/internal/utils/retries.go
new file mode 100644
index 0000000..03549bf
--- /dev/null
+++ b/pkg/client/internal/utils/retries.go
@@ -0,0 +1,110 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "github.com/cenkalti/backoff/v4"
+ "net/http"
+ "net/url"
+ "openapi/retry"
+ "strconv"
+ "strings"
+ "time"
+)
+
+var errRequestFailed = errors.New("request failed")
+
+// Deprecated: Use retry.BackoffStrategy instead.
+type BackoffStrategy = retry.BackoffStrategy
+
+// Deprecated: Use retry.Config instead.
+type RetryConfig = retry.Config
+
+type Retries struct {
+ Config *retry.Config
+ StatusCodes []string
+}
+
+func Retry(ctx context.Context, r Retries, action func() (*http.Response, error)) (*http.Response, error) {
+ switch r.Config.Strategy {
+ case "backoff":
+ if r.Config.Backoff == nil {
+ return action()
+ }
+
+ config := backoff.NewExponentialBackOff()
+ config.InitialInterval = time.Duration(r.Config.Backoff.InitialInterval) * time.Millisecond
+ config.MaxInterval = time.Duration(r.Config.Backoff.MaxInterval) * time.Millisecond
+ config.Multiplier = r.Config.Backoff.Exponent
+ config.MaxElapsedTime = time.Duration(r.Config.Backoff.MaxElapsedTime) * time.Millisecond
+ config.Reset()
+
+ var resp *http.Response
+
+ err := backoff.Retry(func() error {
+ if resp != nil {
+ resp.Body.Close()
+ }
+
+ select {
+ case <-ctx.Done():
+ return backoff.Permanent(ctx.Err())
+ default:
+ }
+
+ res, err := action()
+ if err != nil {
+ urlError := new(url.Error)
+ if errors.As(err, &urlError) {
+ if (urlError.Temporary() || urlError.Timeout()) && r.Config.RetryConnectionErrors {
+ return err
+ }
+ }
+
+ return backoff.Permanent(err)
+ }
+ resp = res
+ if res == nil {
+ return fmt.Errorf("no response")
+ }
+
+ for _, code := range r.StatusCodes {
+ if strings.Contains(strings.ToUpper(code), "X") {
+ codeRange, err := strconv.Atoi(code[:1])
+ if err != nil {
+ continue
+ }
+
+ s := res.StatusCode / 100
+
+ if s >= codeRange && s < codeRange+1 {
+ return errRequestFailed
+ }
+ } else {
+ parsedCode, err := strconv.Atoi(code)
+ if err != nil {
+ continue
+ }
+
+ if res.StatusCode == parsedCode {
+ return errRequestFailed
+ }
+ }
+ }
+
+ resp = res
+
+ return nil
+ }, config)
+ if err != nil && !errors.Is(err, errRequestFailed) {
+ return nil, err
+ }
+
+ return resp, nil
+ default:
+ return action()
+ }
+}
diff --git a/pkg/client/internal/utils/security.go b/pkg/client/internal/utils/security.go
new file mode 100644
index 0000000..d2558cd
--- /dev/null
+++ b/pkg/client/internal/utils/security.go
@@ -0,0 +1,274 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "context"
+ "encoding/base64"
+ "fmt"
+ "net/http"
+ "reflect"
+ "strings"
+)
+
+const (
+ securityTagKey = "security"
+)
+
+type securityTag struct {
+ Option bool
+ Scheme bool
+ Name string
+ Type string
+ SubType string
+}
+
+func PopulateSecurity(ctx context.Context, req *http.Request, securitySource func(context.Context) (interface{}, error)) error {
+ if securitySource == nil {
+ return nil
+ }
+
+ security, err := securitySource(ctx)
+ if err != nil {
+ return err
+ }
+
+ headers := make(map[string]string)
+ queryParams := make(map[string]string)
+
+ securityValType := trueReflectValue(reflect.ValueOf(security))
+ securityStructType := securityValType.Type()
+
+ if isNil(securityStructType, securityValType) {
+ return nil
+ }
+
+ if securityStructType.Kind() == reflect.Ptr {
+ securityStructType = securityStructType.Elem()
+ securityValType = securityValType.Elem()
+ }
+
+ for i := 0; i < securityStructType.NumField(); i++ {
+ fieldType := securityStructType.Field(i)
+ valType := securityValType.Field(i)
+
+ kind := valType.Kind()
+
+ if isNil(fieldType.Type, valType) {
+ continue
+ }
+
+ if fieldType.Type.Kind() == reflect.Pointer {
+ kind = valType.Elem().Kind()
+ }
+
+ secTag := parseSecurityTag(fieldType)
+ if secTag != nil {
+ if secTag.Option {
+ handleSecurityOption(headers, queryParams, valType.Interface())
+ } else if secTag.Scheme {
+ // Special case for basic auth which could be a flattened struct
+ if secTag.SubType == "basic" && kind != reflect.Struct {
+ parseSecurityScheme(headers, queryParams, secTag, security)
+ } else {
+ parseSecurityScheme(headers, queryParams, secTag, valType.Interface())
+ }
+ }
+ }
+ }
+
+ for key, value := range headers {
+ req.Header.Add(key, value)
+ }
+
+ query := req.URL.Query()
+ for key, value := range queryParams {
+ query.Add(key, value)
+ }
+ req.URL.RawQuery = query.Encode()
+
+ return nil
+}
+
+func handleSecurityOption(headers, queryParams map[string]string, option interface{}) {
+ optionValType := trueReflectValue(reflect.ValueOf(option))
+ optionStructType := optionValType.Type()
+
+ if isNil(optionStructType, optionValType) {
+ return
+ }
+
+ for i := 0; i < optionStructType.NumField(); i++ {
+ fieldType := optionStructType.Field(i)
+ valType := optionValType.Field(i)
+
+ secTag := parseSecurityTag(fieldType)
+ if secTag != nil && secTag.Scheme {
+ parseSecurityScheme(headers, queryParams, secTag, valType.Interface())
+ }
+ }
+}
+
+func parseSecurityScheme(headers, queryParams map[string]string, schemeTag *securityTag, scheme interface{}) {
+ schemeVal := trueReflectValue(reflect.ValueOf(scheme))
+ schemeType := schemeVal.Type()
+
+ if isNil(schemeType, schemeVal) {
+ return
+ }
+
+ if schemeType.Kind() == reflect.Struct {
+ if schemeTag.Type == "http" && schemeTag.SubType == "basic" {
+ handleBasicAuthScheme(headers, schemeVal.Interface())
+ return
+ }
+
+ for i := 0; i < schemeType.NumField(); i++ {
+ fieldType := schemeType.Field(i)
+ valType := schemeVal.Field(i)
+
+ if isNil(fieldType.Type, valType) {
+ continue
+ }
+
+ if fieldType.Type.Kind() == reflect.Ptr {
+ valType = valType.Elem()
+ }
+
+ secTag := parseSecurityTag(fieldType)
+ if secTag == nil || secTag.Name == "" {
+ return
+ }
+
+ parseSecuritySchemeValue(headers, queryParams, schemeTag, secTag, valType.Interface())
+ }
+ } else {
+ parseSecuritySchemeValue(headers, queryParams, schemeTag, schemeTag, schemeVal.Interface())
+ }
+}
+
+func parseSecuritySchemeValue(headers, queryParams map[string]string, schemeTag *securityTag, secTag *securityTag, val interface{}) {
+ switch schemeTag.Type {
+ case "apiKey":
+ switch schemeTag.SubType {
+ case "header":
+ headers[secTag.Name] = valToString(val)
+ case "query":
+ queryParams[secTag.Name] = valToString(val)
+ case "cookie":
+ headers["Cookie"] = fmt.Sprintf("%s=%s", secTag.Name, valToString(val))
+ default:
+ panic("not supported")
+ }
+ case "openIdConnect":
+ headers[secTag.Name] = prefixBearer(valToString(val))
+ case "oauth2":
+ if schemeTag.SubType != "client_credentials" {
+ headers[secTag.Name] = prefixBearer(valToString(val))
+ }
+ case "http":
+ switch schemeTag.SubType {
+ case "bearer":
+ headers[secTag.Name] = prefixBearer(valToString(val))
+ default:
+ panic("not supported")
+ }
+ default:
+ panic("not supported")
+ }
+}
+
+func prefixBearer(authHeaderValue string) string {
+ if strings.HasPrefix(strings.ToLower(authHeaderValue), "bearer ") {
+ return authHeaderValue
+ }
+
+ return fmt.Sprintf("Bearer %s", authHeaderValue)
+}
+
+func handleBasicAuthScheme(headers map[string]string, scheme interface{}) {
+ schemeStructType := reflect.TypeOf(scheme)
+ schemeValType := reflect.ValueOf(scheme)
+
+ var username, password string
+
+ for i := 0; i < schemeStructType.NumField(); i++ {
+ fieldType := schemeStructType.Field(i)
+ valType := schemeValType.Field(i)
+
+ if fieldType.Type.Kind() == reflect.Ptr {
+ valType = valType.Elem()
+ }
+
+ secTag := parseSecurityTag(fieldType)
+ if secTag == nil || secTag.Name == "" {
+ continue
+ }
+
+ switch secTag.Name {
+ case "username":
+ username = valType.String()
+ case "password":
+ password = valType.String()
+ }
+ }
+
+ headers["Authorization"] = fmt.Sprintf("Basic %s", base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", username, password))))
+}
+
+func parseSecurityTag(field reflect.StructField) *securityTag {
+ tag := field.Tag.Get(securityTagKey)
+ if tag == "" {
+ return nil
+ }
+
+ option := false
+ scheme := false
+ name := ""
+ securityType := ""
+ securitySubType := ""
+
+ options := strings.Split(tag, ",")
+ for _, optionConf := range options {
+ parts := strings.Split(optionConf, "=")
+ if len(parts) < 1 || len(parts) > 2 {
+ continue
+ }
+
+ switch parts[0] {
+ case "name":
+ name = parts[1]
+ case "type":
+ securityType = parts[1]
+ case "subtype":
+ securitySubType = parts[1]
+ case "option":
+ option = true
+ case "scheme":
+ scheme = true
+ }
+ }
+
+ // TODO: validate tag?
+
+ return &securityTag{
+ Option: option,
+ Scheme: scheme,
+ Name: name,
+ Type: securityType,
+ SubType: securitySubType,
+ }
+}
+
+func trueReflectValue(val reflect.Value) reflect.Value {
+ kind := val.Type().Kind()
+ for kind == reflect.Interface || kind == reflect.Ptr {
+ innerVal := val.Elem()
+ if !innerVal.IsValid() {
+ break
+ }
+ val = innerVal
+ kind = val.Type().Kind()
+ }
+ return val
+}
diff --git a/pkg/client/internal/utils/utils.go b/pkg/client/internal/utils/utils.go
new file mode 100644
index 0000000..adb2f70
--- /dev/null
+++ b/pkg/client/internal/utils/utils.go
@@ -0,0 +1,230 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package utils
+
+import (
+ "context"
+ "fmt"
+ "io"
+ "math/big"
+ "reflect"
+ "regexp"
+ "strconv"
+ "strings"
+ "time"
+
+ "github.com/ericlagergren/decimal"
+)
+
+const (
+ queryParamTagKey = "queryParam"
+ headerParamTagKey = "header"
+ pathParamTagKey = "pathParam"
+)
+
+var (
+ paramRegex = regexp.MustCompile(`({.*?})`)
+ SerializationMethodToContentType = map[string]string{
+ "json": "application/json",
+ "form": "application/x-www-form-urlencoded",
+ "multipart": "multipart/form-data",
+ "raw": "application/octet-stream",
+ "string": "text/plain",
+ }
+)
+
+func UnmarshalJsonFromResponseBody(body io.Reader, out interface{}, tag string) error {
+ data, err := io.ReadAll(body)
+ if err != nil {
+ return fmt.Errorf("error reading response body: %w", err)
+ }
+ if err := UnmarshalJSON(data, out, reflect.StructTag(tag), true, false); err != nil {
+ return fmt.Errorf("error unmarshalling json response body: %w", err)
+ }
+
+ return nil
+}
+
+func ReplaceParameters(stringWithParams string, params map[string]string) string {
+ if len(params) == 0 {
+ return stringWithParams
+ }
+
+ return paramRegex.ReplaceAllStringFunc(stringWithParams, func(match string) string {
+ match = match[1 : len(match)-1]
+ return params[match]
+ })
+}
+
+func Contains(slice []string, item string) bool {
+ for _, s := range slice {
+ if s == item {
+ return true
+ }
+ }
+ return false
+}
+
+func MatchStatusCodes(expectedCodes []string, statusCode int) bool {
+ for _, codeStr := range expectedCodes {
+ code, err := strconv.Atoi(codeStr)
+ if err == nil {
+ if code == statusCode {
+ return true
+ }
+ continue
+ }
+
+ codeRange, err := strconv.Atoi(string(codeStr[0]))
+ if err != nil {
+ continue
+ }
+
+ if statusCode >= (codeRange*100) && statusCode < ((codeRange+1)*100) {
+ return true
+ }
+ }
+
+ return false
+}
+
+func AsSecuritySource(security interface{}) func(context.Context) (interface{}, error) {
+ return func(context.Context) (interface{}, error) {
+ return security, nil
+ }
+}
+
+func parseStructTag(tagKey string, field reflect.StructField) map[string]string {
+ tag := field.Tag.Get(tagKey)
+ if tag == "" {
+ return nil
+ }
+
+ values := map[string]string{}
+
+ options := strings.Split(tag, ",")
+ for _, optionConf := range options {
+ parts := strings.Split(optionConf, "=")
+
+ switch len(parts) {
+ case 1:
+ // flag option
+ parts = append(parts, "true")
+ case 2:
+ // key=value option
+ default:
+ // invalid option
+ continue
+ }
+
+ values[parts[0]] = parts[1]
+ }
+
+ return values
+}
+
+func parseParamTag(tagKey string, field reflect.StructField, defaultStyle string, defaultExplode bool) *paramTag {
+ // example `{tagKey}:"style=simple,explode=false,name=apiID"`
+ values := parseStructTag(tagKey, field)
+ if values == nil {
+ return nil
+ }
+
+ tag := ¶mTag{
+ Style: defaultStyle,
+ Explode: defaultExplode,
+ ParamName: strings.ToLower(field.Name),
+ }
+
+ for k, v := range values {
+ switch k {
+ case "style":
+ tag.Style = v
+ case "explode":
+ tag.Explode = v == "true"
+ case "name":
+ tag.ParamName = v
+ case "serialization":
+ tag.Serialization = v
+ }
+ }
+
+ return tag
+}
+
+func valToString(val interface{}) string {
+ switch v := val.(type) {
+ case time.Time:
+ return v.Format(time.RFC3339Nano)
+ case big.Int:
+ return v.String()
+ case decimal.Big:
+ return v.String()
+ default:
+ return fmt.Sprintf("%v", v)
+ }
+}
+
+func populateFromGlobals(fieldType reflect.StructField, valType reflect.Value, paramType string, globals interface{}) (reflect.StructField, reflect.Value, bool) {
+ if globals == nil {
+ return fieldType, valType, false
+ }
+
+ globalsStruct := reflect.TypeOf(globals)
+ globalsStructVal := reflect.ValueOf(globals)
+
+ globalsField, found := globalsStruct.FieldByName(fieldType.Name)
+ if !found {
+ return fieldType, valType, false
+ }
+
+ if fieldType.Type.Kind() != reflect.Ptr || !valType.IsNil() {
+ return fieldType, valType, true
+ }
+
+ globalsVal := globalsStructVal.FieldByName(fieldType.Name)
+
+ if !globalsVal.IsValid() {
+ return fieldType, valType, false
+ }
+
+ switch paramType {
+ case queryParamTagKey:
+ qpTag := parseQueryParamTag(globalsField)
+ if qpTag == nil {
+ return fieldType, valType, false
+ }
+ default:
+ tag := parseParamTag(paramType, fieldType, "simple", false)
+ if tag == nil {
+ return fieldType, valType, false
+ }
+ }
+
+ return globalsField, globalsVal, true
+}
+
+func isNil(typ reflect.Type, val reflect.Value) bool {
+ // `reflect.TypeOf(nil) == nil` so calling typ.Kind() will cause a nil pointer
+ // dereference panic. Catch it and return early.
+ // https://github.com/golang/go/issues/51649
+ // https://github.com/golang/go/issues/54208
+ if typ == nil {
+ return true
+ }
+
+ if typ.Kind() == reflect.Ptr || typ.Kind() == reflect.Map || typ.Kind() == reflect.Slice || typ.Kind() == reflect.Interface {
+ return val.IsNil()
+ }
+
+ return false
+}
+
+func contains(arr []string, str string) bool {
+ for _, a := range arr {
+ if a == str {
+ return true
+ }
+ }
+ return false
+}
diff --git a/pkg/client/models/components/account.go b/pkg/client/models/components/account.go
new file mode 100644
index 0000000..9ee506c
--- /dev/null
+++ b/pkg/client/models/components/account.go
@@ -0,0 +1,38 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type Account struct {
+ Address string `json:"address"`
+ Metadata map[string]string `json:"metadata"`
+ Volumes map[string]Volume `json:"volumes,omitempty"`
+ EffectiveVolumes map[string]Volume `json:"effectiveVolumes,omitempty"`
+}
+
+func (o *Account) GetAddress() string {
+ if o == nil {
+ return ""
+ }
+ return o.Address
+}
+
+func (o *Account) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *Account) GetVolumes() map[string]Volume {
+ if o == nil {
+ return nil
+ }
+ return o.Volumes
+}
+
+func (o *Account) GetEffectiveVolumes() map[string]Volume {
+ if o == nil {
+ return nil
+ }
+ return o.EffectiveVolumes
+}
diff --git a/pkg/client/models/components/activityaddaccountmetadata.go b/pkg/client/models/components/activityaddaccountmetadata.go
new file mode 100644
index 0000000..7e07ed3
--- /dev/null
+++ b/pkg/client/models/components/activityaddaccountmetadata.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityAddAccountMetadata struct {
+ ID string `json:"id"`
+ Ledger string `json:"ledger"`
+ Metadata map[string]string `json:"metadata"`
+}
+
+func (o *ActivityAddAccountMetadata) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *ActivityAddAccountMetadata) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
+
+func (o *ActivityAddAccountMetadata) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/activityconfirmhold.go b/pkg/client/models/components/activityconfirmhold.go
new file mode 100644
index 0000000..a4c444d
--- /dev/null
+++ b/pkg/client/models/components/activityconfirmhold.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityConfirmHold struct {
+ ID string `json:"id"`
+}
+
+func (o *ActivityConfirmHold) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/activitycreatetransaction.go b/pkg/client/models/components/activitycreatetransaction.go
new file mode 100644
index 0000000..9c4aeb7
--- /dev/null
+++ b/pkg/client/models/components/activitycreatetransaction.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityCreateTransaction struct {
+ Ledger *string `json:"ledger,omitempty"`
+ Data *PostTransaction `json:"data,omitempty"`
+}
+
+func (o *ActivityCreateTransaction) GetLedger() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Ledger
+}
+
+func (o *ActivityCreateTransaction) GetData() *PostTransaction {
+ if o == nil {
+ return nil
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitycreatetransactionoutput.go b/pkg/client/models/components/activitycreatetransactionoutput.go
new file mode 100644
index 0000000..a5ea1fd
--- /dev/null
+++ b/pkg/client/models/components/activitycreatetransactionoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityCreateTransactionOutput struct {
+ Data Transaction `json:"data"`
+}
+
+func (o *ActivityCreateTransactionOutput) GetData() Transaction {
+ if o == nil {
+ return Transaction{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitycreditwallet.go b/pkg/client/models/components/activitycreditwallet.go
new file mode 100644
index 0000000..9f495bf
--- /dev/null
+++ b/pkg/client/models/components/activitycreditwallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityCreditWallet struct {
+ ID *string `json:"id,omitempty"`
+ Data *CreditWalletRequest `json:"data,omitempty"`
+}
+
+func (o *ActivityCreditWallet) GetID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.ID
+}
+
+func (o *ActivityCreditWallet) GetData() *CreditWalletRequest {
+ if o == nil {
+ return nil
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitydebitwallet.go b/pkg/client/models/components/activitydebitwallet.go
new file mode 100644
index 0000000..379207a
--- /dev/null
+++ b/pkg/client/models/components/activitydebitwallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityDebitWallet struct {
+ ID *string `json:"id,omitempty"`
+ Data *DebitWalletRequest `json:"data,omitempty"`
+}
+
+func (o *ActivityDebitWallet) GetID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.ID
+}
+
+func (o *ActivityDebitWallet) GetData() *DebitWalletRequest {
+ if o == nil {
+ return nil
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitydebitwalletoutput.go b/pkg/client/models/components/activitydebitwalletoutput.go
new file mode 100644
index 0000000..4303da1
--- /dev/null
+++ b/pkg/client/models/components/activitydebitwalletoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityDebitWalletOutput struct {
+ Data Hold `json:"data"`
+}
+
+func (o *ActivityDebitWalletOutput) GetData() Hold {
+ if o == nil {
+ return Hold{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitygetaccount.go b/pkg/client/models/components/activitygetaccount.go
new file mode 100644
index 0000000..e9bc7e4
--- /dev/null
+++ b/pkg/client/models/components/activitygetaccount.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityGetAccount struct {
+ ID string `json:"id"`
+ Ledger string `json:"ledger"`
+}
+
+func (o *ActivityGetAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *ActivityGetAccount) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/activitygetaccountoutput.go b/pkg/client/models/components/activitygetaccountoutput.go
new file mode 100644
index 0000000..eb914f4
--- /dev/null
+++ b/pkg/client/models/components/activitygetaccountoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityGetAccountOutput struct {
+ Data Account `json:"data"`
+}
+
+func (o *ActivityGetAccountOutput) GetData() Account {
+ if o == nil {
+ return Account{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitygetpayment.go b/pkg/client/models/components/activitygetpayment.go
new file mode 100644
index 0000000..26d93a4
--- /dev/null
+++ b/pkg/client/models/components/activitygetpayment.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityGetPayment struct {
+ ID string `json:"id"`
+}
+
+func (o *ActivityGetPayment) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/activitygetpaymentoutput.go b/pkg/client/models/components/activitygetpaymentoutput.go
new file mode 100644
index 0000000..3623423
--- /dev/null
+++ b/pkg/client/models/components/activitygetpaymentoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityGetPaymentOutput struct {
+ Data Payment `json:"data"`
+}
+
+func (o *ActivityGetPaymentOutput) GetData() Payment {
+ if o == nil {
+ return Payment{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitygetwallet.go b/pkg/client/models/components/activitygetwallet.go
new file mode 100644
index 0000000..28cb641
--- /dev/null
+++ b/pkg/client/models/components/activitygetwallet.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityGetWallet struct {
+ ID string `json:"id"`
+}
+
+func (o *ActivityGetWallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/activitygetwalletoutput.go b/pkg/client/models/components/activitygetwalletoutput.go
new file mode 100644
index 0000000..900dbda
--- /dev/null
+++ b/pkg/client/models/components/activitygetwalletoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityGetWalletOutput struct {
+ Data WalletWithBalances `json:"data"`
+}
+
+func (o *ActivityGetWalletOutput) GetData() WalletWithBalances {
+ if o == nil {
+ return WalletWithBalances{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitylistwallets.go b/pkg/client/models/components/activitylistwallets.go
new file mode 100644
index 0000000..1f648e2
--- /dev/null
+++ b/pkg/client/models/components/activitylistwallets.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityListWallets struct {
+ Name *string `json:"name,omitempty"`
+}
+
+func (o *ActivityListWallets) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
diff --git a/pkg/client/models/components/activityreverttransaction.go b/pkg/client/models/components/activityreverttransaction.go
new file mode 100644
index 0000000..69ed159
--- /dev/null
+++ b/pkg/client/models/components/activityreverttransaction.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityRevertTransaction struct {
+ Ledger string `json:"ledger"`
+ ID string `json:"id"`
+}
+
+func (o *ActivityRevertTransaction) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
+
+func (o *ActivityRevertTransaction) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/activityreverttransactionoutput.go b/pkg/client/models/components/activityreverttransactionoutput.go
new file mode 100644
index 0000000..e9cc7d7
--- /dev/null
+++ b/pkg/client/models/components/activityreverttransactionoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityRevertTransactionOutput struct {
+ Data Transaction `json:"data"`
+}
+
+func (o *ActivityRevertTransactionOutput) GetData() Transaction {
+ if o == nil {
+ return Transaction{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/activitystripetransfer.go b/pkg/client/models/components/activitystripetransfer.go
new file mode 100644
index 0000000..9e09771
--- /dev/null
+++ b/pkg/client/models/components/activitystripetransfer.go
@@ -0,0 +1,78 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+// Metadata - A set of key/value pairs that you can attach to a transfer object.
+// It can be useful for storing additional information about the transfer in a structured format.
+type Metadata struct {
+}
+
+type ActivityStripeTransfer struct {
+ ConnectorID *string `json:"connectorID,omitempty"`
+ Amount *big.Int `json:"amount,omitempty"`
+ Asset *string `json:"asset,omitempty"`
+ Destination *string `json:"destination,omitempty"`
+ WaitingValidation *bool `default:"false" json:"waitingValidation"`
+ // A set of key/value pairs that you can attach to a transfer object.
+ // It can be useful for storing additional information about the transfer in a structured format.
+ //
+ Metadata *Metadata `json:"metadata,omitempty"`
+}
+
+func (a ActivityStripeTransfer) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(a, "", false)
+}
+
+func (a *ActivityStripeTransfer) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &a, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *ActivityStripeTransfer) GetConnectorID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.ConnectorID
+}
+
+func (o *ActivityStripeTransfer) GetAmount() *big.Int {
+ if o == nil {
+ return nil
+ }
+ return o.Amount
+}
+
+func (o *ActivityStripeTransfer) GetAsset() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Asset
+}
+
+func (o *ActivityStripeTransfer) GetDestination() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *ActivityStripeTransfer) GetWaitingValidation() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.WaitingValidation
+}
+
+func (o *ActivityStripeTransfer) GetMetadata() *Metadata {
+ if o == nil {
+ return nil
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/activityvoidhold.go b/pkg/client/models/components/activityvoidhold.go
new file mode 100644
index 0000000..be3915f
--- /dev/null
+++ b/pkg/client/models/components/activityvoidhold.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ActivityVoidHold struct {
+ ID string `json:"id"`
+}
+
+func (o *ActivityVoidHold) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/assetholder.go b/pkg/client/models/components/assetholder.go
new file mode 100644
index 0000000..7a1a2b3
--- /dev/null
+++ b/pkg/client/models/components/assetholder.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type AssetHolder struct {
+ Assets map[string]*big.Int `json:"assets"`
+}
+
+func (a AssetHolder) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(a, "", false)
+}
+
+func (a *AssetHolder) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &a, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *AssetHolder) GetAssets() map[string]*big.Int {
+ if o == nil {
+ return map[string]*big.Int{}
+ }
+ return o.Assets
+}
diff --git a/pkg/client/models/components/connector.go b/pkg/client/models/components/connector.go
new file mode 100644
index 0000000..29f506e
--- /dev/null
+++ b/pkg/client/models/components/connector.go
@@ -0,0 +1,52 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+type Connector string
+
+const (
+ ConnectorStripe Connector = "STRIPE"
+ ConnectorDummyPay Connector = "DUMMY-PAY"
+ ConnectorWise Connector = "WISE"
+ ConnectorModulr Connector = "MODULR"
+ ConnectorCurrencyCloud Connector = "CURRENCY-CLOUD"
+ ConnectorBankingCircle Connector = "BANKING-CIRCLE"
+ ConnectorMangopay Connector = "MANGOPAY"
+ ConnectorMoneycorp Connector = "MONEYCORP"
+)
+
+func (e Connector) ToPointer() *Connector {
+ return &e
+}
+func (e *Connector) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "STRIPE":
+ fallthrough
+ case "DUMMY-PAY":
+ fallthrough
+ case "WISE":
+ fallthrough
+ case "MODULR":
+ fallthrough
+ case "CURRENCY-CLOUD":
+ fallthrough
+ case "BANKING-CIRCLE":
+ fallthrough
+ case "MANGOPAY":
+ fallthrough
+ case "MONEYCORP":
+ *e = Connector(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for Connector: %v", v)
+ }
+}
diff --git a/pkg/client/models/components/createtriggerresponse.go b/pkg/client/models/components/createtriggerresponse.go
new file mode 100644
index 0000000..54257e5
--- /dev/null
+++ b/pkg/client/models/components/createtriggerresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type CreateTriggerResponse struct {
+ Data Trigger `json:"data"`
+}
+
+func (o *CreateTriggerResponse) GetData() Trigger {
+ if o == nil {
+ return Trigger{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/createworkflowrequest.go b/pkg/client/models/components/createworkflowrequest.go
new file mode 100644
index 0000000..899f393
--- /dev/null
+++ b/pkg/client/models/components/createworkflowrequest.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type CreateWorkflowRequest struct {
+ Name *string `json:"name,omitempty"`
+ Stages []map[string]any `json:"stages"`
+}
+
+func (o *CreateWorkflowRequest) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+func (o *CreateWorkflowRequest) GetStages() []map[string]any {
+ if o == nil {
+ return []map[string]any{}
+ }
+ return o.Stages
+}
diff --git a/pkg/client/models/components/createworkflowresponse.go b/pkg/client/models/components/createworkflowresponse.go
new file mode 100644
index 0000000..bf0e7cb
--- /dev/null
+++ b/pkg/client/models/components/createworkflowresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type CreateWorkflowResponse struct {
+ Data Workflow `json:"data"`
+}
+
+func (o *CreateWorkflowResponse) GetData() Workflow {
+ if o == nil {
+ return Workflow{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/creditwalletrequest.go b/pkg/client/models/components/creditwalletrequest.go
new file mode 100644
index 0000000..91857d8
--- /dev/null
+++ b/pkg/client/models/components/creditwalletrequest.go
@@ -0,0 +1,72 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type CreditWalletRequest struct {
+ Amount Monetary `json:"amount"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Reference *string `json:"reference,omitempty"`
+ Sources []Subject `json:"sources"`
+ // The balance to credit
+ Balance *string `json:"balance,omitempty"`
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+}
+
+func (c CreditWalletRequest) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(c, "", false)
+}
+
+func (c *CreditWalletRequest) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &c, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *CreditWalletRequest) GetAmount() Monetary {
+ if o == nil {
+ return Monetary{}
+ }
+ return o.Amount
+}
+
+func (o *CreditWalletRequest) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *CreditWalletRequest) GetReference() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Reference
+}
+
+func (o *CreditWalletRequest) GetSources() []Subject {
+ if o == nil {
+ return []Subject{}
+ }
+ return o.Sources
+}
+
+func (o *CreditWalletRequest) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
+
+func (o *CreditWalletRequest) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
diff --git a/pkg/client/models/components/debitwalletrequest.go b/pkg/client/models/components/debitwalletrequest.go
new file mode 100644
index 0000000..ccd9535
--- /dev/null
+++ b/pkg/client/models/components/debitwalletrequest.go
@@ -0,0 +1,95 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type DebitWalletRequest struct {
+ Amount Monetary `json:"amount"`
+ // Set to true to create a pending hold. If false, the wallet will be debited immediately.
+ Pending *bool `json:"pending,omitempty"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Description *string `json:"description,omitempty"`
+ Destination *Subject `json:"destination,omitempty"`
+ Balances []string `json:"balances,omitempty"`
+ // cannot be used in conjunction with `pending` property
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+}
+
+func (d DebitWalletRequest) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(d, "", false)
+}
+
+func (d *DebitWalletRequest) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &d, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *DebitWalletRequest) GetAmount() Monetary {
+ if o == nil {
+ return Monetary{}
+ }
+ return o.Amount
+}
+
+func (o *DebitWalletRequest) GetPending() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.Pending
+}
+
+func (o *DebitWalletRequest) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *DebitWalletRequest) GetDescription() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Description
+}
+
+func (o *DebitWalletRequest) GetDestination() *Subject {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *DebitWalletRequest) GetDestinationAccount() *LedgerAccountSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.LedgerAccountSubject
+ }
+ return nil
+}
+
+func (o *DebitWalletRequest) GetDestinationWallet() *WalletSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.WalletSubject
+ }
+ return nil
+}
+
+func (o *DebitWalletRequest) GetBalances() []string {
+ if o == nil {
+ return nil
+ }
+ return o.Balances
+}
+
+func (o *DebitWalletRequest) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
diff --git a/pkg/client/models/components/getworkflowinstancehistoryresponse.go b/pkg/client/models/components/getworkflowinstancehistoryresponse.go
new file mode 100644
index 0000000..0124f8f
--- /dev/null
+++ b/pkg/client/models/components/getworkflowinstancehistoryresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type GetWorkflowInstanceHistoryResponse struct {
+ Data []WorkflowInstanceHistory `json:"data"`
+}
+
+func (o *GetWorkflowInstanceHistoryResponse) GetData() []WorkflowInstanceHistory {
+ if o == nil {
+ return []WorkflowInstanceHistory{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/getworkflowinstancehistorystageresponse.go b/pkg/client/models/components/getworkflowinstancehistorystageresponse.go
new file mode 100644
index 0000000..256db9b
--- /dev/null
+++ b/pkg/client/models/components/getworkflowinstancehistorystageresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type GetWorkflowInstanceHistoryStageResponse struct {
+ Data []WorkflowInstanceHistoryStage `json:"data"`
+}
+
+func (o *GetWorkflowInstanceHistoryStageResponse) GetData() []WorkflowInstanceHistoryStage {
+ if o == nil {
+ return []WorkflowInstanceHistoryStage{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/getworkflowinstanceresponse.go b/pkg/client/models/components/getworkflowinstanceresponse.go
new file mode 100644
index 0000000..3793f7f
--- /dev/null
+++ b/pkg/client/models/components/getworkflowinstanceresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type GetWorkflowInstanceResponse struct {
+ Data WorkflowInstance `json:"data"`
+}
+
+func (o *GetWorkflowInstanceResponse) GetData() WorkflowInstance {
+ if o == nil {
+ return WorkflowInstance{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/getworkflowresponse.go b/pkg/client/models/components/getworkflowresponse.go
new file mode 100644
index 0000000..0a2fed9
--- /dev/null
+++ b/pkg/client/models/components/getworkflowresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type GetWorkflowResponse struct {
+ Data Workflow `json:"data"`
+}
+
+func (o *GetWorkflowResponse) GetData() Workflow {
+ if o == nil {
+ return Workflow{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/hold.go b/pkg/client/models/components/hold.go
new file mode 100644
index 0000000..237c69a
--- /dev/null
+++ b/pkg/client/models/components/hold.go
@@ -0,0 +1,63 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type Hold struct {
+ // The unique ID of the hold.
+ ID string `json:"id"`
+ // The ID of the wallet the hold is associated with.
+ WalletID string `json:"walletID"`
+ // Metadata associated with the hold.
+ Metadata map[string]string `json:"metadata"`
+ Description string `json:"description"`
+ Destination *Subject `json:"destination,omitempty"`
+}
+
+func (o *Hold) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *Hold) GetWalletID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WalletID
+}
+
+func (o *Hold) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *Hold) GetDescription() string {
+ if o == nil {
+ return ""
+ }
+ return o.Description
+}
+
+func (o *Hold) GetDestination() *Subject {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *Hold) GetDestinationAccount() *LedgerAccountSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.LedgerAccountSubject
+ }
+ return nil
+}
+
+func (o *Hold) GetDestinationWallet() *WalletSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.WalletSubject
+ }
+ return nil
+}
diff --git a/pkg/client/models/components/httpmetadata.go b/pkg/client/models/components/httpmetadata.go
new file mode 100644
index 0000000..e18bdc0
--- /dev/null
+++ b/pkg/client/models/components/httpmetadata.go
@@ -0,0 +1,28 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "net/http"
+)
+
+type HTTPMetadata struct {
+ // Raw HTTP response; suitable for custom response parsing
+ Response *http.Response `json:"-"`
+ // Raw HTTP request; suitable for debugging
+ Request *http.Request `json:"-"`
+}
+
+func (o *HTTPMetadata) GetResponse() *http.Response {
+ if o == nil {
+ return nil
+ }
+ return o.Response
+}
+
+func (o *HTTPMetadata) GetRequest() *http.Request {
+ if o == nil {
+ return nil
+ }
+ return o.Request
+}
diff --git a/pkg/client/models/components/ledgeraccountsubject.go b/pkg/client/models/components/ledgeraccountsubject.go
new file mode 100644
index 0000000..13fb215
--- /dev/null
+++ b/pkg/client/models/components/ledgeraccountsubject.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type LedgerAccountSubject struct {
+ Type string `json:"type"`
+ Identifier string `json:"identifier"`
+}
+
+func (o *LedgerAccountSubject) GetType() string {
+ if o == nil {
+ return ""
+ }
+ return o.Type
+}
+
+func (o *LedgerAccountSubject) GetIdentifier() string {
+ if o == nil {
+ return ""
+ }
+ return o.Identifier
+}
diff --git a/pkg/client/models/components/listrunsresponse.go b/pkg/client/models/components/listrunsresponse.go
new file mode 100644
index 0000000..5af27ef
--- /dev/null
+++ b/pkg/client/models/components/listrunsresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ListRunsResponse struct {
+ Data []WorkflowInstance `json:"data"`
+}
+
+func (o *ListRunsResponse) GetData() []WorkflowInstance {
+ if o == nil {
+ return []WorkflowInstance{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/listtriggersoccurrencesresponse.go b/pkg/client/models/components/listtriggersoccurrencesresponse.go
new file mode 100644
index 0000000..06368b3
--- /dev/null
+++ b/pkg/client/models/components/listtriggersoccurrencesresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ListTriggersOccurrencesResponse struct {
+ Data []TriggerOccurrence `json:"data"`
+}
+
+func (o *ListTriggersOccurrencesResponse) GetData() []TriggerOccurrence {
+ if o == nil {
+ return []TriggerOccurrence{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/listtriggersresponse.go b/pkg/client/models/components/listtriggersresponse.go
new file mode 100644
index 0000000..7e06bbb
--- /dev/null
+++ b/pkg/client/models/components/listtriggersresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ListTriggersResponse struct {
+ Data []Trigger `json:"data"`
+}
+
+func (o *ListTriggersResponse) GetData() []Trigger {
+ if o == nil {
+ return []Trigger{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/listwalletsresponse.go b/pkg/client/models/components/listwalletsresponse.go
new file mode 100644
index 0000000..fec97c9
--- /dev/null
+++ b/pkg/client/models/components/listwalletsresponse.go
@@ -0,0 +1,57 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type Cursor struct {
+ PageSize int64 `json:"pageSize"`
+ HasMore *bool `json:"hasMore,omitempty"`
+ Previous *string `json:"previous,omitempty"`
+ Next *string `json:"next,omitempty"`
+ Data []Wallet `json:"data"`
+}
+
+func (o *Cursor) GetPageSize() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.PageSize
+}
+
+func (o *Cursor) GetHasMore() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.HasMore
+}
+
+func (o *Cursor) GetPrevious() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Previous
+}
+
+func (o *Cursor) GetNext() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Next
+}
+
+func (o *Cursor) GetData() []Wallet {
+ if o == nil {
+ return []Wallet{}
+ }
+ return o.Data
+}
+
+type ListWalletsResponse struct {
+ Cursor Cursor `json:"cursor"`
+}
+
+func (o *ListWalletsResponse) GetCursor() Cursor {
+ if o == nil {
+ return Cursor{}
+ }
+ return o.Cursor
+}
diff --git a/pkg/client/models/components/listworkflowsresponse.go b/pkg/client/models/components/listworkflowsresponse.go
new file mode 100644
index 0000000..8b734b1
--- /dev/null
+++ b/pkg/client/models/components/listworkflowsresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ListWorkflowsResponse struct {
+ Data []Workflow `json:"data"`
+}
+
+func (o *ListWorkflowsResponse) GetData() []Workflow {
+ if o == nil {
+ return []Workflow{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/monetary.go b/pkg/client/models/components/monetary.go
new file mode 100644
index 0000000..c2e4ac6
--- /dev/null
+++ b/pkg/client/models/components/monetary.go
@@ -0,0 +1,40 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type Monetary struct {
+ // The asset of the monetary value.
+ Asset string `json:"asset"`
+ // The amount of the monetary value.
+ Amount *big.Int `json:"amount"`
+}
+
+func (m Monetary) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(m, "", false)
+}
+
+func (m *Monetary) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &m, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Monetary) GetAsset() string {
+ if o == nil {
+ return ""
+ }
+ return o.Asset
+}
+
+func (o *Monetary) GetAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Amount
+}
diff --git a/pkg/client/models/components/payment.go b/pkg/client/models/components/payment.go
new file mode 100644
index 0000000..a0665f4
--- /dev/null
+++ b/pkg/client/models/components/payment.go
@@ -0,0 +1,254 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "fmt"
+ "math/big"
+ "openapi/internal/utils"
+ "time"
+)
+
+type Type string
+
+const (
+ TypePayIn Type = "PAY-IN"
+ TypePayout Type = "PAYOUT"
+ TypeTransfer Type = "TRANSFER"
+ TypeOther Type = "OTHER"
+)
+
+func (e Type) ToPointer() *Type {
+ return &e
+}
+func (e *Type) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "PAY-IN":
+ fallthrough
+ case "PAYOUT":
+ fallthrough
+ case "TRANSFER":
+ fallthrough
+ case "OTHER":
+ *e = Type(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for Type: %v", v)
+ }
+}
+
+type Scheme string
+
+const (
+ SchemeVisa Scheme = "visa"
+ SchemeMastercard Scheme = "mastercard"
+ SchemeAmex Scheme = "amex"
+ SchemeDiners Scheme = "diners"
+ SchemeDiscover Scheme = "discover"
+ SchemeJcb Scheme = "jcb"
+ SchemeUnionpay Scheme = "unionpay"
+ SchemeSepaDebit Scheme = "sepa debit"
+ SchemeSepaCredit Scheme = "sepa credit"
+ SchemeSepa Scheme = "sepa"
+ SchemeApplePay Scheme = "apple pay"
+ SchemeGooglePay Scheme = "google pay"
+ SchemeA2a Scheme = "a2a"
+ SchemeAchDebit Scheme = "ach debit"
+ SchemeAch Scheme = "ach"
+ SchemeRtp Scheme = "rtp"
+ SchemeUnknown Scheme = "unknown"
+ SchemeOther Scheme = "other"
+)
+
+func (e Scheme) ToPointer() *Scheme {
+ return &e
+}
+func (e *Scheme) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "visa":
+ fallthrough
+ case "mastercard":
+ fallthrough
+ case "amex":
+ fallthrough
+ case "diners":
+ fallthrough
+ case "discover":
+ fallthrough
+ case "jcb":
+ fallthrough
+ case "unionpay":
+ fallthrough
+ case "sepa debit":
+ fallthrough
+ case "sepa credit":
+ fallthrough
+ case "sepa":
+ fallthrough
+ case "apple pay":
+ fallthrough
+ case "google pay":
+ fallthrough
+ case "a2a":
+ fallthrough
+ case "ach debit":
+ fallthrough
+ case "ach":
+ fallthrough
+ case "rtp":
+ fallthrough
+ case "unknown":
+ fallthrough
+ case "other":
+ *e = Scheme(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for Scheme: %v", v)
+ }
+}
+
+type Raw struct {
+}
+
+type Payment struct {
+ ID string `json:"id"`
+ Reference string `json:"reference"`
+ SourceAccountID string `json:"sourceAccountID"`
+ DestinationAccountID string `json:"destinationAccountID"`
+ ConnectorID string `json:"connectorID"`
+ Provider *Connector `json:"provider,omitempty"`
+ Type Type `json:"type"`
+ Status PaymentStatus `json:"status"`
+ InitialAmount *big.Int `json:"initialAmount"`
+ Scheme Scheme `json:"scheme"`
+ Asset string `json:"asset"`
+ CreatedAt time.Time `json:"createdAt"`
+ Raw *Raw `json:"raw"`
+ Adjustments []PaymentAdjustment `json:"adjustments"`
+ Metadata *PaymentMetadata `json:"metadata"`
+}
+
+func (p Payment) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(p, "", false)
+}
+
+func (p *Payment) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &p, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Payment) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *Payment) GetReference() string {
+ if o == nil {
+ return ""
+ }
+ return o.Reference
+}
+
+func (o *Payment) GetSourceAccountID() string {
+ if o == nil {
+ return ""
+ }
+ return o.SourceAccountID
+}
+
+func (o *Payment) GetDestinationAccountID() string {
+ if o == nil {
+ return ""
+ }
+ return o.DestinationAccountID
+}
+
+func (o *Payment) GetConnectorID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ConnectorID
+}
+
+func (o *Payment) GetProvider() *Connector {
+ if o == nil {
+ return nil
+ }
+ return o.Provider
+}
+
+func (o *Payment) GetType() Type {
+ if o == nil {
+ return Type("")
+ }
+ return o.Type
+}
+
+func (o *Payment) GetStatus() PaymentStatus {
+ if o == nil {
+ return PaymentStatus("")
+ }
+ return o.Status
+}
+
+func (o *Payment) GetInitialAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.InitialAmount
+}
+
+func (o *Payment) GetScheme() Scheme {
+ if o == nil {
+ return Scheme("")
+ }
+ return o.Scheme
+}
+
+func (o *Payment) GetAsset() string {
+ if o == nil {
+ return ""
+ }
+ return o.Asset
+}
+
+func (o *Payment) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *Payment) GetRaw() *Raw {
+ if o == nil {
+ return nil
+ }
+ return o.Raw
+}
+
+func (o *Payment) GetAdjustments() []PaymentAdjustment {
+ if o == nil {
+ return []PaymentAdjustment{}
+ }
+ return o.Adjustments
+}
+
+func (o *Payment) GetMetadata() *PaymentMetadata {
+ if o == nil {
+ return nil
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/paymentadjustment.go b/pkg/client/models/components/paymentadjustment.go
new file mode 100644
index 0000000..d605ef1
--- /dev/null
+++ b/pkg/client/models/components/paymentadjustment.go
@@ -0,0 +1,66 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+ "time"
+)
+
+type PaymentAdjustmentRaw struct {
+}
+
+type PaymentAdjustment struct {
+ Status PaymentStatus `json:"status"`
+ Amount *big.Int `json:"amount"`
+ Date time.Time `json:"date"`
+ Raw PaymentAdjustmentRaw `json:"raw"`
+ Absolute bool `json:"absolute"`
+}
+
+func (p PaymentAdjustment) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(p, "", false)
+}
+
+func (p *PaymentAdjustment) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &p, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *PaymentAdjustment) GetStatus() PaymentStatus {
+ if o == nil {
+ return PaymentStatus("")
+ }
+ return o.Status
+}
+
+func (o *PaymentAdjustment) GetAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Amount
+}
+
+func (o *PaymentAdjustment) GetDate() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.Date
+}
+
+func (o *PaymentAdjustment) GetRaw() PaymentAdjustmentRaw {
+ if o == nil {
+ return PaymentAdjustmentRaw{}
+ }
+ return o.Raw
+}
+
+func (o *PaymentAdjustment) GetAbsolute() bool {
+ if o == nil {
+ return false
+ }
+ return o.Absolute
+}
diff --git a/pkg/client/models/components/paymentmetadata.go b/pkg/client/models/components/paymentmetadata.go
new file mode 100644
index 0000000..ac913db
--- /dev/null
+++ b/pkg/client/models/components/paymentmetadata.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type PaymentMetadata struct {
+ Key *string `json:"key,omitempty"`
+}
+
+func (o *PaymentMetadata) GetKey() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Key
+}
diff --git a/pkg/client/models/components/paymentstatus.go b/pkg/client/models/components/paymentstatus.go
new file mode 100644
index 0000000..dd81a19
--- /dev/null
+++ b/pkg/client/models/components/paymentstatus.go
@@ -0,0 +1,46 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+type PaymentStatus string
+
+const (
+ PaymentStatusPending PaymentStatus = "PENDING"
+ PaymentStatusActive PaymentStatus = "ACTIVE"
+ PaymentStatusTerminated PaymentStatus = "TERMINATED"
+ PaymentStatusFailed PaymentStatus = "FAILED"
+ PaymentStatusSucceeded PaymentStatus = "SUCCEEDED"
+ PaymentStatusCancelled PaymentStatus = "CANCELLED"
+)
+
+func (e PaymentStatus) ToPointer() *PaymentStatus {
+ return &e
+}
+func (e *PaymentStatus) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "PENDING":
+ fallthrough
+ case "ACTIVE":
+ fallthrough
+ case "TERMINATED":
+ fallthrough
+ case "FAILED":
+ fallthrough
+ case "SUCCEEDED":
+ fallthrough
+ case "CANCELLED":
+ *e = PaymentStatus(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for PaymentStatus: %v", v)
+ }
+}
diff --git a/pkg/client/models/components/posting.go b/pkg/client/models/components/posting.go
new file mode 100644
index 0000000..2a37eed
--- /dev/null
+++ b/pkg/client/models/components/posting.go
@@ -0,0 +1,54 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type Posting struct {
+ Amount *big.Int `json:"amount"`
+ Asset string `json:"asset"`
+ Destination string `json:"destination"`
+ Source string `json:"source"`
+}
+
+func (p Posting) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(p, "", false)
+}
+
+func (p *Posting) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &p, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Posting) GetAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Amount
+}
+
+func (o *Posting) GetAsset() string {
+ if o == nil {
+ return ""
+ }
+ return o.Asset
+}
+
+func (o *Posting) GetDestination() string {
+ if o == nil {
+ return ""
+ }
+ return o.Destination
+}
+
+func (o *Posting) GetSource() string {
+ if o == nil {
+ return ""
+ }
+ return o.Source
+}
diff --git a/pkg/client/models/components/posttransaction.go b/pkg/client/models/components/posttransaction.go
new file mode 100644
index 0000000..1bb8ea3
--- /dev/null
+++ b/pkg/client/models/components/posttransaction.go
@@ -0,0 +1,81 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type Script struct {
+ Plain string `json:"plain"`
+ Vars map[string]any `json:"vars,omitempty"`
+}
+
+func (o *Script) GetPlain() string {
+ if o == nil {
+ return ""
+ }
+ return o.Plain
+}
+
+func (o *Script) GetVars() map[string]any {
+ if o == nil {
+ return nil
+ }
+ return o.Vars
+}
+
+type PostTransaction struct {
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+ Postings []Posting `json:"postings,omitempty"`
+ Script *Script `json:"script,omitempty"`
+ Reference *string `json:"reference,omitempty"`
+ Metadata map[string]string `json:"metadata"`
+}
+
+func (p PostTransaction) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(p, "", false)
+}
+
+func (p *PostTransaction) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &p, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *PostTransaction) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
+
+func (o *PostTransaction) GetPostings() []Posting {
+ if o == nil {
+ return nil
+ }
+ return o.Postings
+}
+
+func (o *PostTransaction) GetScript() *Script {
+ if o == nil {
+ return nil
+ }
+ return o.Script
+}
+
+func (o *PostTransaction) GetReference() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Reference
+}
+
+func (o *PostTransaction) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/readtriggerresponse.go b/pkg/client/models/components/readtriggerresponse.go
new file mode 100644
index 0000000..8349fd2
--- /dev/null
+++ b/pkg/client/models/components/readtriggerresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ReadTriggerResponse struct {
+ Data Trigger `json:"data"`
+}
+
+func (o *ReadTriggerResponse) GetData() Trigger {
+ if o == nil {
+ return Trigger{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/runworkflowresponse.go b/pkg/client/models/components/runworkflowresponse.go
new file mode 100644
index 0000000..7a1c6d3
--- /dev/null
+++ b/pkg/client/models/components/runworkflowresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type RunWorkflowResponse struct {
+ Data WorkflowInstance `json:"data"`
+}
+
+func (o *RunWorkflowResponse) GetData() WorkflowInstance {
+ if o == nil {
+ return WorkflowInstance{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/security.go b/pkg/client/models/components/security.go
new file mode 100644
index 0000000..575119c
--- /dev/null
+++ b/pkg/client/models/components/security.go
@@ -0,0 +1,42 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+)
+
+type Security struct {
+ ClientID string `security:"scheme,type=oauth2,subtype=client_credentials,name=clientID"`
+ ClientSecret string `security:"scheme,type=oauth2,subtype=client_credentials,name=clientSecret"`
+ tokenURL string `const:"/oauth/token"`
+}
+
+func (s Security) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(s, "", false)
+}
+
+func (s *Security) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &s, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Security) GetClientID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ClientID
+}
+
+func (o *Security) GetClientSecret() string {
+ if o == nil {
+ return ""
+ }
+ return o.ClientSecret
+}
+
+func (o *Security) GetTokenURL() string {
+ return "/oauth/token"
+}
diff --git a/pkg/client/models/components/serverinfo.go b/pkg/client/models/components/serverinfo.go
new file mode 100644
index 0000000..65ff7be
--- /dev/null
+++ b/pkg/client/models/components/serverinfo.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type ServerInfo struct {
+ Version string `json:"version"`
+}
+
+func (o *ServerInfo) GetVersion() string {
+ if o == nil {
+ return ""
+ }
+ return o.Version
+}
diff --git a/pkg/client/models/components/stage.go b/pkg/client/models/components/stage.go
new file mode 100644
index 0000000..957d906
--- /dev/null
+++ b/pkg/client/models/components/stage.go
@@ -0,0 +1,116 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "errors"
+ "fmt"
+ "openapi/internal/utils"
+)
+
+type StageType string
+
+const (
+ StageTypeStageSend StageType = "StageSend"
+ StageTypeStageDelay StageType = "StageDelay"
+ StageTypeStageWaitEvent StageType = "StageWaitEvent"
+ StageTypeUpdate StageType = "Update"
+)
+
+type Stage struct {
+ StageSend *StageSend
+ StageDelay *StageDelay
+ StageWaitEvent *StageWaitEvent
+ Update *Update
+
+ Type StageType
+}
+
+func CreateStageStageSend(stageSend StageSend) Stage {
+ typ := StageTypeStageSend
+
+ return Stage{
+ StageSend: &stageSend,
+ Type: typ,
+ }
+}
+
+func CreateStageStageDelay(stageDelay StageDelay) Stage {
+ typ := StageTypeStageDelay
+
+ return Stage{
+ StageDelay: &stageDelay,
+ Type: typ,
+ }
+}
+
+func CreateStageStageWaitEvent(stageWaitEvent StageWaitEvent) Stage {
+ typ := StageTypeStageWaitEvent
+
+ return Stage{
+ StageWaitEvent: &stageWaitEvent,
+ Type: typ,
+ }
+}
+
+func CreateStageUpdate(update Update) Stage {
+ typ := StageTypeUpdate
+
+ return Stage{
+ Update: &update,
+ Type: typ,
+ }
+}
+
+func (u *Stage) UnmarshalJSON(data []byte) error {
+
+ var stageWaitEvent StageWaitEvent = StageWaitEvent{}
+ if err := utils.UnmarshalJSON(data, &stageWaitEvent, "", true, true); err == nil {
+ u.StageWaitEvent = &stageWaitEvent
+ u.Type = StageTypeStageWaitEvent
+ return nil
+ }
+
+ var update Update = Update{}
+ if err := utils.UnmarshalJSON(data, &update, "", true, true); err == nil {
+ u.Update = &update
+ u.Type = StageTypeUpdate
+ return nil
+ }
+
+ var stageDelay StageDelay = StageDelay{}
+ if err := utils.UnmarshalJSON(data, &stageDelay, "", true, true); err == nil {
+ u.StageDelay = &stageDelay
+ u.Type = StageTypeStageDelay
+ return nil
+ }
+
+ var stageSend StageSend = StageSend{}
+ if err := utils.UnmarshalJSON(data, &stageSend, "", true, true); err == nil {
+ u.StageSend = &stageSend
+ u.Type = StageTypeStageSend
+ return nil
+ }
+
+ return fmt.Errorf("could not unmarshal `%s` into any supported union types for Stage", string(data))
+}
+
+func (u Stage) MarshalJSON() ([]byte, error) {
+ if u.StageSend != nil {
+ return utils.MarshalJSON(u.StageSend, "", true)
+ }
+
+ if u.StageDelay != nil {
+ return utils.MarshalJSON(u.StageDelay, "", true)
+ }
+
+ if u.StageWaitEvent != nil {
+ return utils.MarshalJSON(u.StageWaitEvent, "", true)
+ }
+
+ if u.Update != nil {
+ return utils.MarshalJSON(u.Update, "", true)
+ }
+
+ return nil, errors.New("could not marshal union type Stage: all fields are null")
+}
diff --git a/pkg/client/models/components/stagedelay.go b/pkg/client/models/components/stagedelay.go
new file mode 100644
index 0000000..6202e66
--- /dev/null
+++ b/pkg/client/models/components/stagedelay.go
@@ -0,0 +1,38 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type StageDelay struct {
+ Until *time.Time `json:"until,omitempty"`
+ Duration *string `json:"duration,omitempty"`
+}
+
+func (s StageDelay) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(s, "", false)
+}
+
+func (s *StageDelay) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &s, "", false, true); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *StageDelay) GetUntil() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Until
+}
+
+func (o *StageDelay) GetDuration() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Duration
+}
diff --git a/pkg/client/models/components/stagesend.go b/pkg/client/models/components/stagesend.go
new file mode 100644
index 0000000..0a71505
--- /dev/null
+++ b/pkg/client/models/components/stagesend.go
@@ -0,0 +1,62 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type StageSend struct {
+ Amount *Monetary `json:"amount,omitempty"`
+ Destination *StageSendDestination `json:"destination,omitempty"`
+ Source *StageSendSource `json:"source,omitempty"`
+ Metadata map[string]string `json:"metadata,omitempty"`
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+}
+
+func (s StageSend) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(s, "", false)
+}
+
+func (s *StageSend) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &s, "", false, true); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *StageSend) GetAmount() *Monetary {
+ if o == nil {
+ return nil
+ }
+ return o.Amount
+}
+
+func (o *StageSend) GetDestination() *StageSendDestination {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *StageSend) GetSource() *StageSendSource {
+ if o == nil {
+ return nil
+ }
+ return o.Source
+}
+
+func (o *StageSend) GetMetadata() map[string]string {
+ if o == nil {
+ return nil
+ }
+ return o.Metadata
+}
+
+func (o *StageSend) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
diff --git a/pkg/client/models/components/stagesenddestination.go b/pkg/client/models/components/stagesenddestination.go
new file mode 100644
index 0000000..69f8ddb
--- /dev/null
+++ b/pkg/client/models/components/stagesenddestination.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendDestination struct {
+ Wallet *StageSendDestinationWallet `json:"wallet,omitempty"`
+ Account *StageSendDestinationAccount `json:"account,omitempty"`
+ Payment *StageSendDestinationPayment `json:"payment,omitempty"`
+}
+
+func (o *StageSendDestination) GetWallet() *StageSendDestinationWallet {
+ if o == nil {
+ return nil
+ }
+ return o.Wallet
+}
+
+func (o *StageSendDestination) GetAccount() *StageSendDestinationAccount {
+ if o == nil {
+ return nil
+ }
+ return o.Account
+}
+
+func (o *StageSendDestination) GetPayment() *StageSendDestinationPayment {
+ if o == nil {
+ return nil
+ }
+ return o.Payment
+}
diff --git a/pkg/client/models/components/stagesenddestinationaccount.go b/pkg/client/models/components/stagesenddestinationaccount.go
new file mode 100644
index 0000000..a782592
--- /dev/null
+++ b/pkg/client/models/components/stagesenddestinationaccount.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendDestinationAccount struct {
+ ID string `json:"id"`
+ Ledger *string `json:"ledger,omitempty"`
+}
+
+func (o *StageSendDestinationAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *StageSendDestinationAccount) GetLedger() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/stagesenddestinationpayment.go b/pkg/client/models/components/stagesenddestinationpayment.go
new file mode 100644
index 0000000..74394b6
--- /dev/null
+++ b/pkg/client/models/components/stagesenddestinationpayment.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendDestinationPayment struct {
+ Psp string `json:"psp"`
+}
+
+func (o *StageSendDestinationPayment) GetPsp() string {
+ if o == nil {
+ return ""
+ }
+ return o.Psp
+}
diff --git a/pkg/client/models/components/stagesenddestinationwallet.go b/pkg/client/models/components/stagesenddestinationwallet.go
new file mode 100644
index 0000000..a489e30
--- /dev/null
+++ b/pkg/client/models/components/stagesenddestinationwallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendDestinationWallet struct {
+ ID string `json:"id"`
+ Balance *string `json:"balance,omitempty"`
+}
+
+func (o *StageSendDestinationWallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *StageSendDestinationWallet) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/stagesendsource.go b/pkg/client/models/components/stagesendsource.go
new file mode 100644
index 0000000..2eab10d
--- /dev/null
+++ b/pkg/client/models/components/stagesendsource.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendSource struct {
+ Wallet *StageSendSourceWallet `json:"wallet,omitempty"`
+ Account *StageSendSourceAccount `json:"account,omitempty"`
+ Payment *StageSendSourcePayment `json:"payment,omitempty"`
+}
+
+func (o *StageSendSource) GetWallet() *StageSendSourceWallet {
+ if o == nil {
+ return nil
+ }
+ return o.Wallet
+}
+
+func (o *StageSendSource) GetAccount() *StageSendSourceAccount {
+ if o == nil {
+ return nil
+ }
+ return o.Account
+}
+
+func (o *StageSendSource) GetPayment() *StageSendSourcePayment {
+ if o == nil {
+ return nil
+ }
+ return o.Payment
+}
diff --git a/pkg/client/models/components/stagesendsourceaccount.go b/pkg/client/models/components/stagesendsourceaccount.go
new file mode 100644
index 0000000..0e459b6
--- /dev/null
+++ b/pkg/client/models/components/stagesendsourceaccount.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendSourceAccount struct {
+ ID string `json:"id"`
+ Ledger *string `json:"ledger,omitempty"`
+}
+
+func (o *StageSendSourceAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *StageSendSourceAccount) GetLedger() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/stagesendsourcepayment.go b/pkg/client/models/components/stagesendsourcepayment.go
new file mode 100644
index 0000000..49b85c3
--- /dev/null
+++ b/pkg/client/models/components/stagesendsourcepayment.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendSourcePayment struct {
+ ID string `json:"id"`
+}
+
+func (o *StageSendSourcePayment) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/stagesendsourcewallet.go b/pkg/client/models/components/stagesendsourcewallet.go
new file mode 100644
index 0000000..2f31b1b
--- /dev/null
+++ b/pkg/client/models/components/stagesendsourcewallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageSendSourceWallet struct {
+ ID string `json:"id"`
+ Balance *string `json:"balance,omitempty"`
+}
+
+func (o *StageSendSourceWallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *StageSendSourceWallet) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/stagestatus.go b/pkg/client/models/components/stagestatus.go
new file mode 100644
index 0000000..8654083
--- /dev/null
+++ b/pkg/client/models/components/stagestatus.go
@@ -0,0 +1,62 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type StageStatus struct {
+ Stage float64 `json:"stage"`
+ InstanceID string `json:"instanceID"`
+ StartedAt time.Time `json:"startedAt"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+ Error *string `json:"error,omitempty"`
+}
+
+func (s StageStatus) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(s, "", false)
+}
+
+func (s *StageStatus) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &s, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *StageStatus) GetStage() float64 {
+ if o == nil {
+ return 0.0
+ }
+ return o.Stage
+}
+
+func (o *StageStatus) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+func (o *StageStatus) GetStartedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.StartedAt
+}
+
+func (o *StageStatus) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
+
+func (o *StageStatus) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
diff --git a/pkg/client/models/components/stagewaitevent.go b/pkg/client/models/components/stagewaitevent.go
new file mode 100644
index 0000000..7449c9e
--- /dev/null
+++ b/pkg/client/models/components/stagewaitevent.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type StageWaitEvent struct {
+ Event string `json:"event"`
+}
+
+func (o *StageWaitEvent) GetEvent() string {
+ if o == nil {
+ return ""
+ }
+ return o.Event
+}
diff --git a/pkg/client/models/components/subject.go b/pkg/client/models/components/subject.go
new file mode 100644
index 0000000..04a51be
--- /dev/null
+++ b/pkg/client/models/components/subject.go
@@ -0,0 +1,95 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "openapi/internal/utils"
+)
+
+type SubjectType string
+
+const (
+ SubjectTypeAccount SubjectType = "ACCOUNT"
+ SubjectTypeWallet SubjectType = "WALLET"
+)
+
+type Subject struct {
+ LedgerAccountSubject *LedgerAccountSubject
+ WalletSubject *WalletSubject
+
+ Type SubjectType
+}
+
+func CreateSubjectAccount(account LedgerAccountSubject) Subject {
+ typ := SubjectTypeAccount
+
+ typStr := string(typ)
+ account.Type = typStr
+
+ return Subject{
+ LedgerAccountSubject: &account,
+ Type: typ,
+ }
+}
+
+func CreateSubjectWallet(wallet WalletSubject) Subject {
+ typ := SubjectTypeWallet
+
+ typStr := string(typ)
+ wallet.Type = typStr
+
+ return Subject{
+ WalletSubject: &wallet,
+ Type: typ,
+ }
+}
+
+func (u *Subject) UnmarshalJSON(data []byte) error {
+
+ type discriminator struct {
+ Type string `json:"type"`
+ }
+
+ dis := new(discriminator)
+ if err := json.Unmarshal(data, &dis); err != nil {
+ return fmt.Errorf("could not unmarshal discriminator: %w", err)
+ }
+
+ switch dis.Type {
+ case "ACCOUNT":
+ ledgerAccountSubject := new(LedgerAccountSubject)
+ if err := utils.UnmarshalJSON(data, &ledgerAccountSubject, "", true, false); err != nil {
+ return fmt.Errorf("could not unmarshal `%s` into expected (Type == ACCOUNT) type LedgerAccountSubject within Subject: %w", string(data), err)
+ }
+
+ u.LedgerAccountSubject = ledgerAccountSubject
+ u.Type = SubjectTypeAccount
+ return nil
+ case "WALLET":
+ walletSubject := new(WalletSubject)
+ if err := utils.UnmarshalJSON(data, &walletSubject, "", true, false); err != nil {
+ return fmt.Errorf("could not unmarshal `%s` into expected (Type == WALLET) type WalletSubject within Subject: %w", string(data), err)
+ }
+
+ u.WalletSubject = walletSubject
+ u.Type = SubjectTypeWallet
+ return nil
+ }
+
+ return fmt.Errorf("could not unmarshal `%s` into any supported union types for Subject", string(data))
+}
+
+func (u Subject) MarshalJSON() ([]byte, error) {
+ if u.LedgerAccountSubject != nil {
+ return utils.MarshalJSON(u.LedgerAccountSubject, "", true)
+ }
+
+ if u.WalletSubject != nil {
+ return utils.MarshalJSON(u.WalletSubject, "", true)
+ }
+
+ return nil, errors.New("could not marshal union type Subject: all fields are null")
+}
diff --git a/pkg/client/models/components/transaction.go b/pkg/client/models/components/transaction.go
new file mode 100644
index 0000000..77e2396
--- /dev/null
+++ b/pkg/client/models/components/transaction.go
@@ -0,0 +1,71 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+ "time"
+)
+
+type Transaction struct {
+ Timestamp time.Time `json:"timestamp"`
+ Postings []Posting `json:"postings"`
+ Reference *string `json:"reference,omitempty"`
+ Metadata map[string]string `json:"metadata"`
+ ID *big.Int `json:"id"`
+ Reverted bool `json:"reverted"`
+}
+
+func (t Transaction) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(t, "", false)
+}
+
+func (t *Transaction) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &t, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Transaction) GetTimestamp() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.Timestamp
+}
+
+func (o *Transaction) GetPostings() []Posting {
+ if o == nil {
+ return []Posting{}
+ }
+ return o.Postings
+}
+
+func (o *Transaction) GetReference() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Reference
+}
+
+func (o *Transaction) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *Transaction) GetID() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.ID
+}
+
+func (o *Transaction) GetReverted() bool {
+ if o == nil {
+ return false
+ }
+ return o.Reverted
+}
diff --git a/pkg/client/models/components/trigger.go b/pkg/client/models/components/trigger.go
new file mode 100644
index 0000000..e495738
--- /dev/null
+++ b/pkg/client/models/components/trigger.go
@@ -0,0 +1,78 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type Trigger struct {
+ Event string `json:"event"`
+ WorkflowID string `json:"workflowID"`
+ Filter *string `json:"filter,omitempty"`
+ Vars map[string]any `json:"vars,omitempty"`
+ Name *string `json:"name,omitempty"`
+ ID string `json:"id"`
+ CreatedAt time.Time `json:"createdAt"`
+}
+
+func (t Trigger) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(t, "", false)
+}
+
+func (t *Trigger) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &t, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Trigger) GetEvent() string {
+ if o == nil {
+ return ""
+ }
+ return o.Event
+}
+
+func (o *Trigger) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *Trigger) GetFilter() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Filter
+}
+
+func (o *Trigger) GetVars() map[string]any {
+ if o == nil {
+ return nil
+ }
+ return o.Vars
+}
+
+func (o *Trigger) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+func (o *Trigger) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *Trigger) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
diff --git a/pkg/client/models/components/triggerdata.go b/pkg/client/models/components/triggerdata.go
new file mode 100644
index 0000000..2184235
--- /dev/null
+++ b/pkg/client/models/components/triggerdata.go
@@ -0,0 +1,46 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type TriggerData struct {
+ Event string `json:"event"`
+ WorkflowID string `json:"workflowID"`
+ Filter *string `json:"filter,omitempty"`
+ Vars map[string]any `json:"vars,omitempty"`
+ Name *string `json:"name,omitempty"`
+}
+
+func (o *TriggerData) GetEvent() string {
+ if o == nil {
+ return ""
+ }
+ return o.Event
+}
+
+func (o *TriggerData) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *TriggerData) GetFilter() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Filter
+}
+
+func (o *TriggerData) GetVars() map[string]any {
+ if o == nil {
+ return nil
+ }
+ return o.Vars
+}
+
+func (o *TriggerData) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
diff --git a/pkg/client/models/components/triggeroccurrence.go b/pkg/client/models/components/triggeroccurrence.go
new file mode 100644
index 0000000..e1f4352
--- /dev/null
+++ b/pkg/client/models/components/triggeroccurrence.go
@@ -0,0 +1,70 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type TriggerOccurrence struct {
+ Date time.Time `json:"date"`
+ WorkflowInstanceID *string `json:"workflowInstanceID,omitempty"`
+ WorkflowInstance *WorkflowInstance `json:"workflowInstance,omitempty"`
+ TriggerID string `json:"triggerID"`
+ Event map[string]any `json:"event"`
+ Error *string `json:"error,omitempty"`
+}
+
+func (t TriggerOccurrence) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(t, "", false)
+}
+
+func (t *TriggerOccurrence) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &t, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *TriggerOccurrence) GetDate() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.Date
+}
+
+func (o *TriggerOccurrence) GetWorkflowInstanceID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.WorkflowInstanceID
+}
+
+func (o *TriggerOccurrence) GetWorkflowInstance() *WorkflowInstance {
+ if o == nil {
+ return nil
+ }
+ return o.WorkflowInstance
+}
+
+func (o *TriggerOccurrence) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+func (o *TriggerOccurrence) GetEvent() map[string]any {
+ if o == nil {
+ return map[string]any{}
+ }
+ return o.Event
+}
+
+func (o *TriggerOccurrence) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
diff --git a/pkg/client/models/components/update.go b/pkg/client/models/components/update.go
new file mode 100644
index 0000000..99e42d0
--- /dev/null
+++ b/pkg/client/models/components/update.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type Update struct {
+ Account *UpdateAccount `json:"account,omitempty"`
+}
+
+func (o *Update) GetAccount() *UpdateAccount {
+ if o == nil {
+ return nil
+ }
+ return o.Account
+}
diff --git a/pkg/client/models/components/updateaccount.go b/pkg/client/models/components/updateaccount.go
new file mode 100644
index 0000000..887ae84
--- /dev/null
+++ b/pkg/client/models/components/updateaccount.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type UpdateAccount struct {
+ ID string `json:"id"`
+ Metadata map[string]string `json:"metadata"`
+ Ledger string `json:"ledger"`
+}
+
+func (o *UpdateAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *UpdateAccount) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *UpdateAccount) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/v2account.go b/pkg/client/models/components/v2account.go
new file mode 100644
index 0000000..8d8c58f
--- /dev/null
+++ b/pkg/client/models/components/v2account.go
@@ -0,0 +1,38 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2Account struct {
+ Address string `json:"address"`
+ Metadata map[string]string `json:"metadata"`
+ Volumes map[string]V2Volume `json:"volumes,omitempty"`
+ EffectiveVolumes map[string]V2Volume `json:"effectiveVolumes,omitempty"`
+}
+
+func (o *V2Account) GetAddress() string {
+ if o == nil {
+ return ""
+ }
+ return o.Address
+}
+
+func (o *V2Account) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2Account) GetVolumes() map[string]V2Volume {
+ if o == nil {
+ return nil
+ }
+ return o.Volumes
+}
+
+func (o *V2Account) GetEffectiveVolumes() map[string]V2Volume {
+ if o == nil {
+ return nil
+ }
+ return o.EffectiveVolumes
+}
diff --git a/pkg/client/models/components/v2activityaddaccountmetadata.go b/pkg/client/models/components/v2activityaddaccountmetadata.go
new file mode 100644
index 0000000..139c68f
--- /dev/null
+++ b/pkg/client/models/components/v2activityaddaccountmetadata.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityAddAccountMetadata struct {
+ ID string `json:"id"`
+ Ledger string `json:"ledger"`
+ Metadata map[string]string `json:"metadata"`
+}
+
+func (o *V2ActivityAddAccountMetadata) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2ActivityAddAccountMetadata) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
+
+func (o *V2ActivityAddAccountMetadata) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/v2activityconfirmhold.go b/pkg/client/models/components/v2activityconfirmhold.go
new file mode 100644
index 0000000..5147b55
--- /dev/null
+++ b/pkg/client/models/components/v2activityconfirmhold.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityConfirmHold struct {
+ ID string `json:"id"`
+}
+
+func (o *V2ActivityConfirmHold) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/v2activitycreatetransaction.go b/pkg/client/models/components/v2activitycreatetransaction.go
new file mode 100644
index 0000000..3c02802
--- /dev/null
+++ b/pkg/client/models/components/v2activitycreatetransaction.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityCreateTransaction struct {
+ Ledger *string `json:"ledger,omitempty"`
+ Data *V2PostTransaction `json:"data,omitempty"`
+}
+
+func (o *V2ActivityCreateTransaction) GetLedger() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Ledger
+}
+
+func (o *V2ActivityCreateTransaction) GetData() *V2PostTransaction {
+ if o == nil {
+ return nil
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitycreatetransactionoutput.go b/pkg/client/models/components/v2activitycreatetransactionoutput.go
new file mode 100644
index 0000000..95ed6b8
--- /dev/null
+++ b/pkg/client/models/components/v2activitycreatetransactionoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityCreateTransactionOutput struct {
+ Data []V2Transaction `json:"data"`
+}
+
+func (o *V2ActivityCreateTransactionOutput) GetData() []V2Transaction {
+ if o == nil {
+ return []V2Transaction{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitycreditwallet.go b/pkg/client/models/components/v2activitycreditwallet.go
new file mode 100644
index 0000000..f22c098
--- /dev/null
+++ b/pkg/client/models/components/v2activitycreditwallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityCreditWallet struct {
+ ID *string `json:"id,omitempty"`
+ Data *V2CreditWalletRequest `json:"data,omitempty"`
+}
+
+func (o *V2ActivityCreditWallet) GetID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.ID
+}
+
+func (o *V2ActivityCreditWallet) GetData() *V2CreditWalletRequest {
+ if o == nil {
+ return nil
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitydebitwallet.go b/pkg/client/models/components/v2activitydebitwallet.go
new file mode 100644
index 0000000..78b61bf
--- /dev/null
+++ b/pkg/client/models/components/v2activitydebitwallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityDebitWallet struct {
+ ID *string `json:"id,omitempty"`
+ Data *V2DebitWalletRequest `json:"data,omitempty"`
+}
+
+func (o *V2ActivityDebitWallet) GetID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.ID
+}
+
+func (o *V2ActivityDebitWallet) GetData() *V2DebitWalletRequest {
+ if o == nil {
+ return nil
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitydebitwalletoutput.go b/pkg/client/models/components/v2activitydebitwalletoutput.go
new file mode 100644
index 0000000..44a5ac0
--- /dev/null
+++ b/pkg/client/models/components/v2activitydebitwalletoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityDebitWalletOutput struct {
+ Data V2Hold `json:"data"`
+}
+
+func (o *V2ActivityDebitWalletOutput) GetData() V2Hold {
+ if o == nil {
+ return V2Hold{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitygetaccount.go b/pkg/client/models/components/v2activitygetaccount.go
new file mode 100644
index 0000000..deb72b1
--- /dev/null
+++ b/pkg/client/models/components/v2activitygetaccount.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityGetAccount struct {
+ ID string `json:"id"`
+ Ledger string `json:"ledger"`
+}
+
+func (o *V2ActivityGetAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2ActivityGetAccount) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/v2activitygetaccountoutput.go b/pkg/client/models/components/v2activitygetaccountoutput.go
new file mode 100644
index 0000000..e8cdb98
--- /dev/null
+++ b/pkg/client/models/components/v2activitygetaccountoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityGetAccountOutput struct {
+ Data V2Account `json:"data"`
+}
+
+func (o *V2ActivityGetAccountOutput) GetData() V2Account {
+ if o == nil {
+ return V2Account{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitygetpayment.go b/pkg/client/models/components/v2activitygetpayment.go
new file mode 100644
index 0000000..81084a6
--- /dev/null
+++ b/pkg/client/models/components/v2activitygetpayment.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityGetPayment struct {
+ ID string `json:"id"`
+}
+
+func (o *V2ActivityGetPayment) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/v2activitygetpaymentoutput.go b/pkg/client/models/components/v2activitygetpaymentoutput.go
new file mode 100644
index 0000000..160c3de
--- /dev/null
+++ b/pkg/client/models/components/v2activitygetpaymentoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityGetPaymentOutput struct {
+ Data V2Payment `json:"data"`
+}
+
+func (o *V2ActivityGetPaymentOutput) GetData() V2Payment {
+ if o == nil {
+ return V2Payment{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitygetwallet.go b/pkg/client/models/components/v2activitygetwallet.go
new file mode 100644
index 0000000..d76dfc3
--- /dev/null
+++ b/pkg/client/models/components/v2activitygetwallet.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityGetWallet struct {
+ ID string `json:"id"`
+}
+
+func (o *V2ActivityGetWallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/v2activitygetwalletoutput.go b/pkg/client/models/components/v2activitygetwalletoutput.go
new file mode 100644
index 0000000..f31b72d
--- /dev/null
+++ b/pkg/client/models/components/v2activitygetwalletoutput.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityGetWalletOutput struct {
+ Data V2WalletWithBalances `json:"data"`
+}
+
+func (o *V2ActivityGetWalletOutput) GetData() V2WalletWithBalances {
+ if o == nil {
+ return V2WalletWithBalances{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2activitylistwallets.go b/pkg/client/models/components/v2activitylistwallets.go
new file mode 100644
index 0000000..052b17c
--- /dev/null
+++ b/pkg/client/models/components/v2activitylistwallets.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityListWallets struct {
+ Name *string `json:"name,omitempty"`
+}
+
+func (o *V2ActivityListWallets) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
diff --git a/pkg/client/models/components/v2activitystripetransfer.go b/pkg/client/models/components/v2activitystripetransfer.go
new file mode 100644
index 0000000..7def3bd
--- /dev/null
+++ b/pkg/client/models/components/v2activitystripetransfer.go
@@ -0,0 +1,78 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+// V2ActivityStripeTransferMetadata - A set of key/value pairs that you can attach to a transfer object.
+// It can be useful for storing additional information about the transfer in a structured format.
+type V2ActivityStripeTransferMetadata struct {
+}
+
+type V2ActivityStripeTransfer struct {
+ ConnectorID *string `json:"connectorID,omitempty"`
+ Amount *big.Int `json:"amount,omitempty"`
+ Asset *string `json:"asset,omitempty"`
+ Destination *string `json:"destination,omitempty"`
+ WaitingValidation *bool `default:"false" json:"waitingValidation"`
+ // A set of key/value pairs that you can attach to a transfer object.
+ // It can be useful for storing additional information about the transfer in a structured format.
+ //
+ Metadata *V2ActivityStripeTransferMetadata `json:"metadata,omitempty"`
+}
+
+func (v V2ActivityStripeTransfer) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2ActivityStripeTransfer) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2ActivityStripeTransfer) GetConnectorID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.ConnectorID
+}
+
+func (o *V2ActivityStripeTransfer) GetAmount() *big.Int {
+ if o == nil {
+ return nil
+ }
+ return o.Amount
+}
+
+func (o *V2ActivityStripeTransfer) GetAsset() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Asset
+}
+
+func (o *V2ActivityStripeTransfer) GetDestination() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *V2ActivityStripeTransfer) GetWaitingValidation() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.WaitingValidation
+}
+
+func (o *V2ActivityStripeTransfer) GetMetadata() *V2ActivityStripeTransferMetadata {
+ if o == nil {
+ return nil
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/v2activityvoidhold.go b/pkg/client/models/components/v2activityvoidhold.go
new file mode 100644
index 0000000..b012d1c
--- /dev/null
+++ b/pkg/client/models/components/v2activityvoidhold.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ActivityVoidHold struct {
+ ID string `json:"id"`
+}
+
+func (o *V2ActivityVoidHold) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/v2assetholder.go b/pkg/client/models/components/v2assetholder.go
new file mode 100644
index 0000000..aef51b8
--- /dev/null
+++ b/pkg/client/models/components/v2assetholder.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type V2AssetHolder struct {
+ Assets map[string]*big.Int `json:"assets"`
+}
+
+func (v V2AssetHolder) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2AssetHolder) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2AssetHolder) GetAssets() map[string]*big.Int {
+ if o == nil {
+ return map[string]*big.Int{}
+ }
+ return o.Assets
+}
diff --git a/pkg/client/models/components/v2connector.go b/pkg/client/models/components/v2connector.go
new file mode 100644
index 0000000..a77f7e8
--- /dev/null
+++ b/pkg/client/models/components/v2connector.go
@@ -0,0 +1,52 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+type V2Connector string
+
+const (
+ V2ConnectorStripe V2Connector = "STRIPE"
+ V2ConnectorDummyPay V2Connector = "DUMMY-PAY"
+ V2ConnectorWise V2Connector = "WISE"
+ V2ConnectorModulr V2Connector = "MODULR"
+ V2ConnectorCurrencyCloud V2Connector = "CURRENCY-CLOUD"
+ V2ConnectorBankingCircle V2Connector = "BANKING-CIRCLE"
+ V2ConnectorMangopay V2Connector = "MANGOPAY"
+ V2ConnectorMoneycorp V2Connector = "MONEYCORP"
+)
+
+func (e V2Connector) ToPointer() *V2Connector {
+ return &e
+}
+func (e *V2Connector) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "STRIPE":
+ fallthrough
+ case "DUMMY-PAY":
+ fallthrough
+ case "WISE":
+ fallthrough
+ case "MODULR":
+ fallthrough
+ case "CURRENCY-CLOUD":
+ fallthrough
+ case "BANKING-CIRCLE":
+ fallthrough
+ case "MANGOPAY":
+ fallthrough
+ case "MONEYCORP":
+ *e = V2Connector(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for V2Connector: %v", v)
+ }
+}
diff --git a/pkg/client/models/components/v2createtriggerresponse.go b/pkg/client/models/components/v2createtriggerresponse.go
new file mode 100644
index 0000000..11a92d5
--- /dev/null
+++ b/pkg/client/models/components/v2createtriggerresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2CreateTriggerResponse struct {
+ Data V2Trigger `json:"data"`
+}
+
+func (o *V2CreateTriggerResponse) GetData() V2Trigger {
+ if o == nil {
+ return V2Trigger{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2createworkflowrequest.go b/pkg/client/models/components/v2createworkflowrequest.go
new file mode 100644
index 0000000..27ada78
--- /dev/null
+++ b/pkg/client/models/components/v2createworkflowrequest.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2CreateWorkflowRequest struct {
+ Name *string `json:"name,omitempty"`
+ Stages []map[string]any `json:"stages"`
+}
+
+func (o *V2CreateWorkflowRequest) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+func (o *V2CreateWorkflowRequest) GetStages() []map[string]any {
+ if o == nil {
+ return []map[string]any{}
+ }
+ return o.Stages
+}
diff --git a/pkg/client/models/components/v2createworkflowresponse.go b/pkg/client/models/components/v2createworkflowresponse.go
new file mode 100644
index 0000000..85052d3
--- /dev/null
+++ b/pkg/client/models/components/v2createworkflowresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2CreateWorkflowResponse struct {
+ Data V2Workflow `json:"data"`
+}
+
+func (o *V2CreateWorkflowResponse) GetData() V2Workflow {
+ if o == nil {
+ return V2Workflow{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2creditwalletrequest.go b/pkg/client/models/components/v2creditwalletrequest.go
new file mode 100644
index 0000000..c766487
--- /dev/null
+++ b/pkg/client/models/components/v2creditwalletrequest.go
@@ -0,0 +1,72 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2CreditWalletRequest struct {
+ Amount V2Monetary `json:"amount"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Reference *string `json:"reference,omitempty"`
+ Sources []V2Subject `json:"sources"`
+ // The balance to credit
+ Balance *string `json:"balance,omitempty"`
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+}
+
+func (v V2CreditWalletRequest) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2CreditWalletRequest) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2CreditWalletRequest) GetAmount() V2Monetary {
+ if o == nil {
+ return V2Monetary{}
+ }
+ return o.Amount
+}
+
+func (o *V2CreditWalletRequest) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2CreditWalletRequest) GetReference() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Reference
+}
+
+func (o *V2CreditWalletRequest) GetSources() []V2Subject {
+ if o == nil {
+ return []V2Subject{}
+ }
+ return o.Sources
+}
+
+func (o *V2CreditWalletRequest) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
+
+func (o *V2CreditWalletRequest) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
diff --git a/pkg/client/models/components/v2debitwalletrequest.go b/pkg/client/models/components/v2debitwalletrequest.go
new file mode 100644
index 0000000..195bf87
--- /dev/null
+++ b/pkg/client/models/components/v2debitwalletrequest.go
@@ -0,0 +1,95 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2DebitWalletRequest struct {
+ Amount V2Monetary `json:"amount"`
+ // Set to true to create a pending hold. If false, the wallet will be debited immediately.
+ Pending *bool `json:"pending,omitempty"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Description *string `json:"description,omitempty"`
+ Destination *V2Subject `json:"destination,omitempty"`
+ Balances []string `json:"balances,omitempty"`
+ // cannot be used in conjunction with `pending` property
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+}
+
+func (v V2DebitWalletRequest) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2DebitWalletRequest) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2DebitWalletRequest) GetAmount() V2Monetary {
+ if o == nil {
+ return V2Monetary{}
+ }
+ return o.Amount
+}
+
+func (o *V2DebitWalletRequest) GetPending() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.Pending
+}
+
+func (o *V2DebitWalletRequest) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2DebitWalletRequest) GetDescription() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Description
+}
+
+func (o *V2DebitWalletRequest) GetDestination() *V2Subject {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *V2DebitWalletRequest) GetDestinationAccount() *V2LedgerAccountSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.V2LedgerAccountSubject
+ }
+ return nil
+}
+
+func (o *V2DebitWalletRequest) GetDestinationWallet() *V2WalletSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.V2WalletSubject
+ }
+ return nil
+}
+
+func (o *V2DebitWalletRequest) GetBalances() []string {
+ if o == nil {
+ return nil
+ }
+ return o.Balances
+}
+
+func (o *V2DebitWalletRequest) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
diff --git a/pkg/client/models/components/v2getworkflowinstancehistoryresponse.go b/pkg/client/models/components/v2getworkflowinstancehistoryresponse.go
new file mode 100644
index 0000000..ca0c4a0
--- /dev/null
+++ b/pkg/client/models/components/v2getworkflowinstancehistoryresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2GetWorkflowInstanceHistoryResponse struct {
+ Data []V2WorkflowInstanceHistory `json:"data"`
+}
+
+func (o *V2GetWorkflowInstanceHistoryResponse) GetData() []V2WorkflowInstanceHistory {
+ if o == nil {
+ return []V2WorkflowInstanceHistory{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2getworkflowinstancehistorystageresponse.go b/pkg/client/models/components/v2getworkflowinstancehistorystageresponse.go
new file mode 100644
index 0000000..d058e82
--- /dev/null
+++ b/pkg/client/models/components/v2getworkflowinstancehistorystageresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2GetWorkflowInstanceHistoryStageResponse struct {
+ Data []V2WorkflowInstanceHistoryStage `json:"data"`
+}
+
+func (o *V2GetWorkflowInstanceHistoryStageResponse) GetData() []V2WorkflowInstanceHistoryStage {
+ if o == nil {
+ return []V2WorkflowInstanceHistoryStage{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2getworkflowinstanceresponse.go b/pkg/client/models/components/v2getworkflowinstanceresponse.go
new file mode 100644
index 0000000..13b1bfb
--- /dev/null
+++ b/pkg/client/models/components/v2getworkflowinstanceresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2GetWorkflowInstanceResponse struct {
+ Data V2WorkflowInstance `json:"data"`
+}
+
+func (o *V2GetWorkflowInstanceResponse) GetData() V2WorkflowInstance {
+ if o == nil {
+ return V2WorkflowInstance{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2getworkflowresponse.go b/pkg/client/models/components/v2getworkflowresponse.go
new file mode 100644
index 0000000..6ae90df
--- /dev/null
+++ b/pkg/client/models/components/v2getworkflowresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2GetWorkflowResponse struct {
+ Data V2Workflow `json:"data"`
+}
+
+func (o *V2GetWorkflowResponse) GetData() V2Workflow {
+ if o == nil {
+ return V2Workflow{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2hold.go b/pkg/client/models/components/v2hold.go
new file mode 100644
index 0000000..2579f80
--- /dev/null
+++ b/pkg/client/models/components/v2hold.go
@@ -0,0 +1,63 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2Hold struct {
+ // The unique ID of the hold.
+ ID string `json:"id"`
+ // The ID of the wallet the hold is associated with.
+ WalletID string `json:"walletID"`
+ // Metadata associated with the hold.
+ Metadata map[string]string `json:"metadata"`
+ Description string `json:"description"`
+ Destination *V2Subject `json:"destination,omitempty"`
+}
+
+func (o *V2Hold) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2Hold) GetWalletID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WalletID
+}
+
+func (o *V2Hold) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2Hold) GetDescription() string {
+ if o == nil {
+ return ""
+ }
+ return o.Description
+}
+
+func (o *V2Hold) GetDestination() *V2Subject {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *V2Hold) GetDestinationAccount() *V2LedgerAccountSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.V2LedgerAccountSubject
+ }
+ return nil
+}
+
+func (o *V2Hold) GetDestinationWallet() *V2WalletSubject {
+ if v := o.GetDestination(); v != nil {
+ return v.V2WalletSubject
+ }
+ return nil
+}
diff --git a/pkg/client/models/components/v2ledgeraccountsubject.go b/pkg/client/models/components/v2ledgeraccountsubject.go
new file mode 100644
index 0000000..10452c0
--- /dev/null
+++ b/pkg/client/models/components/v2ledgeraccountsubject.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2LedgerAccountSubject struct {
+ Type string `json:"type"`
+ Identifier string `json:"identifier"`
+}
+
+func (o *V2LedgerAccountSubject) GetType() string {
+ if o == nil {
+ return ""
+ }
+ return o.Type
+}
+
+func (o *V2LedgerAccountSubject) GetIdentifier() string {
+ if o == nil {
+ return ""
+ }
+ return o.Identifier
+}
diff --git a/pkg/client/models/components/v2listrunsresponse.go b/pkg/client/models/components/v2listrunsresponse.go
new file mode 100644
index 0000000..67ea698
--- /dev/null
+++ b/pkg/client/models/components/v2listrunsresponse.go
@@ -0,0 +1,57 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ListRunsResponseCursor struct {
+ PageSize int64 `json:"pageSize"`
+ HasMore bool `json:"hasMore"`
+ Previous *string `json:"previous,omitempty"`
+ Next *string `json:"next,omitempty"`
+ Data []V2WorkflowInstance `json:"data"`
+}
+
+func (o *V2ListRunsResponseCursor) GetPageSize() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.PageSize
+}
+
+func (o *V2ListRunsResponseCursor) GetHasMore() bool {
+ if o == nil {
+ return false
+ }
+ return o.HasMore
+}
+
+func (o *V2ListRunsResponseCursor) GetPrevious() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Previous
+}
+
+func (o *V2ListRunsResponseCursor) GetNext() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Next
+}
+
+func (o *V2ListRunsResponseCursor) GetData() []V2WorkflowInstance {
+ if o == nil {
+ return []V2WorkflowInstance{}
+ }
+ return o.Data
+}
+
+type V2ListRunsResponse struct {
+ Cursor V2ListRunsResponseCursor `json:"cursor"`
+}
+
+func (o *V2ListRunsResponse) GetCursor() V2ListRunsResponseCursor {
+ if o == nil {
+ return V2ListRunsResponseCursor{}
+ }
+ return o.Cursor
+}
diff --git a/pkg/client/models/components/v2listtriggersoccurrencesresponse.go b/pkg/client/models/components/v2listtriggersoccurrencesresponse.go
new file mode 100644
index 0000000..8ae6878
--- /dev/null
+++ b/pkg/client/models/components/v2listtriggersoccurrencesresponse.go
@@ -0,0 +1,57 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ListTriggersOccurrencesResponseCursor struct {
+ PageSize int64 `json:"pageSize"`
+ HasMore bool `json:"hasMore"`
+ Previous *string `json:"previous,omitempty"`
+ Next *string `json:"next,omitempty"`
+ Data []V2TriggerOccurrence `json:"data"`
+}
+
+func (o *V2ListTriggersOccurrencesResponseCursor) GetPageSize() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.PageSize
+}
+
+func (o *V2ListTriggersOccurrencesResponseCursor) GetHasMore() bool {
+ if o == nil {
+ return false
+ }
+ return o.HasMore
+}
+
+func (o *V2ListTriggersOccurrencesResponseCursor) GetPrevious() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Previous
+}
+
+func (o *V2ListTriggersOccurrencesResponseCursor) GetNext() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Next
+}
+
+func (o *V2ListTriggersOccurrencesResponseCursor) GetData() []V2TriggerOccurrence {
+ if o == nil {
+ return []V2TriggerOccurrence{}
+ }
+ return o.Data
+}
+
+type V2ListTriggersOccurrencesResponse struct {
+ Cursor V2ListTriggersOccurrencesResponseCursor `json:"cursor"`
+}
+
+func (o *V2ListTriggersOccurrencesResponse) GetCursor() V2ListTriggersOccurrencesResponseCursor {
+ if o == nil {
+ return V2ListTriggersOccurrencesResponseCursor{}
+ }
+ return o.Cursor
+}
diff --git a/pkg/client/models/components/v2listtriggersresponse.go b/pkg/client/models/components/v2listtriggersresponse.go
new file mode 100644
index 0000000..5d7134a
--- /dev/null
+++ b/pkg/client/models/components/v2listtriggersresponse.go
@@ -0,0 +1,57 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ListTriggersResponseCursor struct {
+ PageSize int64 `json:"pageSize"`
+ HasMore bool `json:"hasMore"`
+ Previous *string `json:"previous,omitempty"`
+ Next *string `json:"next,omitempty"`
+ Data []V2Trigger `json:"data"`
+}
+
+func (o *V2ListTriggersResponseCursor) GetPageSize() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.PageSize
+}
+
+func (o *V2ListTriggersResponseCursor) GetHasMore() bool {
+ if o == nil {
+ return false
+ }
+ return o.HasMore
+}
+
+func (o *V2ListTriggersResponseCursor) GetPrevious() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Previous
+}
+
+func (o *V2ListTriggersResponseCursor) GetNext() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Next
+}
+
+func (o *V2ListTriggersResponseCursor) GetData() []V2Trigger {
+ if o == nil {
+ return []V2Trigger{}
+ }
+ return o.Data
+}
+
+type V2ListTriggersResponse struct {
+ Cursor V2ListTriggersResponseCursor `json:"cursor"`
+}
+
+func (o *V2ListTriggersResponse) GetCursor() V2ListTriggersResponseCursor {
+ if o == nil {
+ return V2ListTriggersResponseCursor{}
+ }
+ return o.Cursor
+}
diff --git a/pkg/client/models/components/v2listwalletsresponse.go b/pkg/client/models/components/v2listwalletsresponse.go
new file mode 100644
index 0000000..a5fb37e
--- /dev/null
+++ b/pkg/client/models/components/v2listwalletsresponse.go
@@ -0,0 +1,57 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ListWalletsResponseCursor struct {
+ PageSize int64 `json:"pageSize"`
+ HasMore *bool `json:"hasMore,omitempty"`
+ Previous *string `json:"previous,omitempty"`
+ Next *string `json:"next,omitempty"`
+ Data []V2Wallet `json:"data"`
+}
+
+func (o *V2ListWalletsResponseCursor) GetPageSize() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.PageSize
+}
+
+func (o *V2ListWalletsResponseCursor) GetHasMore() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.HasMore
+}
+
+func (o *V2ListWalletsResponseCursor) GetPrevious() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Previous
+}
+
+func (o *V2ListWalletsResponseCursor) GetNext() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Next
+}
+
+func (o *V2ListWalletsResponseCursor) GetData() []V2Wallet {
+ if o == nil {
+ return []V2Wallet{}
+ }
+ return o.Data
+}
+
+type V2ListWalletsResponse struct {
+ Cursor V2ListWalletsResponseCursor `json:"cursor"`
+}
+
+func (o *V2ListWalletsResponse) GetCursor() V2ListWalletsResponseCursor {
+ if o == nil {
+ return V2ListWalletsResponseCursor{}
+ }
+ return o.Cursor
+}
diff --git a/pkg/client/models/components/v2listworkflowsresponse.go b/pkg/client/models/components/v2listworkflowsresponse.go
new file mode 100644
index 0000000..acb6b80
--- /dev/null
+++ b/pkg/client/models/components/v2listworkflowsresponse.go
@@ -0,0 +1,57 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ListWorkflowsResponseCursor struct {
+ PageSize int64 `json:"pageSize"`
+ HasMore bool `json:"hasMore"`
+ Previous *string `json:"previous,omitempty"`
+ Next *string `json:"next,omitempty"`
+ Data []V2Workflow `json:"data"`
+}
+
+func (o *V2ListWorkflowsResponseCursor) GetPageSize() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.PageSize
+}
+
+func (o *V2ListWorkflowsResponseCursor) GetHasMore() bool {
+ if o == nil {
+ return false
+ }
+ return o.HasMore
+}
+
+func (o *V2ListWorkflowsResponseCursor) GetPrevious() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Previous
+}
+
+func (o *V2ListWorkflowsResponseCursor) GetNext() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Next
+}
+
+func (o *V2ListWorkflowsResponseCursor) GetData() []V2Workflow {
+ if o == nil {
+ return []V2Workflow{}
+ }
+ return o.Data
+}
+
+type V2ListWorkflowsResponse struct {
+ Cursor V2ListWorkflowsResponseCursor `json:"cursor"`
+}
+
+func (o *V2ListWorkflowsResponse) GetCursor() V2ListWorkflowsResponseCursor {
+ if o == nil {
+ return V2ListWorkflowsResponseCursor{}
+ }
+ return o.Cursor
+}
diff --git a/pkg/client/models/components/v2monetary.go b/pkg/client/models/components/v2monetary.go
new file mode 100644
index 0000000..d7445ed
--- /dev/null
+++ b/pkg/client/models/components/v2monetary.go
@@ -0,0 +1,40 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type V2Monetary struct {
+ // The asset of the monetary value.
+ Asset string `json:"asset"`
+ // The amount of the monetary value.
+ Amount *big.Int `json:"amount"`
+}
+
+func (v V2Monetary) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Monetary) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Monetary) GetAsset() string {
+ if o == nil {
+ return ""
+ }
+ return o.Asset
+}
+
+func (o *V2Monetary) GetAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Amount
+}
diff --git a/pkg/client/models/components/v2payment.go b/pkg/client/models/components/v2payment.go
new file mode 100644
index 0000000..a69d42a
--- /dev/null
+++ b/pkg/client/models/components/v2payment.go
@@ -0,0 +1,254 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "fmt"
+ "math/big"
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2PaymentType string
+
+const (
+ V2PaymentTypePayIn V2PaymentType = "PAY-IN"
+ V2PaymentTypePayout V2PaymentType = "PAYOUT"
+ V2PaymentTypeTransfer V2PaymentType = "TRANSFER"
+ V2PaymentTypeOther V2PaymentType = "OTHER"
+)
+
+func (e V2PaymentType) ToPointer() *V2PaymentType {
+ return &e
+}
+func (e *V2PaymentType) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "PAY-IN":
+ fallthrough
+ case "PAYOUT":
+ fallthrough
+ case "TRANSFER":
+ fallthrough
+ case "OTHER":
+ *e = V2PaymentType(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for V2PaymentType: %v", v)
+ }
+}
+
+type V2PaymentScheme string
+
+const (
+ V2PaymentSchemeVisa V2PaymentScheme = "visa"
+ V2PaymentSchemeMastercard V2PaymentScheme = "mastercard"
+ V2PaymentSchemeAmex V2PaymentScheme = "amex"
+ V2PaymentSchemeDiners V2PaymentScheme = "diners"
+ V2PaymentSchemeDiscover V2PaymentScheme = "discover"
+ V2PaymentSchemeJcb V2PaymentScheme = "jcb"
+ V2PaymentSchemeUnionpay V2PaymentScheme = "unionpay"
+ V2PaymentSchemeSepaDebit V2PaymentScheme = "sepa debit"
+ V2PaymentSchemeSepaCredit V2PaymentScheme = "sepa credit"
+ V2PaymentSchemeSepa V2PaymentScheme = "sepa"
+ V2PaymentSchemeApplePay V2PaymentScheme = "apple pay"
+ V2PaymentSchemeGooglePay V2PaymentScheme = "google pay"
+ V2PaymentSchemeA2a V2PaymentScheme = "a2a"
+ V2PaymentSchemeAchDebit V2PaymentScheme = "ach debit"
+ V2PaymentSchemeAch V2PaymentScheme = "ach"
+ V2PaymentSchemeRtp V2PaymentScheme = "rtp"
+ V2PaymentSchemeUnknown V2PaymentScheme = "unknown"
+ V2PaymentSchemeOther V2PaymentScheme = "other"
+)
+
+func (e V2PaymentScheme) ToPointer() *V2PaymentScheme {
+ return &e
+}
+func (e *V2PaymentScheme) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "visa":
+ fallthrough
+ case "mastercard":
+ fallthrough
+ case "amex":
+ fallthrough
+ case "diners":
+ fallthrough
+ case "discover":
+ fallthrough
+ case "jcb":
+ fallthrough
+ case "unionpay":
+ fallthrough
+ case "sepa debit":
+ fallthrough
+ case "sepa credit":
+ fallthrough
+ case "sepa":
+ fallthrough
+ case "apple pay":
+ fallthrough
+ case "google pay":
+ fallthrough
+ case "a2a":
+ fallthrough
+ case "ach debit":
+ fallthrough
+ case "ach":
+ fallthrough
+ case "rtp":
+ fallthrough
+ case "unknown":
+ fallthrough
+ case "other":
+ *e = V2PaymentScheme(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for V2PaymentScheme: %v", v)
+ }
+}
+
+type V2PaymentRaw struct {
+}
+
+type V2Payment struct {
+ ID string `json:"id"`
+ Reference string `json:"reference"`
+ SourceAccountID string `json:"sourceAccountID"`
+ DestinationAccountID string `json:"destinationAccountID"`
+ ConnectorID string `json:"connectorID"`
+ Provider *V2Connector `json:"provider,omitempty"`
+ Type V2PaymentType `json:"type"`
+ Status V2PaymentStatus `json:"status"`
+ InitialAmount *big.Int `json:"initialAmount"`
+ Scheme V2PaymentScheme `json:"scheme"`
+ Asset string `json:"asset"`
+ CreatedAt time.Time `json:"createdAt"`
+ Raw *V2PaymentRaw `json:"raw"`
+ Adjustments []V2PaymentAdjustment `json:"adjustments"`
+ Metadata *V2PaymentMetadata `json:"metadata"`
+}
+
+func (v V2Payment) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Payment) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Payment) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2Payment) GetReference() string {
+ if o == nil {
+ return ""
+ }
+ return o.Reference
+}
+
+func (o *V2Payment) GetSourceAccountID() string {
+ if o == nil {
+ return ""
+ }
+ return o.SourceAccountID
+}
+
+func (o *V2Payment) GetDestinationAccountID() string {
+ if o == nil {
+ return ""
+ }
+ return o.DestinationAccountID
+}
+
+func (o *V2Payment) GetConnectorID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ConnectorID
+}
+
+func (o *V2Payment) GetProvider() *V2Connector {
+ if o == nil {
+ return nil
+ }
+ return o.Provider
+}
+
+func (o *V2Payment) GetType() V2PaymentType {
+ if o == nil {
+ return V2PaymentType("")
+ }
+ return o.Type
+}
+
+func (o *V2Payment) GetStatus() V2PaymentStatus {
+ if o == nil {
+ return V2PaymentStatus("")
+ }
+ return o.Status
+}
+
+func (o *V2Payment) GetInitialAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.InitialAmount
+}
+
+func (o *V2Payment) GetScheme() V2PaymentScheme {
+ if o == nil {
+ return V2PaymentScheme("")
+ }
+ return o.Scheme
+}
+
+func (o *V2Payment) GetAsset() string {
+ if o == nil {
+ return ""
+ }
+ return o.Asset
+}
+
+func (o *V2Payment) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *V2Payment) GetRaw() *V2PaymentRaw {
+ if o == nil {
+ return nil
+ }
+ return o.Raw
+}
+
+func (o *V2Payment) GetAdjustments() []V2PaymentAdjustment {
+ if o == nil {
+ return []V2PaymentAdjustment{}
+ }
+ return o.Adjustments
+}
+
+func (o *V2Payment) GetMetadata() *V2PaymentMetadata {
+ if o == nil {
+ return nil
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/v2paymentadjustment.go b/pkg/client/models/components/v2paymentadjustment.go
new file mode 100644
index 0000000..80240d6
--- /dev/null
+++ b/pkg/client/models/components/v2paymentadjustment.go
@@ -0,0 +1,66 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2PaymentAdjustmentRaw struct {
+}
+
+type V2PaymentAdjustment struct {
+ Status V2PaymentStatus `json:"status"`
+ Amount *big.Int `json:"amount"`
+ Date time.Time `json:"date"`
+ Raw V2PaymentAdjustmentRaw `json:"raw"`
+ Absolute bool `json:"absolute"`
+}
+
+func (v V2PaymentAdjustment) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2PaymentAdjustment) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2PaymentAdjustment) GetStatus() V2PaymentStatus {
+ if o == nil {
+ return V2PaymentStatus("")
+ }
+ return o.Status
+}
+
+func (o *V2PaymentAdjustment) GetAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Amount
+}
+
+func (o *V2PaymentAdjustment) GetDate() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.Date
+}
+
+func (o *V2PaymentAdjustment) GetRaw() V2PaymentAdjustmentRaw {
+ if o == nil {
+ return V2PaymentAdjustmentRaw{}
+ }
+ return o.Raw
+}
+
+func (o *V2PaymentAdjustment) GetAbsolute() bool {
+ if o == nil {
+ return false
+ }
+ return o.Absolute
+}
diff --git a/pkg/client/models/components/v2paymentmetadata.go b/pkg/client/models/components/v2paymentmetadata.go
new file mode 100644
index 0000000..d9f5efa
--- /dev/null
+++ b/pkg/client/models/components/v2paymentmetadata.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2PaymentMetadata struct {
+ Key *string `json:"key,omitempty"`
+}
+
+func (o *V2PaymentMetadata) GetKey() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Key
+}
diff --git a/pkg/client/models/components/v2paymentstatus.go b/pkg/client/models/components/v2paymentstatus.go
new file mode 100644
index 0000000..6f8b83b
--- /dev/null
+++ b/pkg/client/models/components/v2paymentstatus.go
@@ -0,0 +1,46 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+type V2PaymentStatus string
+
+const (
+ V2PaymentStatusPending V2PaymentStatus = "PENDING"
+ V2PaymentStatusActive V2PaymentStatus = "ACTIVE"
+ V2PaymentStatusTerminated V2PaymentStatus = "TERMINATED"
+ V2PaymentStatusFailed V2PaymentStatus = "FAILED"
+ V2PaymentStatusSucceeded V2PaymentStatus = "SUCCEEDED"
+ V2PaymentStatusCancelled V2PaymentStatus = "CANCELLED"
+)
+
+func (e V2PaymentStatus) ToPointer() *V2PaymentStatus {
+ return &e
+}
+func (e *V2PaymentStatus) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "PENDING":
+ fallthrough
+ case "ACTIVE":
+ fallthrough
+ case "TERMINATED":
+ fallthrough
+ case "FAILED":
+ fallthrough
+ case "SUCCEEDED":
+ fallthrough
+ case "CANCELLED":
+ *e = V2PaymentStatus(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for V2PaymentStatus: %v", v)
+ }
+}
diff --git a/pkg/client/models/components/v2posting.go b/pkg/client/models/components/v2posting.go
new file mode 100644
index 0000000..c0204f8
--- /dev/null
+++ b/pkg/client/models/components/v2posting.go
@@ -0,0 +1,54 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type V2Posting struct {
+ Amount *big.Int `json:"amount"`
+ Asset string `json:"asset"`
+ Destination string `json:"destination"`
+ Source string `json:"source"`
+}
+
+func (v V2Posting) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Posting) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Posting) GetAmount() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Amount
+}
+
+func (o *V2Posting) GetAsset() string {
+ if o == nil {
+ return ""
+ }
+ return o.Asset
+}
+
+func (o *V2Posting) GetDestination() string {
+ if o == nil {
+ return ""
+ }
+ return o.Destination
+}
+
+func (o *V2Posting) GetSource() string {
+ if o == nil {
+ return ""
+ }
+ return o.Source
+}
diff --git a/pkg/client/models/components/v2posttransaction.go b/pkg/client/models/components/v2posttransaction.go
new file mode 100644
index 0000000..7c2a928
--- /dev/null
+++ b/pkg/client/models/components/v2posttransaction.go
@@ -0,0 +1,81 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2PostTransactionScript struct {
+ Plain string `json:"plain"`
+ Vars map[string]any `json:"vars,omitempty"`
+}
+
+func (o *V2PostTransactionScript) GetPlain() string {
+ if o == nil {
+ return ""
+ }
+ return o.Plain
+}
+
+func (o *V2PostTransactionScript) GetVars() map[string]any {
+ if o == nil {
+ return nil
+ }
+ return o.Vars
+}
+
+type V2PostTransaction struct {
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+ Postings []V2Posting `json:"postings,omitempty"`
+ Script *V2PostTransactionScript `json:"script,omitempty"`
+ Reference *string `json:"reference,omitempty"`
+ Metadata map[string]string `json:"metadata"`
+}
+
+func (v V2PostTransaction) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2PostTransaction) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2PostTransaction) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
+
+func (o *V2PostTransaction) GetPostings() []V2Posting {
+ if o == nil {
+ return nil
+ }
+ return o.Postings
+}
+
+func (o *V2PostTransaction) GetScript() *V2PostTransactionScript {
+ if o == nil {
+ return nil
+ }
+ return o.Script
+}
+
+func (o *V2PostTransaction) GetReference() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Reference
+}
+
+func (o *V2PostTransaction) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
diff --git a/pkg/client/models/components/v2readtriggerresponse.go b/pkg/client/models/components/v2readtriggerresponse.go
new file mode 100644
index 0000000..b39e807
--- /dev/null
+++ b/pkg/client/models/components/v2readtriggerresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ReadTriggerResponse struct {
+ Data V2Trigger `json:"data"`
+}
+
+func (o *V2ReadTriggerResponse) GetData() V2Trigger {
+ if o == nil {
+ return V2Trigger{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2runworkflowresponse.go b/pkg/client/models/components/v2runworkflowresponse.go
new file mode 100644
index 0000000..7d88bc5
--- /dev/null
+++ b/pkg/client/models/components/v2runworkflowresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2RunWorkflowResponse struct {
+ Data V2WorkflowInstance `json:"data"`
+}
+
+func (o *V2RunWorkflowResponse) GetData() V2WorkflowInstance {
+ if o == nil {
+ return V2WorkflowInstance{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2serverinfo.go b/pkg/client/models/components/v2serverinfo.go
new file mode 100644
index 0000000..00c78f5
--- /dev/null
+++ b/pkg/client/models/components/v2serverinfo.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2ServerInfo struct {
+ Version string `json:"version"`
+}
+
+func (o *V2ServerInfo) GetVersion() string {
+ if o == nil {
+ return ""
+ }
+ return o.Version
+}
diff --git a/pkg/client/models/components/v2stage.go b/pkg/client/models/components/v2stage.go
new file mode 100644
index 0000000..76941f6
--- /dev/null
+++ b/pkg/client/models/components/v2stage.go
@@ -0,0 +1,116 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "errors"
+ "fmt"
+ "openapi/internal/utils"
+)
+
+type V2StageType string
+
+const (
+ V2StageTypeV2StageSend V2StageType = "V2StageSend"
+ V2StageTypeV2StageDelay V2StageType = "V2StageDelay"
+ V2StageTypeV2StageWaitEvent V2StageType = "V2StageWaitEvent"
+ V2StageTypeV2Update V2StageType = "V2Update"
+)
+
+type V2Stage struct {
+ V2StageSend *V2StageSend
+ V2StageDelay *V2StageDelay
+ V2StageWaitEvent *V2StageWaitEvent
+ V2Update *V2Update
+
+ Type V2StageType
+}
+
+func CreateV2StageV2StageSend(v2StageSend V2StageSend) V2Stage {
+ typ := V2StageTypeV2StageSend
+
+ return V2Stage{
+ V2StageSend: &v2StageSend,
+ Type: typ,
+ }
+}
+
+func CreateV2StageV2StageDelay(v2StageDelay V2StageDelay) V2Stage {
+ typ := V2StageTypeV2StageDelay
+
+ return V2Stage{
+ V2StageDelay: &v2StageDelay,
+ Type: typ,
+ }
+}
+
+func CreateV2StageV2StageWaitEvent(v2StageWaitEvent V2StageWaitEvent) V2Stage {
+ typ := V2StageTypeV2StageWaitEvent
+
+ return V2Stage{
+ V2StageWaitEvent: &v2StageWaitEvent,
+ Type: typ,
+ }
+}
+
+func CreateV2StageV2Update(v2Update V2Update) V2Stage {
+ typ := V2StageTypeV2Update
+
+ return V2Stage{
+ V2Update: &v2Update,
+ Type: typ,
+ }
+}
+
+func (u *V2Stage) UnmarshalJSON(data []byte) error {
+
+ var v2StageWaitEvent V2StageWaitEvent = V2StageWaitEvent{}
+ if err := utils.UnmarshalJSON(data, &v2StageWaitEvent, "", true, true); err == nil {
+ u.V2StageWaitEvent = &v2StageWaitEvent
+ u.Type = V2StageTypeV2StageWaitEvent
+ return nil
+ }
+
+ var v2Update V2Update = V2Update{}
+ if err := utils.UnmarshalJSON(data, &v2Update, "", true, true); err == nil {
+ u.V2Update = &v2Update
+ u.Type = V2StageTypeV2Update
+ return nil
+ }
+
+ var v2StageDelay V2StageDelay = V2StageDelay{}
+ if err := utils.UnmarshalJSON(data, &v2StageDelay, "", true, true); err == nil {
+ u.V2StageDelay = &v2StageDelay
+ u.Type = V2StageTypeV2StageDelay
+ return nil
+ }
+
+ var v2StageSend V2StageSend = V2StageSend{}
+ if err := utils.UnmarshalJSON(data, &v2StageSend, "", true, true); err == nil {
+ u.V2StageSend = &v2StageSend
+ u.Type = V2StageTypeV2StageSend
+ return nil
+ }
+
+ return fmt.Errorf("could not unmarshal `%s` into any supported union types for V2Stage", string(data))
+}
+
+func (u V2Stage) MarshalJSON() ([]byte, error) {
+ if u.V2StageSend != nil {
+ return utils.MarshalJSON(u.V2StageSend, "", true)
+ }
+
+ if u.V2StageDelay != nil {
+ return utils.MarshalJSON(u.V2StageDelay, "", true)
+ }
+
+ if u.V2StageWaitEvent != nil {
+ return utils.MarshalJSON(u.V2StageWaitEvent, "", true)
+ }
+
+ if u.V2Update != nil {
+ return utils.MarshalJSON(u.V2Update, "", true)
+ }
+
+ return nil, errors.New("could not marshal union type V2Stage: all fields are null")
+}
diff --git a/pkg/client/models/components/v2stagedelay.go b/pkg/client/models/components/v2stagedelay.go
new file mode 100644
index 0000000..3fb7f73
--- /dev/null
+++ b/pkg/client/models/components/v2stagedelay.go
@@ -0,0 +1,38 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2StageDelay struct {
+ Until *time.Time `json:"until,omitempty"`
+ Duration *string `json:"duration,omitempty"`
+}
+
+func (v V2StageDelay) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2StageDelay) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, true); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2StageDelay) GetUntil() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Until
+}
+
+func (o *V2StageDelay) GetDuration() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Duration
+}
diff --git a/pkg/client/models/components/v2stagesend.go b/pkg/client/models/components/v2stagesend.go
new file mode 100644
index 0000000..7c9e834
--- /dev/null
+++ b/pkg/client/models/components/v2stagesend.go
@@ -0,0 +1,62 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2StageSend struct {
+ Amount *V2Monetary `json:"amount,omitempty"`
+ Destination *V2StageSendDestination `json:"destination,omitempty"`
+ Source *V2StageSendSource `json:"source,omitempty"`
+ Metadata map[string]string `json:"metadata,omitempty"`
+ Timestamp *time.Time `json:"timestamp,omitempty"`
+}
+
+func (v V2StageSend) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2StageSend) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, true); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2StageSend) GetAmount() *V2Monetary {
+ if o == nil {
+ return nil
+ }
+ return o.Amount
+}
+
+func (o *V2StageSend) GetDestination() *V2StageSendDestination {
+ if o == nil {
+ return nil
+ }
+ return o.Destination
+}
+
+func (o *V2StageSend) GetSource() *V2StageSendSource {
+ if o == nil {
+ return nil
+ }
+ return o.Source
+}
+
+func (o *V2StageSend) GetMetadata() map[string]string {
+ if o == nil {
+ return nil
+ }
+ return o.Metadata
+}
+
+func (o *V2StageSend) GetTimestamp() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.Timestamp
+}
diff --git a/pkg/client/models/components/v2stagesenddestination.go b/pkg/client/models/components/v2stagesenddestination.go
new file mode 100644
index 0000000..049c0fe
--- /dev/null
+++ b/pkg/client/models/components/v2stagesenddestination.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendDestination struct {
+ Wallet *V2StageSendDestinationWallet `json:"wallet,omitempty"`
+ Account *V2StageSendDestinationAccount `json:"account,omitempty"`
+ Payment *V2StageSendDestinationPayment `json:"payment,omitempty"`
+}
+
+func (o *V2StageSendDestination) GetWallet() *V2StageSendDestinationWallet {
+ if o == nil {
+ return nil
+ }
+ return o.Wallet
+}
+
+func (o *V2StageSendDestination) GetAccount() *V2StageSendDestinationAccount {
+ if o == nil {
+ return nil
+ }
+ return o.Account
+}
+
+func (o *V2StageSendDestination) GetPayment() *V2StageSendDestinationPayment {
+ if o == nil {
+ return nil
+ }
+ return o.Payment
+}
diff --git a/pkg/client/models/components/v2stagesenddestinationaccount.go b/pkg/client/models/components/v2stagesenddestinationaccount.go
new file mode 100644
index 0000000..75a7b5c
--- /dev/null
+++ b/pkg/client/models/components/v2stagesenddestinationaccount.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendDestinationAccount struct {
+ ID string `json:"id"`
+ Ledger *string `json:"ledger,omitempty"`
+}
+
+func (o *V2StageSendDestinationAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2StageSendDestinationAccount) GetLedger() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/v2stagesenddestinationpayment.go b/pkg/client/models/components/v2stagesenddestinationpayment.go
new file mode 100644
index 0000000..9ce969e
--- /dev/null
+++ b/pkg/client/models/components/v2stagesenddestinationpayment.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendDestinationPayment struct {
+ Psp string `json:"psp"`
+}
+
+func (o *V2StageSendDestinationPayment) GetPsp() string {
+ if o == nil {
+ return ""
+ }
+ return o.Psp
+}
diff --git a/pkg/client/models/components/v2stagesenddestinationwallet.go b/pkg/client/models/components/v2stagesenddestinationwallet.go
new file mode 100644
index 0000000..291d168
--- /dev/null
+++ b/pkg/client/models/components/v2stagesenddestinationwallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendDestinationWallet struct {
+ ID string `json:"id"`
+ Balance *string `json:"balance,omitempty"`
+}
+
+func (o *V2StageSendDestinationWallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2StageSendDestinationWallet) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/v2stagesendsource.go b/pkg/client/models/components/v2stagesendsource.go
new file mode 100644
index 0000000..29d4495
--- /dev/null
+++ b/pkg/client/models/components/v2stagesendsource.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendSource struct {
+ Wallet *V2StageSendSourceWallet `json:"wallet,omitempty"`
+ Account *V2StageSendSourceAccount `json:"account,omitempty"`
+ Payment *V2StageSendSourcePayment `json:"payment,omitempty"`
+}
+
+func (o *V2StageSendSource) GetWallet() *V2StageSendSourceWallet {
+ if o == nil {
+ return nil
+ }
+ return o.Wallet
+}
+
+func (o *V2StageSendSource) GetAccount() *V2StageSendSourceAccount {
+ if o == nil {
+ return nil
+ }
+ return o.Account
+}
+
+func (o *V2StageSendSource) GetPayment() *V2StageSendSourcePayment {
+ if o == nil {
+ return nil
+ }
+ return o.Payment
+}
diff --git a/pkg/client/models/components/v2stagesendsourceaccount.go b/pkg/client/models/components/v2stagesendsourceaccount.go
new file mode 100644
index 0000000..9320921
--- /dev/null
+++ b/pkg/client/models/components/v2stagesendsourceaccount.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendSourceAccount struct {
+ ID string `json:"id"`
+ Ledger *string `json:"ledger,omitempty"`
+}
+
+func (o *V2StageSendSourceAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2StageSendSourceAccount) GetLedger() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/v2stagesendsourcepayment.go b/pkg/client/models/components/v2stagesendsourcepayment.go
new file mode 100644
index 0000000..3590fca
--- /dev/null
+++ b/pkg/client/models/components/v2stagesendsourcepayment.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendSourcePayment struct {
+ ID string `json:"id"`
+}
+
+func (o *V2StageSendSourcePayment) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/v2stagesendsourcewallet.go b/pkg/client/models/components/v2stagesendsourcewallet.go
new file mode 100644
index 0000000..28dfc50
--- /dev/null
+++ b/pkg/client/models/components/v2stagesendsourcewallet.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageSendSourceWallet struct {
+ ID string `json:"id"`
+ Balance *string `json:"balance,omitempty"`
+}
+
+func (o *V2StageSendSourceWallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2StageSendSourceWallet) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/v2stagestatus.go b/pkg/client/models/components/v2stagestatus.go
new file mode 100644
index 0000000..02cbd13
--- /dev/null
+++ b/pkg/client/models/components/v2stagestatus.go
@@ -0,0 +1,62 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2StageStatus struct {
+ Stage float64 `json:"stage"`
+ InstanceID string `json:"instanceID"`
+ StartedAt time.Time `json:"startedAt"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+ Error *string `json:"error,omitempty"`
+}
+
+func (v V2StageStatus) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2StageStatus) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2StageStatus) GetStage() float64 {
+ if o == nil {
+ return 0.0
+ }
+ return o.Stage
+}
+
+func (o *V2StageStatus) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+func (o *V2StageStatus) GetStartedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.StartedAt
+}
+
+func (o *V2StageStatus) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
+
+func (o *V2StageStatus) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
diff --git a/pkg/client/models/components/v2stagewaitevent.go b/pkg/client/models/components/v2stagewaitevent.go
new file mode 100644
index 0000000..96a3663
--- /dev/null
+++ b/pkg/client/models/components/v2stagewaitevent.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2StageWaitEvent struct {
+ Event string `json:"event"`
+}
+
+func (o *V2StageWaitEvent) GetEvent() string {
+ if o == nil {
+ return ""
+ }
+ return o.Event
+}
diff --git a/pkg/client/models/components/v2subject.go b/pkg/client/models/components/v2subject.go
new file mode 100644
index 0000000..b0f9e50
--- /dev/null
+++ b/pkg/client/models/components/v2subject.go
@@ -0,0 +1,95 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "openapi/internal/utils"
+)
+
+type V2SubjectType string
+
+const (
+ V2SubjectTypeAccount V2SubjectType = "ACCOUNT"
+ V2SubjectTypeWallet V2SubjectType = "WALLET"
+)
+
+type V2Subject struct {
+ V2LedgerAccountSubject *V2LedgerAccountSubject
+ V2WalletSubject *V2WalletSubject
+
+ Type V2SubjectType
+}
+
+func CreateV2SubjectAccount(account V2LedgerAccountSubject) V2Subject {
+ typ := V2SubjectTypeAccount
+
+ typStr := string(typ)
+ account.Type = typStr
+
+ return V2Subject{
+ V2LedgerAccountSubject: &account,
+ Type: typ,
+ }
+}
+
+func CreateV2SubjectWallet(wallet V2WalletSubject) V2Subject {
+ typ := V2SubjectTypeWallet
+
+ typStr := string(typ)
+ wallet.Type = typStr
+
+ return V2Subject{
+ V2WalletSubject: &wallet,
+ Type: typ,
+ }
+}
+
+func (u *V2Subject) UnmarshalJSON(data []byte) error {
+
+ type discriminator struct {
+ Type string `json:"type"`
+ }
+
+ dis := new(discriminator)
+ if err := json.Unmarshal(data, &dis); err != nil {
+ return fmt.Errorf("could not unmarshal discriminator: %w", err)
+ }
+
+ switch dis.Type {
+ case "ACCOUNT":
+ v2LedgerAccountSubject := new(V2LedgerAccountSubject)
+ if err := utils.UnmarshalJSON(data, &v2LedgerAccountSubject, "", true, false); err != nil {
+ return fmt.Errorf("could not unmarshal `%s` into expected (Type == ACCOUNT) type V2LedgerAccountSubject within V2Subject: %w", string(data), err)
+ }
+
+ u.V2LedgerAccountSubject = v2LedgerAccountSubject
+ u.Type = V2SubjectTypeAccount
+ return nil
+ case "WALLET":
+ v2WalletSubject := new(V2WalletSubject)
+ if err := utils.UnmarshalJSON(data, &v2WalletSubject, "", true, false); err != nil {
+ return fmt.Errorf("could not unmarshal `%s` into expected (Type == WALLET) type V2WalletSubject within V2Subject: %w", string(data), err)
+ }
+
+ u.V2WalletSubject = v2WalletSubject
+ u.Type = V2SubjectTypeWallet
+ return nil
+ }
+
+ return fmt.Errorf("could not unmarshal `%s` into any supported union types for V2Subject", string(data))
+}
+
+func (u V2Subject) MarshalJSON() ([]byte, error) {
+ if u.V2LedgerAccountSubject != nil {
+ return utils.MarshalJSON(u.V2LedgerAccountSubject, "", true)
+ }
+
+ if u.V2WalletSubject != nil {
+ return utils.MarshalJSON(u.V2WalletSubject, "", true)
+ }
+
+ return nil, errors.New("could not marshal union type V2Subject: all fields are null")
+}
diff --git a/pkg/client/models/components/v2testtriggerresponse.go b/pkg/client/models/components/v2testtriggerresponse.go
new file mode 100644
index 0000000..0799f1e
--- /dev/null
+++ b/pkg/client/models/components/v2testtriggerresponse.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2TestTriggerResponse struct {
+ Data V2TriggerTest `json:"data"`
+}
+
+func (o *V2TestTriggerResponse) GetData() V2TriggerTest {
+ if o == nil {
+ return V2TriggerTest{}
+ }
+ return o.Data
+}
diff --git a/pkg/client/models/components/v2transaction.go b/pkg/client/models/components/v2transaction.go
new file mode 100644
index 0000000..7a8e803
--- /dev/null
+++ b/pkg/client/models/components/v2transaction.go
@@ -0,0 +1,63 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2Transaction struct {
+ Timestamp time.Time `json:"timestamp"`
+ Postings []V2Posting `json:"postings"`
+ Reference *string `json:"reference,omitempty"`
+ Metadata map[string]string `json:"metadata"`
+ Txid *big.Int `json:"txid"`
+}
+
+func (v V2Transaction) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Transaction) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Transaction) GetTimestamp() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.Timestamp
+}
+
+func (o *V2Transaction) GetPostings() []V2Posting {
+ if o == nil {
+ return []V2Posting{}
+ }
+ return o.Postings
+}
+
+func (o *V2Transaction) GetReference() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Reference
+}
+
+func (o *V2Transaction) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2Transaction) GetTxid() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Txid
+}
diff --git a/pkg/client/models/components/v2trigger.go b/pkg/client/models/components/v2trigger.go
new file mode 100644
index 0000000..93511a5
--- /dev/null
+++ b/pkg/client/models/components/v2trigger.go
@@ -0,0 +1,78 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2Trigger struct {
+ Event string `json:"event"`
+ WorkflowID string `json:"workflowID"`
+ Filter *string `json:"filter,omitempty"`
+ Vars map[string]any `json:"vars,omitempty"`
+ Name *string `json:"name,omitempty"`
+ ID string `json:"id"`
+ CreatedAt time.Time `json:"createdAt"`
+}
+
+func (v V2Trigger) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Trigger) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Trigger) GetEvent() string {
+ if o == nil {
+ return ""
+ }
+ return o.Event
+}
+
+func (o *V2Trigger) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *V2Trigger) GetFilter() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Filter
+}
+
+func (o *V2Trigger) GetVars() map[string]any {
+ if o == nil {
+ return nil
+ }
+ return o.Vars
+}
+
+func (o *V2Trigger) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+func (o *V2Trigger) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2Trigger) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
diff --git a/pkg/client/models/components/v2triggerdata.go b/pkg/client/models/components/v2triggerdata.go
new file mode 100644
index 0000000..3b3fdc7
--- /dev/null
+++ b/pkg/client/models/components/v2triggerdata.go
@@ -0,0 +1,46 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2TriggerData struct {
+ Event string `json:"event"`
+ WorkflowID string `json:"workflowID"`
+ Filter *string `json:"filter,omitempty"`
+ Vars map[string]any `json:"vars,omitempty"`
+ Name *string `json:"name,omitempty"`
+}
+
+func (o *V2TriggerData) GetEvent() string {
+ if o == nil {
+ return ""
+ }
+ return o.Event
+}
+
+func (o *V2TriggerData) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *V2TriggerData) GetFilter() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Filter
+}
+
+func (o *V2TriggerData) GetVars() map[string]any {
+ if o == nil {
+ return nil
+ }
+ return o.Vars
+}
+
+func (o *V2TriggerData) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
diff --git a/pkg/client/models/components/v2triggeroccurrence.go b/pkg/client/models/components/v2triggeroccurrence.go
new file mode 100644
index 0000000..9b99452
--- /dev/null
+++ b/pkg/client/models/components/v2triggeroccurrence.go
@@ -0,0 +1,70 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2TriggerOccurrence struct {
+ Date time.Time `json:"date"`
+ WorkflowInstanceID *string `json:"workflowInstanceID,omitempty"`
+ WorkflowInstance *V2WorkflowInstance `json:"workflowInstance,omitempty"`
+ TriggerID string `json:"triggerID"`
+ Error *string `json:"error,omitempty"`
+ Event map[string]any `json:"event"`
+}
+
+func (v V2TriggerOccurrence) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2TriggerOccurrence) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2TriggerOccurrence) GetDate() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.Date
+}
+
+func (o *V2TriggerOccurrence) GetWorkflowInstanceID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.WorkflowInstanceID
+}
+
+func (o *V2TriggerOccurrence) GetWorkflowInstance() *V2WorkflowInstance {
+ if o == nil {
+ return nil
+ }
+ return o.WorkflowInstance
+}
+
+func (o *V2TriggerOccurrence) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+func (o *V2TriggerOccurrence) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
+
+func (o *V2TriggerOccurrence) GetEvent() map[string]any {
+ if o == nil {
+ return map[string]any{}
+ }
+ return o.Event
+}
diff --git a/pkg/client/models/components/v2triggertest.go b/pkg/client/models/components/v2triggertest.go
new file mode 100644
index 0000000..7c2b6ea
--- /dev/null
+++ b/pkg/client/models/components/v2triggertest.go
@@ -0,0 +1,60 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type Filter struct {
+ Match *bool `json:"match,omitempty"`
+ Error *string `json:"error,omitempty"`
+}
+
+func (o *Filter) GetMatch() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.Match
+}
+
+func (o *Filter) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
+
+type Variables struct {
+ Value *string `json:"value,omitempty"`
+ Error *string `json:"error,omitempty"`
+}
+
+func (o *Variables) GetValue() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Value
+}
+
+func (o *Variables) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
+
+type V2TriggerTest struct {
+ Filter *Filter `json:"filter,omitempty"`
+ Variables map[string]Variables `json:"variables,omitempty"`
+}
+
+func (o *V2TriggerTest) GetFilter() *Filter {
+ if o == nil {
+ return nil
+ }
+ return o.Filter
+}
+
+func (o *V2TriggerTest) GetVariables() map[string]Variables {
+ if o == nil {
+ return nil
+ }
+ return o.Variables
+}
diff --git a/pkg/client/models/components/v2update.go b/pkg/client/models/components/v2update.go
new file mode 100644
index 0000000..4dedcc8
--- /dev/null
+++ b/pkg/client/models/components/v2update.go
@@ -0,0 +1,14 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2Update struct {
+ Account *V2UpdateAccount `json:"account,omitempty"`
+}
+
+func (o *V2Update) GetAccount() *V2UpdateAccount {
+ if o == nil {
+ return nil
+ }
+ return o.Account
+}
diff --git a/pkg/client/models/components/v2updateaccount.go b/pkg/client/models/components/v2updateaccount.go
new file mode 100644
index 0000000..9c539f1
--- /dev/null
+++ b/pkg/client/models/components/v2updateaccount.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2UpdateAccount struct {
+ ID string `json:"id"`
+ Metadata map[string]string `json:"metadata"`
+ Ledger string `json:"ledger"`
+}
+
+func (o *V2UpdateAccount) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2UpdateAccount) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2UpdateAccount) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/v2volume.go b/pkg/client/models/components/v2volume.go
new file mode 100644
index 0000000..9c89aed
--- /dev/null
+++ b/pkg/client/models/components/v2volume.go
@@ -0,0 +1,46 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type V2Volume struct {
+ Input *big.Int `json:"input"`
+ Output *big.Int `json:"output"`
+ Balance *big.Int `json:"balance,omitempty"`
+}
+
+func (v V2Volume) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Volume) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Volume) GetInput() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Input
+}
+
+func (o *V2Volume) GetOutput() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Output
+}
+
+func (o *V2Volume) GetBalance() *big.Int {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/v2wallet.go b/pkg/client/models/components/v2wallet.go
new file mode 100644
index 0000000..2743b27
--- /dev/null
+++ b/pkg/client/models/components/v2wallet.go
@@ -0,0 +1,64 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2Wallet struct {
+ // The unique ID of the wallet.
+ ID string `json:"id"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Name string `json:"name"`
+ CreatedAt time.Time `json:"createdAt"`
+ Ledger string `json:"ledger"`
+}
+
+func (v V2Wallet) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Wallet) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Wallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2Wallet) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2Wallet) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *V2Wallet) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *V2Wallet) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/v2walletsubject.go b/pkg/client/models/components/v2walletsubject.go
new file mode 100644
index 0000000..91ff634
--- /dev/null
+++ b/pkg/client/models/components/v2walletsubject.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2WalletSubject struct {
+ Type string `json:"type"`
+ Identifier string `json:"identifier"`
+ Balance *string `json:"balance,omitempty"`
+}
+
+func (o *V2WalletSubject) GetType() string {
+ if o == nil {
+ return ""
+ }
+ return o.Type
+}
+
+func (o *V2WalletSubject) GetIdentifier() string {
+ if o == nil {
+ return ""
+ }
+ return o.Identifier
+}
+
+func (o *V2WalletSubject) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/v2walletwithbalances.go b/pkg/client/models/components/v2walletwithbalances.go
new file mode 100644
index 0000000..d3e0664
--- /dev/null
+++ b/pkg/client/models/components/v2walletwithbalances.go
@@ -0,0 +1,83 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2WalletWithBalancesBalances struct {
+ Main V2AssetHolder `json:"main"`
+}
+
+func (o *V2WalletWithBalancesBalances) GetMain() V2AssetHolder {
+ if o == nil {
+ return V2AssetHolder{}
+ }
+ return o.Main
+}
+
+type V2WalletWithBalances struct {
+ // The unique ID of the wallet.
+ ID string `json:"id"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Name string `json:"name"`
+ CreatedAt time.Time `json:"createdAt"`
+ Balances V2WalletWithBalancesBalances `json:"balances"`
+ Ledger string `json:"ledger"`
+}
+
+func (v V2WalletWithBalances) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2WalletWithBalances) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2WalletWithBalances) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2WalletWithBalances) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *V2WalletWithBalances) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *V2WalletWithBalances) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *V2WalletWithBalances) GetBalances() V2WalletWithBalancesBalances {
+ if o == nil {
+ return V2WalletWithBalancesBalances{}
+ }
+ return o.Balances
+}
+
+func (o *V2WalletWithBalances) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/v2workflow.go b/pkg/client/models/components/v2workflow.go
new file mode 100644
index 0000000..07527a8
--- /dev/null
+++ b/pkg/client/models/components/v2workflow.go
@@ -0,0 +1,54 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2Workflow struct {
+ Config V2WorkflowConfig `json:"config"`
+ CreatedAt time.Time `json:"createdAt"`
+ UpdatedAt time.Time `json:"updatedAt"`
+ ID string `json:"id"`
+}
+
+func (v V2Workflow) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2Workflow) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2Workflow) GetConfig() V2WorkflowConfig {
+ if o == nil {
+ return V2WorkflowConfig{}
+ }
+ return o.Config
+}
+
+func (o *V2Workflow) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *V2Workflow) GetUpdatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.UpdatedAt
+}
+
+func (o *V2Workflow) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/v2workflowconfig.go b/pkg/client/models/components/v2workflowconfig.go
new file mode 100644
index 0000000..d067b06
--- /dev/null
+++ b/pkg/client/models/components/v2workflowconfig.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2WorkflowConfig struct {
+ Name *string `json:"name,omitempty"`
+ Stages []map[string]any `json:"stages"`
+}
+
+func (o *V2WorkflowConfig) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+func (o *V2WorkflowConfig) GetStages() []map[string]any {
+ if o == nil {
+ return []map[string]any{}
+ }
+ return o.Stages
+}
diff --git a/pkg/client/models/components/v2workflowinstance.go b/pkg/client/models/components/v2workflowinstance.go
new file mode 100644
index 0000000..d954013
--- /dev/null
+++ b/pkg/client/models/components/v2workflowinstance.go
@@ -0,0 +1,86 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2WorkflowInstance struct {
+ WorkflowID string `json:"workflowID"`
+ ID string `json:"id"`
+ CreatedAt time.Time `json:"createdAt"`
+ UpdatedAt time.Time `json:"updatedAt"`
+ Status []V2StageStatus `json:"status,omitempty"`
+ Terminated bool `json:"terminated"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+ Error *string `json:"error,omitempty"`
+}
+
+func (v V2WorkflowInstance) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2WorkflowInstance) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2WorkflowInstance) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *V2WorkflowInstance) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *V2WorkflowInstance) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *V2WorkflowInstance) GetUpdatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.UpdatedAt
+}
+
+func (o *V2WorkflowInstance) GetStatus() []V2StageStatus {
+ if o == nil {
+ return nil
+ }
+ return o.Status
+}
+
+func (o *V2WorkflowInstance) GetTerminated() bool {
+ if o == nil {
+ return false
+ }
+ return o.Terminated
+}
+
+func (o *V2WorkflowInstance) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
+
+func (o *V2WorkflowInstance) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
diff --git a/pkg/client/models/components/v2workflowinstancehistory.go b/pkg/client/models/components/v2workflowinstancehistory.go
new file mode 100644
index 0000000..affcc79
--- /dev/null
+++ b/pkg/client/models/components/v2workflowinstancehistory.go
@@ -0,0 +1,70 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2WorkflowInstanceHistory struct {
+ Name string `json:"name"`
+ Input V2Stage `json:"input"`
+ Error *string `json:"error,omitempty"`
+ Terminated bool `json:"terminated"`
+ StartedAt time.Time `json:"startedAt"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+}
+
+func (v V2WorkflowInstanceHistory) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2WorkflowInstanceHistory) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2WorkflowInstanceHistory) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *V2WorkflowInstanceHistory) GetInput() V2Stage {
+ if o == nil {
+ return V2Stage{}
+ }
+ return o.Input
+}
+
+func (o *V2WorkflowInstanceHistory) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
+
+func (o *V2WorkflowInstanceHistory) GetTerminated() bool {
+ if o == nil {
+ return false
+ }
+ return o.Terminated
+}
+
+func (o *V2WorkflowInstanceHistory) GetStartedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.StartedAt
+}
+
+func (o *V2WorkflowInstanceHistory) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
diff --git a/pkg/client/models/components/v2workflowinstancehistorystage.go b/pkg/client/models/components/v2workflowinstancehistorystage.go
new file mode 100644
index 0000000..3a05930
--- /dev/null
+++ b/pkg/client/models/components/v2workflowinstancehistorystage.go
@@ -0,0 +1,102 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type V2WorkflowInstanceHistoryStage struct {
+ Name string `json:"name"`
+ Input V2WorkflowInstanceHistoryStageInput `json:"input"`
+ Output *V2WorkflowInstanceHistoryStageOutput `json:"output,omitempty"`
+ Error *string `json:"error,omitempty"`
+ Terminated bool `json:"terminated"`
+ StartedAt time.Time `json:"startedAt"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+ LastFailure *string `json:"lastFailure,omitempty"`
+ Attempt int64 `json:"attempt"`
+ NextExecution *time.Time `json:"nextExecution,omitempty"`
+}
+
+func (v V2WorkflowInstanceHistoryStage) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *V2WorkflowInstanceHistoryStage) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetInput() V2WorkflowInstanceHistoryStageInput {
+ if o == nil {
+ return V2WorkflowInstanceHistoryStageInput{}
+ }
+ return o.Input
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetOutput() *V2WorkflowInstanceHistoryStageOutput {
+ if o == nil {
+ return nil
+ }
+ return o.Output
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetTerminated() bool {
+ if o == nil {
+ return false
+ }
+ return o.Terminated
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetStartedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.StartedAt
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetLastFailure() *string {
+ if o == nil {
+ return nil
+ }
+ return o.LastFailure
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetAttempt() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.Attempt
+}
+
+func (o *V2WorkflowInstanceHistoryStage) GetNextExecution() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.NextExecution
+}
diff --git a/pkg/client/models/components/v2workflowinstancehistorystageinput.go b/pkg/client/models/components/v2workflowinstancehistorystageinput.go
new file mode 100644
index 0000000..d179e20
--- /dev/null
+++ b/pkg/client/models/components/v2workflowinstancehistorystageinput.go
@@ -0,0 +1,94 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2WorkflowInstanceHistoryStageInput struct {
+ GetAccount *V2ActivityGetAccount `json:"GetAccount,omitempty"`
+ AddAccountMetadata *V2ActivityAddAccountMetadata `json:"AddAccountMetadata,omitempty"`
+ CreateTransaction *V2ActivityCreateTransaction `json:"CreateTransaction,omitempty"`
+ StripeTransfer *V2ActivityStripeTransfer `json:"StripeTransfer,omitempty"`
+ GetPayment *V2ActivityGetPayment `json:"GetPayment,omitempty"`
+ ConfirmHold *V2ActivityConfirmHold `json:"ConfirmHold,omitempty"`
+ CreditWallet *V2ActivityCreditWallet `json:"CreditWallet,omitempty"`
+ DebitWallet *V2ActivityDebitWallet `json:"DebitWallet,omitempty"`
+ GetWallet *V2ActivityGetWallet `json:"GetWallet,omitempty"`
+ VoidHold *V2ActivityVoidHold `json:"VoidHold,omitempty"`
+ ListWallets *V2ActivityListWallets `json:"ListWallets,omitempty"`
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetGetAccount() *V2ActivityGetAccount {
+ if o == nil {
+ return nil
+ }
+ return o.GetAccount
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetAddAccountMetadata() *V2ActivityAddAccountMetadata {
+ if o == nil {
+ return nil
+ }
+ return o.AddAccountMetadata
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetCreateTransaction() *V2ActivityCreateTransaction {
+ if o == nil {
+ return nil
+ }
+ return o.CreateTransaction
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetStripeTransfer() *V2ActivityStripeTransfer {
+ if o == nil {
+ return nil
+ }
+ return o.StripeTransfer
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetGetPayment() *V2ActivityGetPayment {
+ if o == nil {
+ return nil
+ }
+ return o.GetPayment
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetConfirmHold() *V2ActivityConfirmHold {
+ if o == nil {
+ return nil
+ }
+ return o.ConfirmHold
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetCreditWallet() *V2ActivityCreditWallet {
+ if o == nil {
+ return nil
+ }
+ return o.CreditWallet
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetDebitWallet() *V2ActivityDebitWallet {
+ if o == nil {
+ return nil
+ }
+ return o.DebitWallet
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetGetWallet() *V2ActivityGetWallet {
+ if o == nil {
+ return nil
+ }
+ return o.GetWallet
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetVoidHold() *V2ActivityVoidHold {
+ if o == nil {
+ return nil
+ }
+ return o.VoidHold
+}
+
+func (o *V2WorkflowInstanceHistoryStageInput) GetListWallets() *V2ActivityListWallets {
+ if o == nil {
+ return nil
+ }
+ return o.ListWallets
+}
diff --git a/pkg/client/models/components/v2workflowinstancehistorystageoutput.go b/pkg/client/models/components/v2workflowinstancehistorystageoutput.go
new file mode 100644
index 0000000..da03ec4
--- /dev/null
+++ b/pkg/client/models/components/v2workflowinstancehistorystageoutput.go
@@ -0,0 +1,54 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type V2WorkflowInstanceHistoryStageOutput struct {
+ GetAccount *V2ActivityGetAccountOutput `json:"GetAccount,omitempty"`
+ CreateTransaction *V2ActivityCreateTransactionOutput `json:"CreateTransaction,omitempty"`
+ GetPayment *V2ActivityGetPaymentOutput `json:"GetPayment,omitempty"`
+ DebitWallet *V2ActivityDebitWalletOutput `json:"DebitWallet,omitempty"`
+ GetWallet *V2ActivityGetWalletOutput `json:"GetWallet,omitempty"`
+ ListWallets *V2ListWalletsResponse `json:"ListWallets,omitempty"`
+}
+
+func (o *V2WorkflowInstanceHistoryStageOutput) GetGetAccount() *V2ActivityGetAccountOutput {
+ if o == nil {
+ return nil
+ }
+ return o.GetAccount
+}
+
+func (o *V2WorkflowInstanceHistoryStageOutput) GetCreateTransaction() *V2ActivityCreateTransactionOutput {
+ if o == nil {
+ return nil
+ }
+ return o.CreateTransaction
+}
+
+func (o *V2WorkflowInstanceHistoryStageOutput) GetGetPayment() *V2ActivityGetPaymentOutput {
+ if o == nil {
+ return nil
+ }
+ return o.GetPayment
+}
+
+func (o *V2WorkflowInstanceHistoryStageOutput) GetDebitWallet() *V2ActivityDebitWalletOutput {
+ if o == nil {
+ return nil
+ }
+ return o.DebitWallet
+}
+
+func (o *V2WorkflowInstanceHistoryStageOutput) GetGetWallet() *V2ActivityGetWalletOutput {
+ if o == nil {
+ return nil
+ }
+ return o.GetWallet
+}
+
+func (o *V2WorkflowInstanceHistoryStageOutput) GetListWallets() *V2ListWalletsResponse {
+ if o == nil {
+ return nil
+ }
+ return o.ListWallets
+}
diff --git a/pkg/client/models/components/volume.go b/pkg/client/models/components/volume.go
new file mode 100644
index 0000000..cfbe4f5
--- /dev/null
+++ b/pkg/client/models/components/volume.go
@@ -0,0 +1,46 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "math/big"
+ "openapi/internal/utils"
+)
+
+type Volume struct {
+ Input *big.Int `json:"input"`
+ Output *big.Int `json:"output"`
+ Balance *big.Int `json:"balance,omitempty"`
+}
+
+func (v Volume) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(v, "", false)
+}
+
+func (v *Volume) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &v, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Volume) GetInput() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Input
+}
+
+func (o *Volume) GetOutput() *big.Int {
+ if o == nil {
+ return big.NewInt(0)
+ }
+ return o.Output
+}
+
+func (o *Volume) GetBalance() *big.Int {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/wallet.go b/pkg/client/models/components/wallet.go
new file mode 100644
index 0000000..24eb6dd
--- /dev/null
+++ b/pkg/client/models/components/wallet.go
@@ -0,0 +1,64 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type Wallet struct {
+ // The unique ID of the wallet.
+ ID string `json:"id"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Name string `json:"name"`
+ CreatedAt time.Time `json:"createdAt"`
+ Ledger string `json:"ledger"`
+}
+
+func (w Wallet) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(w, "", false)
+}
+
+func (w *Wallet) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &w, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Wallet) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *Wallet) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *Wallet) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *Wallet) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *Wallet) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/walletsubject.go b/pkg/client/models/components/walletsubject.go
new file mode 100644
index 0000000..a2a9e09
--- /dev/null
+++ b/pkg/client/models/components/walletsubject.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type WalletSubject struct {
+ Type string `json:"type"`
+ Identifier string `json:"identifier"`
+ Balance *string `json:"balance,omitempty"`
+}
+
+func (o *WalletSubject) GetType() string {
+ if o == nil {
+ return ""
+ }
+ return o.Type
+}
+
+func (o *WalletSubject) GetIdentifier() string {
+ if o == nil {
+ return ""
+ }
+ return o.Identifier
+}
+
+func (o *WalletSubject) GetBalance() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Balance
+}
diff --git a/pkg/client/models/components/walletwithbalances.go b/pkg/client/models/components/walletwithbalances.go
new file mode 100644
index 0000000..94e13dc
--- /dev/null
+++ b/pkg/client/models/components/walletwithbalances.go
@@ -0,0 +1,83 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type Balances struct {
+ Main AssetHolder `json:"main"`
+}
+
+func (o *Balances) GetMain() AssetHolder {
+ if o == nil {
+ return AssetHolder{}
+ }
+ return o.Main
+}
+
+type WalletWithBalances struct {
+ // The unique ID of the wallet.
+ ID string `json:"id"`
+ // Metadata associated with the wallet.
+ Metadata map[string]string `json:"metadata"`
+ Name string `json:"name"`
+ CreatedAt time.Time `json:"createdAt"`
+ Balances Balances `json:"balances"`
+ Ledger string `json:"ledger"`
+}
+
+func (w WalletWithBalances) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(w, "", false)
+}
+
+func (w *WalletWithBalances) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &w, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *WalletWithBalances) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *WalletWithBalances) GetMetadata() map[string]string {
+ if o == nil {
+ return map[string]string{}
+ }
+ return o.Metadata
+}
+
+func (o *WalletWithBalances) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *WalletWithBalances) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *WalletWithBalances) GetBalances() Balances {
+ if o == nil {
+ return Balances{}
+ }
+ return o.Balances
+}
+
+func (o *WalletWithBalances) GetLedger() string {
+ if o == nil {
+ return ""
+ }
+ return o.Ledger
+}
diff --git a/pkg/client/models/components/workflow.go b/pkg/client/models/components/workflow.go
new file mode 100644
index 0000000..2c4eb09
--- /dev/null
+++ b/pkg/client/models/components/workflow.go
@@ -0,0 +1,54 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type Workflow struct {
+ Config WorkflowConfig `json:"config"`
+ CreatedAt time.Time `json:"createdAt"`
+ UpdatedAt time.Time `json:"updatedAt"`
+ ID string `json:"id"`
+}
+
+func (w Workflow) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(w, "", false)
+}
+
+func (w *Workflow) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &w, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *Workflow) GetConfig() WorkflowConfig {
+ if o == nil {
+ return WorkflowConfig{}
+ }
+ return o.Config
+}
+
+func (o *Workflow) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *Workflow) GetUpdatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.UpdatedAt
+}
+
+func (o *Workflow) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
diff --git a/pkg/client/models/components/workflowconfig.go b/pkg/client/models/components/workflowconfig.go
new file mode 100644
index 0000000..84cca7f
--- /dev/null
+++ b/pkg/client/models/components/workflowconfig.go
@@ -0,0 +1,22 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type WorkflowConfig struct {
+ Name *string `json:"name,omitempty"`
+ Stages []map[string]any `json:"stages"`
+}
+
+func (o *WorkflowConfig) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+func (o *WorkflowConfig) GetStages() []map[string]any {
+ if o == nil {
+ return []map[string]any{}
+ }
+ return o.Stages
+}
diff --git a/pkg/client/models/components/workflowinstance.go b/pkg/client/models/components/workflowinstance.go
new file mode 100644
index 0000000..ebb16f8
--- /dev/null
+++ b/pkg/client/models/components/workflowinstance.go
@@ -0,0 +1,86 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type WorkflowInstance struct {
+ WorkflowID string `json:"workflowID"`
+ ID string `json:"id"`
+ CreatedAt time.Time `json:"createdAt"`
+ UpdatedAt time.Time `json:"updatedAt"`
+ Status []StageStatus `json:"status,omitempty"`
+ Terminated bool `json:"terminated"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+ Error *string `json:"error,omitempty"`
+}
+
+func (w WorkflowInstance) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(w, "", false)
+}
+
+func (w *WorkflowInstance) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &w, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *WorkflowInstance) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *WorkflowInstance) GetID() string {
+ if o == nil {
+ return ""
+ }
+ return o.ID
+}
+
+func (o *WorkflowInstance) GetCreatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.CreatedAt
+}
+
+func (o *WorkflowInstance) GetUpdatedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.UpdatedAt
+}
+
+func (o *WorkflowInstance) GetStatus() []StageStatus {
+ if o == nil {
+ return nil
+ }
+ return o.Status
+}
+
+func (o *WorkflowInstance) GetTerminated() bool {
+ if o == nil {
+ return false
+ }
+ return o.Terminated
+}
+
+func (o *WorkflowInstance) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
+
+func (o *WorkflowInstance) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
diff --git a/pkg/client/models/components/workflowinstancehistory.go b/pkg/client/models/components/workflowinstancehistory.go
new file mode 100644
index 0000000..4c5deea
--- /dev/null
+++ b/pkg/client/models/components/workflowinstancehistory.go
@@ -0,0 +1,70 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type WorkflowInstanceHistory struct {
+ Name string `json:"name"`
+ Input Stage `json:"input"`
+ Error *string `json:"error,omitempty"`
+ Terminated bool `json:"terminated"`
+ StartedAt time.Time `json:"startedAt"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+}
+
+func (w WorkflowInstanceHistory) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(w, "", false)
+}
+
+func (w *WorkflowInstanceHistory) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &w, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *WorkflowInstanceHistory) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *WorkflowInstanceHistory) GetInput() Stage {
+ if o == nil {
+ return Stage{}
+ }
+ return o.Input
+}
+
+func (o *WorkflowInstanceHistory) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
+
+func (o *WorkflowInstanceHistory) GetTerminated() bool {
+ if o == nil {
+ return false
+ }
+ return o.Terminated
+}
+
+func (o *WorkflowInstanceHistory) GetStartedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.StartedAt
+}
+
+func (o *WorkflowInstanceHistory) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
diff --git a/pkg/client/models/components/workflowinstancehistorystage.go b/pkg/client/models/components/workflowinstancehistorystage.go
new file mode 100644
index 0000000..229315c
--- /dev/null
+++ b/pkg/client/models/components/workflowinstancehistorystage.go
@@ -0,0 +1,102 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+import (
+ "openapi/internal/utils"
+ "time"
+)
+
+type WorkflowInstanceHistoryStage struct {
+ Name string `json:"name"`
+ Input WorkflowInstanceHistoryStageInput `json:"input"`
+ Output *WorkflowInstanceHistoryStageOutput `json:"output,omitempty"`
+ Error *string `json:"error,omitempty"`
+ Terminated bool `json:"terminated"`
+ StartedAt time.Time `json:"startedAt"`
+ TerminatedAt *time.Time `json:"terminatedAt,omitempty"`
+ LastFailure *string `json:"lastFailure,omitempty"`
+ Attempt int64 `json:"attempt"`
+ NextExecution *time.Time `json:"nextExecution,omitempty"`
+}
+
+func (w WorkflowInstanceHistoryStage) MarshalJSON() ([]byte, error) {
+ return utils.MarshalJSON(w, "", false)
+}
+
+func (w *WorkflowInstanceHistoryStage) UnmarshalJSON(data []byte) error {
+ if err := utils.UnmarshalJSON(data, &w, "", false, false); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (o *WorkflowInstanceHistoryStage) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+func (o *WorkflowInstanceHistoryStage) GetInput() WorkflowInstanceHistoryStageInput {
+ if o == nil {
+ return WorkflowInstanceHistoryStageInput{}
+ }
+ return o.Input
+}
+
+func (o *WorkflowInstanceHistoryStage) GetOutput() *WorkflowInstanceHistoryStageOutput {
+ if o == nil {
+ return nil
+ }
+ return o.Output
+}
+
+func (o *WorkflowInstanceHistoryStage) GetError() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Error
+}
+
+func (o *WorkflowInstanceHistoryStage) GetTerminated() bool {
+ if o == nil {
+ return false
+ }
+ return o.Terminated
+}
+
+func (o *WorkflowInstanceHistoryStage) GetStartedAt() time.Time {
+ if o == nil {
+ return time.Time{}
+ }
+ return o.StartedAt
+}
+
+func (o *WorkflowInstanceHistoryStage) GetTerminatedAt() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.TerminatedAt
+}
+
+func (o *WorkflowInstanceHistoryStage) GetLastFailure() *string {
+ if o == nil {
+ return nil
+ }
+ return o.LastFailure
+}
+
+func (o *WorkflowInstanceHistoryStage) GetAttempt() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.Attempt
+}
+
+func (o *WorkflowInstanceHistoryStage) GetNextExecution() *time.Time {
+ if o == nil {
+ return nil
+ }
+ return o.NextExecution
+}
diff --git a/pkg/client/models/components/workflowinstancehistorystageinput.go b/pkg/client/models/components/workflowinstancehistorystageinput.go
new file mode 100644
index 0000000..a247f6d
--- /dev/null
+++ b/pkg/client/models/components/workflowinstancehistorystageinput.go
@@ -0,0 +1,102 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type WorkflowInstanceHistoryStageInput struct {
+ GetAccount *ActivityGetAccount `json:"GetAccount,omitempty"`
+ AddAccountMetadata *ActivityAddAccountMetadata `json:"AddAccountMetadata,omitempty"`
+ CreateTransaction *ActivityCreateTransaction `json:"CreateTransaction,omitempty"`
+ RevertTransaction *ActivityRevertTransaction `json:"RevertTransaction,omitempty"`
+ StripeTransfer *ActivityStripeTransfer `json:"StripeTransfer,omitempty"`
+ GetPayment *ActivityGetPayment `json:"GetPayment,omitempty"`
+ ConfirmHold *ActivityConfirmHold `json:"ConfirmHold,omitempty"`
+ CreditWallet *ActivityCreditWallet `json:"CreditWallet,omitempty"`
+ DebitWallet *ActivityDebitWallet `json:"DebitWallet,omitempty"`
+ GetWallet *ActivityGetWallet `json:"GetWallet,omitempty"`
+ VoidHold *ActivityVoidHold `json:"VoidHold,omitempty"`
+ ListWallets *ActivityListWallets `json:"ListWallets,omitempty"`
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetGetAccount() *ActivityGetAccount {
+ if o == nil {
+ return nil
+ }
+ return o.GetAccount
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetAddAccountMetadata() *ActivityAddAccountMetadata {
+ if o == nil {
+ return nil
+ }
+ return o.AddAccountMetadata
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetCreateTransaction() *ActivityCreateTransaction {
+ if o == nil {
+ return nil
+ }
+ return o.CreateTransaction
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetRevertTransaction() *ActivityRevertTransaction {
+ if o == nil {
+ return nil
+ }
+ return o.RevertTransaction
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetStripeTransfer() *ActivityStripeTransfer {
+ if o == nil {
+ return nil
+ }
+ return o.StripeTransfer
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetGetPayment() *ActivityGetPayment {
+ if o == nil {
+ return nil
+ }
+ return o.GetPayment
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetConfirmHold() *ActivityConfirmHold {
+ if o == nil {
+ return nil
+ }
+ return o.ConfirmHold
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetCreditWallet() *ActivityCreditWallet {
+ if o == nil {
+ return nil
+ }
+ return o.CreditWallet
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetDebitWallet() *ActivityDebitWallet {
+ if o == nil {
+ return nil
+ }
+ return o.DebitWallet
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetGetWallet() *ActivityGetWallet {
+ if o == nil {
+ return nil
+ }
+ return o.GetWallet
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetVoidHold() *ActivityVoidHold {
+ if o == nil {
+ return nil
+ }
+ return o.VoidHold
+}
+
+func (o *WorkflowInstanceHistoryStageInput) GetListWallets() *ActivityListWallets {
+ if o == nil {
+ return nil
+ }
+ return o.ListWallets
+}
diff --git a/pkg/client/models/components/workflowinstancehistorystageoutput.go b/pkg/client/models/components/workflowinstancehistorystageoutput.go
new file mode 100644
index 0000000..506d30b
--- /dev/null
+++ b/pkg/client/models/components/workflowinstancehistorystageoutput.go
@@ -0,0 +1,62 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package components
+
+type WorkflowInstanceHistoryStageOutput struct {
+ GetAccount *ActivityGetAccountOutput `json:"GetAccount,omitempty"`
+ CreateTransaction *ActivityCreateTransactionOutput `json:"CreateTransaction,omitempty"`
+ RevertTransaction *ActivityRevertTransactionOutput `json:"RevertTransaction,omitempty"`
+ GetPayment *ActivityGetPaymentOutput `json:"GetPayment,omitempty"`
+ DebitWallet *ActivityDebitWalletOutput `json:"DebitWallet,omitempty"`
+ GetWallet *ActivityGetWalletOutput `json:"GetWallet,omitempty"`
+ ListWallets *ListWalletsResponse `json:"ListWallets,omitempty"`
+}
+
+func (o *WorkflowInstanceHistoryStageOutput) GetGetAccount() *ActivityGetAccountOutput {
+ if o == nil {
+ return nil
+ }
+ return o.GetAccount
+}
+
+func (o *WorkflowInstanceHistoryStageOutput) GetCreateTransaction() *ActivityCreateTransactionOutput {
+ if o == nil {
+ return nil
+ }
+ return o.CreateTransaction
+}
+
+func (o *WorkflowInstanceHistoryStageOutput) GetRevertTransaction() *ActivityRevertTransactionOutput {
+ if o == nil {
+ return nil
+ }
+ return o.RevertTransaction
+}
+
+func (o *WorkflowInstanceHistoryStageOutput) GetGetPayment() *ActivityGetPaymentOutput {
+ if o == nil {
+ return nil
+ }
+ return o.GetPayment
+}
+
+func (o *WorkflowInstanceHistoryStageOutput) GetDebitWallet() *ActivityDebitWalletOutput {
+ if o == nil {
+ return nil
+ }
+ return o.DebitWallet
+}
+
+func (o *WorkflowInstanceHistoryStageOutput) GetGetWallet() *ActivityGetWalletOutput {
+ if o == nil {
+ return nil
+ }
+ return o.GetWallet
+}
+
+func (o *WorkflowInstanceHistoryStageOutput) GetListWallets() *ListWalletsResponse {
+ if o == nil {
+ return nil
+ }
+ return o.ListWallets
+}
diff --git a/pkg/client/models/operations/cancelevent.go b/pkg/client/models/operations/cancelevent.go
new file mode 100644
index 0000000..91bcf9a
--- /dev/null
+++ b/pkg/client/models/operations/cancelevent.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type CancelEventRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+}
+
+func (o *CancelEventRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+type CancelEventResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *CancelEventResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/operations/createtrigger.go b/pkg/client/models/operations/createtrigger.go
new file mode 100644
index 0000000..b924137
--- /dev/null
+++ b/pkg/client/models/operations/createtrigger.go
@@ -0,0 +1,27 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type CreateTriggerResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // Created trigger
+ CreateTriggerResponse *components.CreateTriggerResponse
+}
+
+func (o *CreateTriggerResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *CreateTriggerResponse) GetCreateTriggerResponse() *components.CreateTriggerResponse {
+ if o == nil {
+ return nil
+ }
+ return o.CreateTriggerResponse
+}
diff --git a/pkg/client/models/operations/createworkflow.go b/pkg/client/models/operations/createworkflow.go
new file mode 100644
index 0000000..fb47f79
--- /dev/null
+++ b/pkg/client/models/operations/createworkflow.go
@@ -0,0 +1,27 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type CreateWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // Created workflow
+ CreateWorkflowResponse *components.CreateWorkflowResponse
+}
+
+func (o *CreateWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *CreateWorkflowResponse) GetCreateWorkflowResponse() *components.CreateWorkflowResponse {
+ if o == nil {
+ return nil
+ }
+ return o.CreateWorkflowResponse
+}
diff --git a/pkg/client/models/operations/deletetrigger.go b/pkg/client/models/operations/deletetrigger.go
new file mode 100644
index 0000000..70b186c
--- /dev/null
+++ b/pkg/client/models/operations/deletetrigger.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type DeleteTriggerRequest struct {
+ // The trigger id
+ TriggerID string `pathParam:"style=simple,explode=false,name=triggerID"`
+}
+
+func (o *DeleteTriggerRequest) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+type DeleteTriggerResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *DeleteTriggerResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/operations/deleteworkflow.go b/pkg/client/models/operations/deleteworkflow.go
new file mode 100644
index 0000000..02494b8
--- /dev/null
+++ b/pkg/client/models/operations/deleteworkflow.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type DeleteWorkflowRequest struct {
+ // The flow id
+ FlowID string `pathParam:"style=simple,explode=false,name=flowId"`
+}
+
+func (o *DeleteWorkflowRequest) GetFlowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.FlowID
+}
+
+type DeleteWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *DeleteWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/operations/getinstance.go b/pkg/client/models/operations/getinstance.go
new file mode 100644
index 0000000..d85f2d1
--- /dev/null
+++ b/pkg/client/models/operations/getinstance.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type GetInstanceRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+}
+
+func (o *GetInstanceRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+type GetInstanceResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance
+ GetWorkflowInstanceResponse *components.GetWorkflowInstanceResponse
+}
+
+func (o *GetInstanceResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *GetInstanceResponse) GetGetWorkflowInstanceResponse() *components.GetWorkflowInstanceResponse {
+ if o == nil {
+ return nil
+ }
+ return o.GetWorkflowInstanceResponse
+}
diff --git a/pkg/client/models/operations/getinstancehistory.go b/pkg/client/models/operations/getinstancehistory.go
new file mode 100644
index 0000000..62248da
--- /dev/null
+++ b/pkg/client/models/operations/getinstancehistory.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type GetInstanceHistoryRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+}
+
+func (o *GetInstanceHistoryRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+type GetInstanceHistoryResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance history
+ GetWorkflowInstanceHistoryResponse *components.GetWorkflowInstanceHistoryResponse
+}
+
+func (o *GetInstanceHistoryResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *GetInstanceHistoryResponse) GetGetWorkflowInstanceHistoryResponse() *components.GetWorkflowInstanceHistoryResponse {
+ if o == nil {
+ return nil
+ }
+ return o.GetWorkflowInstanceHistoryResponse
+}
diff --git a/pkg/client/models/operations/getinstancestagehistory.go b/pkg/client/models/operations/getinstancestagehistory.go
new file mode 100644
index 0000000..9a75d26
--- /dev/null
+++ b/pkg/client/models/operations/getinstancestagehistory.go
@@ -0,0 +1,48 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type GetInstanceStageHistoryRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+ // The stage number
+ Number int64 `pathParam:"style=simple,explode=false,name=number"`
+}
+
+func (o *GetInstanceStageHistoryRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+func (o *GetInstanceStageHistoryRequest) GetNumber() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.Number
+}
+
+type GetInstanceStageHistoryResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance stage history
+ GetWorkflowInstanceHistoryStageResponse *components.GetWorkflowInstanceHistoryStageResponse
+}
+
+func (o *GetInstanceStageHistoryResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *GetInstanceStageHistoryResponse) GetGetWorkflowInstanceHistoryStageResponse() *components.GetWorkflowInstanceHistoryStageResponse {
+ if o == nil {
+ return nil
+ }
+ return o.GetWorkflowInstanceHistoryStageResponse
+}
diff --git a/pkg/client/models/operations/getserverinfo.go b/pkg/client/models/operations/getserverinfo.go
new file mode 100644
index 0000000..be93577
--- /dev/null
+++ b/pkg/client/models/operations/getserverinfo.go
@@ -0,0 +1,27 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type GetServerInfoResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // Server information
+ ServerInfo *components.ServerInfo
+}
+
+func (o *GetServerInfoResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *GetServerInfoResponse) GetServerInfo() *components.ServerInfo {
+ if o == nil {
+ return nil
+ }
+ return o.ServerInfo
+}
diff --git a/pkg/client/models/operations/getworkflow.go b/pkg/client/models/operations/getworkflow.go
new file mode 100644
index 0000000..86159c7
--- /dev/null
+++ b/pkg/client/models/operations/getworkflow.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type GetWorkflowRequest struct {
+ // The flow id
+ FlowID string `pathParam:"style=simple,explode=false,name=flowId"`
+}
+
+func (o *GetWorkflowRequest) GetFlowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.FlowID
+}
+
+type GetWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow
+ GetWorkflowResponse *components.GetWorkflowResponse
+}
+
+func (o *GetWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *GetWorkflowResponse) GetGetWorkflowResponse() *components.GetWorkflowResponse {
+ if o == nil {
+ return nil
+ }
+ return o.GetWorkflowResponse
+}
diff --git a/pkg/client/models/operations/listinstances.go b/pkg/client/models/operations/listinstances.go
new file mode 100644
index 0000000..2a7fb59
--- /dev/null
+++ b/pkg/client/models/operations/listinstances.go
@@ -0,0 +1,48 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type ListInstancesRequest struct {
+ // A workflow id
+ WorkflowID *string `queryParam:"style=form,explode=true,name=workflowID"`
+ // Filter running instances
+ Running *bool `queryParam:"style=form,explode=true,name=running"`
+}
+
+func (o *ListInstancesRequest) GetWorkflowID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.WorkflowID
+}
+
+func (o *ListInstancesRequest) GetRunning() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.Running
+}
+
+type ListInstancesResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of workflow instances
+ ListRunsResponse *components.ListRunsResponse
+}
+
+func (o *ListInstancesResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *ListInstancesResponse) GetListRunsResponse() *components.ListRunsResponse {
+ if o == nil {
+ return nil
+ }
+ return o.ListRunsResponse
+}
diff --git a/pkg/client/models/operations/listtriggers.go b/pkg/client/models/operations/listtriggers.go
new file mode 100644
index 0000000..64fbd4e
--- /dev/null
+++ b/pkg/client/models/operations/listtriggers.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type ListTriggersRequest struct {
+ // search by name
+ Name *string `queryParam:"style=form,explode=true,name=name"`
+}
+
+func (o *ListTriggersRequest) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+type ListTriggersResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of triggers
+ ListTriggersResponse *components.ListTriggersResponse
+}
+
+func (o *ListTriggersResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *ListTriggersResponse) GetListTriggersResponse() *components.ListTriggersResponse {
+ if o == nil {
+ return nil
+ }
+ return o.ListTriggersResponse
+}
diff --git a/pkg/client/models/operations/listtriggersoccurrences.go b/pkg/client/models/operations/listtriggersoccurrences.go
new file mode 100644
index 0000000..58ffc01
--- /dev/null
+++ b/pkg/client/models/operations/listtriggersoccurrences.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type ListTriggersOccurrencesRequest struct {
+ // The trigger id
+ TriggerID string `pathParam:"style=simple,explode=false,name=triggerID"`
+}
+
+func (o *ListTriggersOccurrencesRequest) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+type ListTriggersOccurrencesResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of triggers occurrences
+ ListTriggersOccurrencesResponse *components.ListTriggersOccurrencesResponse
+}
+
+func (o *ListTriggersOccurrencesResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *ListTriggersOccurrencesResponse) GetListTriggersOccurrencesResponse() *components.ListTriggersOccurrencesResponse {
+ if o == nil {
+ return nil
+ }
+ return o.ListTriggersOccurrencesResponse
+}
diff --git a/pkg/client/models/operations/listworkflows.go b/pkg/client/models/operations/listworkflows.go
new file mode 100644
index 0000000..77e863b
--- /dev/null
+++ b/pkg/client/models/operations/listworkflows.go
@@ -0,0 +1,27 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type ListWorkflowsResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of workflows
+ ListWorkflowsResponse *components.ListWorkflowsResponse
+}
+
+func (o *ListWorkflowsResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *ListWorkflowsResponse) GetListWorkflowsResponse() *components.ListWorkflowsResponse {
+ if o == nil {
+ return nil
+ }
+ return o.ListWorkflowsResponse
+}
diff --git a/pkg/client/models/operations/options.go b/pkg/client/models/operations/options.go
new file mode 100644
index 0000000..db37fac
--- /dev/null
+++ b/pkg/client/models/operations/options.go
@@ -0,0 +1,93 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "errors"
+ "openapi/internal/utils"
+ "openapi/retry"
+ "time"
+)
+
+var ErrUnsupportedOption = errors.New("unsupported option")
+
+const (
+ SupportedOptionServerURL = "serverURL"
+ SupportedOptionRetries = "retries"
+ SupportedOptionTimeout = "timeout"
+ SupportedOptionAcceptHeaderOverride = "acceptHeaderOverride"
+ SupportedOptionURLOverride = "urlOverride"
+)
+
+type Options struct {
+ ServerURL *string
+ Retries *retry.Config
+ Timeout *time.Duration
+ URLOverride *string
+}
+
+type Option func(*Options, ...string) error
+
+// WithServerURL allows providing an alternative server URL.
+func WithServerURL(serverURL string) Option {
+ return func(opts *Options, supportedOptions ...string) error {
+ if !utils.Contains(supportedOptions, SupportedOptionServerURL) {
+ return ErrUnsupportedOption
+ }
+
+ opts.ServerURL = &serverURL
+ return nil
+ }
+}
+
+// WithTemplatedServerURL allows providing an alternative server URL with templated parameters.
+func WithTemplatedServerURL(serverURL string, params map[string]string) Option {
+ return func(opts *Options, supportedOptions ...string) error {
+ if !utils.Contains(supportedOptions, SupportedOptionServerURL) {
+ return ErrUnsupportedOption
+ }
+
+ if params != nil {
+ serverURL = utils.ReplaceParameters(serverURL, params)
+ }
+
+ opts.ServerURL = &serverURL
+ return nil
+ }
+}
+
+// WithRetries allows customizing the default retry configuration.
+func WithRetries(config retry.Config) Option {
+ return func(opts *Options, supportedOptions ...string) error {
+ if !utils.Contains(supportedOptions, SupportedOptionRetries) {
+ return ErrUnsupportedOption
+ }
+
+ opts.Retries = &config
+ return nil
+ }
+}
+
+// WithOperationTimeout allows setting the request timeout applied for an operation.
+func WithOperationTimeout(timeout time.Duration) Option {
+ return func(opts *Options, supportedOptions ...string) error {
+ if !utils.Contains(supportedOptions, SupportedOptionRetries) {
+ return ErrUnsupportedOption
+ }
+
+ opts.Timeout = &timeout
+ return nil
+ }
+}
+
+// WithURLOverride allows overriding the URL.
+func WithURLOverride(urlOverride string) Option {
+ return func(opts *Options, supportedOptions ...string) error {
+ if !utils.Contains(supportedOptions, SupportedOptionURLOverride) {
+ return ErrUnsupportedOption
+ }
+
+ opts.URLOverride = &urlOverride
+ return nil
+ }
+}
diff --git a/pkg/client/models/operations/readtrigger.go b/pkg/client/models/operations/readtrigger.go
new file mode 100644
index 0000000..cd30d8d
--- /dev/null
+++ b/pkg/client/models/operations/readtrigger.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type ReadTriggerRequest struct {
+ // The trigger id
+ TriggerID string `pathParam:"style=simple,explode=false,name=triggerID"`
+}
+
+func (o *ReadTriggerRequest) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+type ReadTriggerResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // A specific trigger
+ ReadTriggerResponse *components.ReadTriggerResponse
+}
+
+func (o *ReadTriggerResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *ReadTriggerResponse) GetReadTriggerResponse() *components.ReadTriggerResponse {
+ if o == nil {
+ return nil
+ }
+ return o.ReadTriggerResponse
+}
diff --git a/pkg/client/models/operations/runworkflow.go b/pkg/client/models/operations/runworkflow.go
new file mode 100644
index 0000000..ba194f7
--- /dev/null
+++ b/pkg/client/models/operations/runworkflow.go
@@ -0,0 +1,56 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type RunWorkflowRequest struct {
+ // The flow id
+ WorkflowID string `pathParam:"style=simple,explode=false,name=workflowID"`
+ // Wait end of the workflow before return
+ Wait *bool `queryParam:"style=form,explode=true,name=wait"`
+ RequestBody map[string]string `request:"mediaType=application/json"`
+}
+
+func (o *RunWorkflowRequest) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *RunWorkflowRequest) GetWait() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.Wait
+}
+
+func (o *RunWorkflowRequest) GetRequestBody() map[string]string {
+ if o == nil {
+ return nil
+ }
+ return o.RequestBody
+}
+
+type RunWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance
+ RunWorkflowResponse *components.RunWorkflowResponse
+}
+
+func (o *RunWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *RunWorkflowResponse) GetRunWorkflowResponse() *components.RunWorkflowResponse {
+ if o == nil {
+ return nil
+ }
+ return o.RunWorkflowResponse
+}
diff --git a/pkg/client/models/operations/sendevent.go b/pkg/client/models/operations/sendevent.go
new file mode 100644
index 0000000..53aacd5
--- /dev/null
+++ b/pkg/client/models/operations/sendevent.go
@@ -0,0 +1,49 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type SendEventRequestBody struct {
+ Name string `json:"name"`
+}
+
+func (o *SendEventRequestBody) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+type SendEventRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+ RequestBody *SendEventRequestBody `request:"mediaType=application/json"`
+}
+
+func (o *SendEventRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+func (o *SendEventRequest) GetRequestBody() *SendEventRequestBody {
+ if o == nil {
+ return nil
+ }
+ return o.RequestBody
+}
+
+type SendEventResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *SendEventResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/operations/testtrigger.go b/pkg/client/models/operations/testtrigger.go
new file mode 100644
index 0000000..db41c2a
--- /dev/null
+++ b/pkg/client/models/operations/testtrigger.go
@@ -0,0 +1,47 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type TestTriggerRequest struct {
+ // The trigger id
+ TriggerID string `pathParam:"style=simple,explode=false,name=triggerID"`
+ RequestBody map[string]any `request:"mediaType=application/json"`
+}
+
+func (o *TestTriggerRequest) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+func (o *TestTriggerRequest) GetRequestBody() map[string]any {
+ if o == nil {
+ return nil
+ }
+ return o.RequestBody
+}
+
+type TestTriggerResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // Test a trigger
+ V2TestTriggerResponse *components.V2TestTriggerResponse
+}
+
+func (o *TestTriggerResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *TestTriggerResponse) GetV2TestTriggerResponse() *components.V2TestTriggerResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2TestTriggerResponse
+}
diff --git a/pkg/client/models/operations/v2cancelevent.go b/pkg/client/models/operations/v2cancelevent.go
new file mode 100644
index 0000000..33b81a6
--- /dev/null
+++ b/pkg/client/models/operations/v2cancelevent.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2CancelEventRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+}
+
+func (o *V2CancelEventRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+type V2CancelEventResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *V2CancelEventResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/operations/v2createtrigger.go b/pkg/client/models/operations/v2createtrigger.go
new file mode 100644
index 0000000..a22f497
--- /dev/null
+++ b/pkg/client/models/operations/v2createtrigger.go
@@ -0,0 +1,27 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2CreateTriggerResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // Created trigger
+ V2CreateTriggerResponse *components.V2CreateTriggerResponse
+}
+
+func (o *V2CreateTriggerResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2CreateTriggerResponse) GetV2CreateTriggerResponse() *components.V2CreateTriggerResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2CreateTriggerResponse
+}
diff --git a/pkg/client/models/operations/v2createworkflow.go b/pkg/client/models/operations/v2createworkflow.go
new file mode 100644
index 0000000..c5ae3c0
--- /dev/null
+++ b/pkg/client/models/operations/v2createworkflow.go
@@ -0,0 +1,27 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2CreateWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // Created workflow
+ V2CreateWorkflowResponse *components.V2CreateWorkflowResponse
+}
+
+func (o *V2CreateWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2CreateWorkflowResponse) GetV2CreateWorkflowResponse() *components.V2CreateWorkflowResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2CreateWorkflowResponse
+}
diff --git a/pkg/client/models/operations/v2deletetrigger.go b/pkg/client/models/operations/v2deletetrigger.go
new file mode 100644
index 0000000..a91bac2
--- /dev/null
+++ b/pkg/client/models/operations/v2deletetrigger.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2DeleteTriggerRequest struct {
+ // The trigger id
+ TriggerID string `pathParam:"style=simple,explode=false,name=triggerID"`
+}
+
+func (o *V2DeleteTriggerRequest) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+type V2DeleteTriggerResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *V2DeleteTriggerResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/operations/v2deleteworkflow.go b/pkg/client/models/operations/v2deleteworkflow.go
new file mode 100644
index 0000000..aacbb14
--- /dev/null
+++ b/pkg/client/models/operations/v2deleteworkflow.go
@@ -0,0 +1,30 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2DeleteWorkflowRequest struct {
+ // The flow id
+ FlowID string `pathParam:"style=simple,explode=false,name=flowId"`
+}
+
+func (o *V2DeleteWorkflowRequest) GetFlowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.FlowID
+}
+
+type V2DeleteWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *V2DeleteWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/operations/v2getinstance.go b/pkg/client/models/operations/v2getinstance.go
new file mode 100644
index 0000000..c2c9628
--- /dev/null
+++ b/pkg/client/models/operations/v2getinstance.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2GetInstanceRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+}
+
+func (o *V2GetInstanceRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+type V2GetInstanceResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance
+ V2GetWorkflowInstanceResponse *components.V2GetWorkflowInstanceResponse
+}
+
+func (o *V2GetInstanceResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2GetInstanceResponse) GetV2GetWorkflowInstanceResponse() *components.V2GetWorkflowInstanceResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2GetWorkflowInstanceResponse
+}
diff --git a/pkg/client/models/operations/v2getinstancehistory.go b/pkg/client/models/operations/v2getinstancehistory.go
new file mode 100644
index 0000000..097e29d
--- /dev/null
+++ b/pkg/client/models/operations/v2getinstancehistory.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2GetInstanceHistoryRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+}
+
+func (o *V2GetInstanceHistoryRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+type V2GetInstanceHistoryResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance history
+ V2GetWorkflowInstanceHistoryResponse *components.V2GetWorkflowInstanceHistoryResponse
+}
+
+func (o *V2GetInstanceHistoryResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2GetInstanceHistoryResponse) GetV2GetWorkflowInstanceHistoryResponse() *components.V2GetWorkflowInstanceHistoryResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2GetWorkflowInstanceHistoryResponse
+}
diff --git a/pkg/client/models/operations/v2getinstancestagehistory.go b/pkg/client/models/operations/v2getinstancestagehistory.go
new file mode 100644
index 0000000..7b817c0
--- /dev/null
+++ b/pkg/client/models/operations/v2getinstancestagehistory.go
@@ -0,0 +1,48 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2GetInstanceStageHistoryRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+ // The stage number
+ Number int64 `pathParam:"style=simple,explode=false,name=number"`
+}
+
+func (o *V2GetInstanceStageHistoryRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+func (o *V2GetInstanceStageHistoryRequest) GetNumber() int64 {
+ if o == nil {
+ return 0
+ }
+ return o.Number
+}
+
+type V2GetInstanceStageHistoryResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance stage history
+ V2GetWorkflowInstanceHistoryStageResponse *components.V2GetWorkflowInstanceHistoryStageResponse
+}
+
+func (o *V2GetInstanceStageHistoryResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2GetInstanceStageHistoryResponse) GetV2GetWorkflowInstanceHistoryStageResponse() *components.V2GetWorkflowInstanceHistoryStageResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2GetWorkflowInstanceHistoryStageResponse
+}
diff --git a/pkg/client/models/operations/v2getserverinfo.go b/pkg/client/models/operations/v2getserverinfo.go
new file mode 100644
index 0000000..109b13c
--- /dev/null
+++ b/pkg/client/models/operations/v2getserverinfo.go
@@ -0,0 +1,27 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2GetServerInfoResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // Server information
+ V2ServerInfo *components.V2ServerInfo
+}
+
+func (o *V2GetServerInfoResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2GetServerInfoResponse) GetV2ServerInfo() *components.V2ServerInfo {
+ if o == nil {
+ return nil
+ }
+ return o.V2ServerInfo
+}
diff --git a/pkg/client/models/operations/v2getworkflow.go b/pkg/client/models/operations/v2getworkflow.go
new file mode 100644
index 0000000..88269d1
--- /dev/null
+++ b/pkg/client/models/operations/v2getworkflow.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2GetWorkflowRequest struct {
+ // The flow id
+ FlowID string `pathParam:"style=simple,explode=false,name=flowId"`
+}
+
+func (o *V2GetWorkflowRequest) GetFlowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.FlowID
+}
+
+type V2GetWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow
+ V2GetWorkflowResponse *components.V2GetWorkflowResponse
+}
+
+func (o *V2GetWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2GetWorkflowResponse) GetV2GetWorkflowResponse() *components.V2GetWorkflowResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2GetWorkflowResponse
+}
diff --git a/pkg/client/models/operations/v2listinstances.go b/pkg/client/models/operations/v2listinstances.go
new file mode 100644
index 0000000..a481c22
--- /dev/null
+++ b/pkg/client/models/operations/v2listinstances.go
@@ -0,0 +1,71 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2ListInstancesRequest struct {
+ // Parameter used in pagination requests.
+ // Set to the value of next for the next page of results.
+ // Set to the value of previous for the previous page of results.
+ // No other parameters can be set when this parameter is set.
+ //
+ Cursor *string `queryParam:"style=form,explode=true,name=cursor"`
+ // The maximum number of results to return per page.
+ //
+ PageSize *int64 `queryParam:"style=form,explode=true,name=pageSize"`
+ // A workflow id
+ WorkflowID *string `queryParam:"style=form,explode=true,name=workflowID"`
+ // Filter running instances
+ Running *bool `queryParam:"style=form,explode=true,name=running"`
+}
+
+func (o *V2ListInstancesRequest) GetCursor() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Cursor
+}
+
+func (o *V2ListInstancesRequest) GetPageSize() *int64 {
+ if o == nil {
+ return nil
+ }
+ return o.PageSize
+}
+
+func (o *V2ListInstancesRequest) GetWorkflowID() *string {
+ if o == nil {
+ return nil
+ }
+ return o.WorkflowID
+}
+
+func (o *V2ListInstancesRequest) GetRunning() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.Running
+}
+
+type V2ListInstancesResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of workflow instances
+ V2ListRunsResponse *components.V2ListRunsResponse
+}
+
+func (o *V2ListInstancesResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2ListInstancesResponse) GetV2ListRunsResponse() *components.V2ListRunsResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2ListRunsResponse
+}
diff --git a/pkg/client/models/operations/v2listtriggers.go b/pkg/client/models/operations/v2listtriggers.go
new file mode 100644
index 0000000..78451e8
--- /dev/null
+++ b/pkg/client/models/operations/v2listtriggers.go
@@ -0,0 +1,62 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2ListTriggersRequest struct {
+ // Parameter used in pagination requests.
+ // Set to the value of next for the next page of results.
+ // Set to the value of previous for the previous page of results.
+ // No other parameters can be set when this parameter is set.
+ //
+ Cursor *string `queryParam:"style=form,explode=true,name=cursor"`
+ // The maximum number of results to return per page.
+ //
+ PageSize *int64 `queryParam:"style=form,explode=true,name=pageSize"`
+ // search by name
+ Name *string `queryParam:"style=form,explode=true,name=name"`
+}
+
+func (o *V2ListTriggersRequest) GetCursor() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Cursor
+}
+
+func (o *V2ListTriggersRequest) GetPageSize() *int64 {
+ if o == nil {
+ return nil
+ }
+ return o.PageSize
+}
+
+func (o *V2ListTriggersRequest) GetName() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Name
+}
+
+type V2ListTriggersResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of triggers
+ V2ListTriggersResponse *components.V2ListTriggersResponse
+}
+
+func (o *V2ListTriggersResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2ListTriggersResponse) GetV2ListTriggersResponse() *components.V2ListTriggersResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2ListTriggersResponse
+}
diff --git a/pkg/client/models/operations/v2listtriggersoccurrences.go b/pkg/client/models/operations/v2listtriggersoccurrences.go
new file mode 100644
index 0000000..4da007a
--- /dev/null
+++ b/pkg/client/models/operations/v2listtriggersoccurrences.go
@@ -0,0 +1,62 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2ListTriggersOccurrencesRequest struct {
+ // The trigger id
+ TriggerID string `pathParam:"style=simple,explode=false,name=triggerID"`
+ // Parameter used in pagination requests.
+ // Set to the value of next for the next page of results.
+ // Set to the value of previous for the previous page of results.
+ // No other parameters can be set when this parameter is set.
+ //
+ Cursor *string `queryParam:"style=form,explode=true,name=cursor"`
+ // The maximum number of results to return per page.
+ //
+ PageSize *int64 `queryParam:"style=form,explode=true,name=pageSize"`
+}
+
+func (o *V2ListTriggersOccurrencesRequest) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+func (o *V2ListTriggersOccurrencesRequest) GetCursor() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Cursor
+}
+
+func (o *V2ListTriggersOccurrencesRequest) GetPageSize() *int64 {
+ if o == nil {
+ return nil
+ }
+ return o.PageSize
+}
+
+type V2ListTriggersOccurrencesResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of triggers occurrences
+ V2ListTriggersOccurrencesResponse *components.V2ListTriggersOccurrencesResponse
+}
+
+func (o *V2ListTriggersOccurrencesResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2ListTriggersOccurrencesResponse) GetV2ListTriggersOccurrencesResponse() *components.V2ListTriggersOccurrencesResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2ListTriggersOccurrencesResponse
+}
diff --git a/pkg/client/models/operations/v2listworkflows.go b/pkg/client/models/operations/v2listworkflows.go
new file mode 100644
index 0000000..a849397
--- /dev/null
+++ b/pkg/client/models/operations/v2listworkflows.go
@@ -0,0 +1,53 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2ListWorkflowsRequest struct {
+ // Parameter used in pagination requests.
+ // Set to the value of next for the next page of results.
+ // Set to the value of previous for the previous page of results.
+ // No other parameters can be set when this parameter is set.
+ //
+ Cursor *string `queryParam:"style=form,explode=true,name=cursor"`
+ // The maximum number of results to return per page.
+ //
+ PageSize *int64 `queryParam:"style=form,explode=true,name=pageSize"`
+}
+
+func (o *V2ListWorkflowsRequest) GetCursor() *string {
+ if o == nil {
+ return nil
+ }
+ return o.Cursor
+}
+
+func (o *V2ListWorkflowsRequest) GetPageSize() *int64 {
+ if o == nil {
+ return nil
+ }
+ return o.PageSize
+}
+
+type V2ListWorkflowsResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // List of workflows
+ V2ListWorkflowsResponse *components.V2ListWorkflowsResponse
+}
+
+func (o *V2ListWorkflowsResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2ListWorkflowsResponse) GetV2ListWorkflowsResponse() *components.V2ListWorkflowsResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2ListWorkflowsResponse
+}
diff --git a/pkg/client/models/operations/v2readtrigger.go b/pkg/client/models/operations/v2readtrigger.go
new file mode 100644
index 0000000..3d279cc
--- /dev/null
+++ b/pkg/client/models/operations/v2readtrigger.go
@@ -0,0 +1,39 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2ReadTriggerRequest struct {
+ // The trigger id
+ TriggerID string `pathParam:"style=simple,explode=false,name=triggerID"`
+}
+
+func (o *V2ReadTriggerRequest) GetTriggerID() string {
+ if o == nil {
+ return ""
+ }
+ return o.TriggerID
+}
+
+type V2ReadTriggerResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // A specific trigger
+ V2ReadTriggerResponse *components.V2ReadTriggerResponse
+}
+
+func (o *V2ReadTriggerResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2ReadTriggerResponse) GetV2ReadTriggerResponse() *components.V2ReadTriggerResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2ReadTriggerResponse
+}
diff --git a/pkg/client/models/operations/v2runworkflow.go b/pkg/client/models/operations/v2runworkflow.go
new file mode 100644
index 0000000..9a9ca09
--- /dev/null
+++ b/pkg/client/models/operations/v2runworkflow.go
@@ -0,0 +1,56 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2RunWorkflowRequest struct {
+ // The flow id
+ WorkflowID string `pathParam:"style=simple,explode=false,name=workflowID"`
+ // Wait end of the workflow before return
+ Wait *bool `queryParam:"style=form,explode=true,name=wait"`
+ RequestBody map[string]string `request:"mediaType=application/json"`
+}
+
+func (o *V2RunWorkflowRequest) GetWorkflowID() string {
+ if o == nil {
+ return ""
+ }
+ return o.WorkflowID
+}
+
+func (o *V2RunWorkflowRequest) GetWait() *bool {
+ if o == nil {
+ return nil
+ }
+ return o.Wait
+}
+
+func (o *V2RunWorkflowRequest) GetRequestBody() map[string]string {
+ if o == nil {
+ return nil
+ }
+ return o.RequestBody
+}
+
+type V2RunWorkflowResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+ // The workflow instance
+ V2RunWorkflowResponse *components.V2RunWorkflowResponse
+}
+
+func (o *V2RunWorkflowResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
+
+func (o *V2RunWorkflowResponse) GetV2RunWorkflowResponse() *components.V2RunWorkflowResponse {
+ if o == nil {
+ return nil
+ }
+ return o.V2RunWorkflowResponse
+}
diff --git a/pkg/client/models/operations/v2sendevent.go b/pkg/client/models/operations/v2sendevent.go
new file mode 100644
index 0000000..9599ef3
--- /dev/null
+++ b/pkg/client/models/operations/v2sendevent.go
@@ -0,0 +1,49 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package operations
+
+import (
+ "openapi/models/components"
+)
+
+type V2SendEventRequestBody struct {
+ Name string `json:"name"`
+}
+
+func (o *V2SendEventRequestBody) GetName() string {
+ if o == nil {
+ return ""
+ }
+ return o.Name
+}
+
+type V2SendEventRequest struct {
+ // The instance id
+ InstanceID string `pathParam:"style=simple,explode=false,name=instanceID"`
+ RequestBody *V2SendEventRequestBody `request:"mediaType=application/json"`
+}
+
+func (o *V2SendEventRequest) GetInstanceID() string {
+ if o == nil {
+ return ""
+ }
+ return o.InstanceID
+}
+
+func (o *V2SendEventRequest) GetRequestBody() *V2SendEventRequestBody {
+ if o == nil {
+ return nil
+ }
+ return o.RequestBody
+}
+
+type V2SendEventResponse struct {
+ HTTPMeta components.HTTPMetadata `json:"-"`
+}
+
+func (o *V2SendEventResponse) GetHTTPMeta() components.HTTPMetadata {
+ if o == nil {
+ return components.HTTPMetadata{}
+ }
+ return o.HTTPMeta
+}
diff --git a/pkg/client/models/sdkerrors/error.go b/pkg/client/models/sdkerrors/error.go
new file mode 100644
index 0000000..5ae7946
--- /dev/null
+++ b/pkg/client/models/sdkerrors/error.go
@@ -0,0 +1,50 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package sdkerrors
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+type ErrorCode string
+
+const (
+ ErrorCodeValidation ErrorCode = "VALIDATION"
+ ErrorCodeNotFound ErrorCode = "NOT_FOUND"
+ ErrorCodeInternal ErrorCode = "INTERNAL"
+)
+
+func (e ErrorCode) ToPointer() *ErrorCode {
+ return &e
+}
+func (e *ErrorCode) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "VALIDATION":
+ fallthrough
+ case "NOT_FOUND":
+ fallthrough
+ case "INTERNAL":
+ *e = ErrorCode(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for ErrorCode: %v", v)
+ }
+}
+
+// Error - General error
+type Error struct {
+ ErrorCode ErrorCode `json:"errorCode"`
+ ErrorMessage string `json:"errorMessage"`
+}
+
+var _ error = &Error{}
+
+func (e *Error) Error() string {
+ data, _ := json.Marshal(e)
+ return string(data)
+}
diff --git a/pkg/client/models/sdkerrors/sdkerror.go b/pkg/client/models/sdkerrors/sdkerror.go
new file mode 100644
index 0000000..7d63b98
--- /dev/null
+++ b/pkg/client/models/sdkerrors/sdkerror.go
@@ -0,0 +1,35 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package sdkerrors
+
+import (
+ "fmt"
+ "net/http"
+)
+
+type SDKError struct {
+ Message string
+ StatusCode int
+ Body string
+ RawResponse *http.Response
+}
+
+var _ error = &SDKError{}
+
+func NewSDKError(message string, statusCode int, body string, httpRes *http.Response) *SDKError {
+ return &SDKError{
+ Message: message,
+ StatusCode: statusCode,
+ Body: body,
+ RawResponse: httpRes,
+ }
+}
+
+func (e *SDKError) Error() string {
+ body := ""
+ if len(e.Body) > 0 {
+ body = fmt.Sprintf("\n%s", e.Body)
+ }
+
+ return fmt.Sprintf("%s: Status %d%s", e.Message, e.StatusCode, body)
+}
diff --git a/pkg/client/models/sdkerrors/v2error.go b/pkg/client/models/sdkerrors/v2error.go
new file mode 100644
index 0000000..9c5ee7f
--- /dev/null
+++ b/pkg/client/models/sdkerrors/v2error.go
@@ -0,0 +1,50 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package sdkerrors
+
+import (
+ "encoding/json"
+ "fmt"
+)
+
+type V2ErrorErrorCode string
+
+const (
+ V2ErrorErrorCodeValidation V2ErrorErrorCode = "VALIDATION"
+ V2ErrorErrorCodeNotFound V2ErrorErrorCode = "NOT_FOUND"
+ V2ErrorErrorCodeInternal V2ErrorErrorCode = "INTERNAL"
+)
+
+func (e V2ErrorErrorCode) ToPointer() *V2ErrorErrorCode {
+ return &e
+}
+func (e *V2ErrorErrorCode) UnmarshalJSON(data []byte) error {
+ var v string
+ if err := json.Unmarshal(data, &v); err != nil {
+ return err
+ }
+ switch v {
+ case "VALIDATION":
+ fallthrough
+ case "NOT_FOUND":
+ fallthrough
+ case "INTERNAL":
+ *e = V2ErrorErrorCode(v)
+ return nil
+ default:
+ return fmt.Errorf("invalid value for V2ErrorErrorCode: %v", v)
+ }
+}
+
+// V2Error - General error
+type V2Error struct {
+ ErrorCode V2ErrorErrorCode `json:"errorCode"`
+ ErrorMessage string `json:"errorMessage"`
+}
+
+var _ error = &V2Error{}
+
+func (e *V2Error) Error() string {
+ data, _ := json.Marshal(e)
+ return string(data)
+}
diff --git a/pkg/client/orchestration.go b/pkg/client/orchestration.go
new file mode 100644
index 0000000..75c97e3
--- /dev/null
+++ b/pkg/client/orchestration.go
@@ -0,0 +1,18 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package openapi
+
+type Orchestration struct {
+ V1 *V1
+ V2 *V2
+
+ sdkConfiguration sdkConfiguration
+}
+
+func newOrchestration(sdkConfig sdkConfiguration) *Orchestration {
+ return &Orchestration{
+ sdkConfiguration: sdkConfig,
+ V1: newV1(sdkConfig),
+ V2: newV2(sdkConfig),
+ }
+}
diff --git a/pkg/client/retry/config.go b/pkg/client/retry/config.go
new file mode 100644
index 0000000..c051b0a
--- /dev/null
+++ b/pkg/client/retry/config.go
@@ -0,0 +1,16 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package retry
+
+type BackoffStrategy struct {
+ InitialInterval int
+ MaxInterval int
+ Exponent float64
+ MaxElapsedTime int
+}
+
+type Config struct {
+ Strategy string
+ Backoff *BackoffStrategy
+ RetryConnectionErrors bool
+}
diff --git a/pkg/client/sdk.go b/pkg/client/sdk.go
new file mode 100644
index 0000000..57890cf
--- /dev/null
+++ b/pkg/client/sdk.go
@@ -0,0 +1,171 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package openapi
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+ "openapi/internal/hooks"
+ "openapi/internal/utils"
+ "openapi/models/components"
+ "openapi/retry"
+ "time"
+)
+
+// ServerList contains the list of servers available to the SDK
+var ServerList = []string{
+ "http://localhost:8080/",
+}
+
+// HTTPClient provides an interface for suplying the SDK with a custom HTTP client
+type HTTPClient interface {
+ Do(req *http.Request) (*http.Response, error)
+}
+
+// String provides a helper function to return a pointer to a string
+func String(s string) *string { return &s }
+
+// Bool provides a helper function to return a pointer to a bool
+func Bool(b bool) *bool { return &b }
+
+// Int provides a helper function to return a pointer to an int
+func Int(i int) *int { return &i }
+
+// Int64 provides a helper function to return a pointer to an int64
+func Int64(i int64) *int64 { return &i }
+
+// Float32 provides a helper function to return a pointer to a float32
+func Float32(f float32) *float32 { return &f }
+
+// Float64 provides a helper function to return a pointer to a float64
+func Float64(f float64) *float64 { return &f }
+
+type sdkConfiguration struct {
+ Client HTTPClient
+ Security func(context.Context) (interface{}, error)
+ ServerURL string
+ ServerIndex int
+ Language string
+ OpenAPIDocVersion string
+ SDKVersion string
+ GenVersion string
+ UserAgent string
+ RetryConfig *retry.Config
+ Hooks *hooks.Hooks
+ Timeout *time.Duration
+}
+
+func (c *sdkConfiguration) GetServerDetails() (string, map[string]string) {
+ if c.ServerURL != "" {
+ return c.ServerURL, nil
+ }
+
+ return ServerList[c.ServerIndex], nil
+}
+
+type SDK struct {
+ Orchestration *Orchestration
+
+ sdkConfiguration sdkConfiguration
+}
+
+type SDKOption func(*SDK)
+
+// WithServerURL allows the overriding of the default server URL
+func WithServerURL(serverURL string) SDKOption {
+ return func(sdk *SDK) {
+ sdk.sdkConfiguration.ServerURL = serverURL
+ }
+}
+
+// WithTemplatedServerURL allows the overriding of the default server URL with a templated URL populated with the provided parameters
+func WithTemplatedServerURL(serverURL string, params map[string]string) SDKOption {
+ return func(sdk *SDK) {
+ if params != nil {
+ serverURL = utils.ReplaceParameters(serverURL, params)
+ }
+
+ sdk.sdkConfiguration.ServerURL = serverURL
+ }
+}
+
+// WithServerIndex allows the overriding of the default server by index
+func WithServerIndex(serverIndex int) SDKOption {
+ return func(sdk *SDK) {
+ if serverIndex < 0 || serverIndex >= len(ServerList) {
+ panic(fmt.Errorf("server index %d out of range", serverIndex))
+ }
+
+ sdk.sdkConfiguration.ServerIndex = serverIndex
+ }
+}
+
+// WithClient allows the overriding of the default HTTP client used by the SDK
+func WithClient(client HTTPClient) SDKOption {
+ return func(sdk *SDK) {
+ sdk.sdkConfiguration.Client = client
+ }
+}
+
+// WithSecurity configures the SDK to use the provided security details
+func WithSecurity(security components.Security) SDKOption {
+ return func(sdk *SDK) {
+ sdk.sdkConfiguration.Security = utils.AsSecuritySource(security)
+ }
+}
+
+// WithSecuritySource configures the SDK to invoke the Security Source function on each method call to determine authentication
+func WithSecuritySource(security func(context.Context) (components.Security, error)) SDKOption {
+ return func(sdk *SDK) {
+ sdk.sdkConfiguration.Security = func(ctx context.Context) (interface{}, error) {
+ return security(ctx)
+ }
+ }
+}
+
+func WithRetryConfig(retryConfig retry.Config) SDKOption {
+ return func(sdk *SDK) {
+ sdk.sdkConfiguration.RetryConfig = &retryConfig
+ }
+}
+
+// WithTimeout Optional request timeout applied to each operation
+func WithTimeout(timeout time.Duration) SDKOption {
+ return func(sdk *SDK) {
+ sdk.sdkConfiguration.Timeout = &timeout
+ }
+}
+
+// New creates a new instance of the SDK with the provided options
+func New(opts ...SDKOption) *SDK {
+ sdk := &SDK{
+ sdkConfiguration: sdkConfiguration{
+ Language: "go",
+ OpenAPIDocVersion: "0.1.0",
+ SDKVersion: "0.1.0",
+ GenVersion: "2.384.1",
+ UserAgent: "speakeasy-sdk/go 0.1.0 2.384.1 0.1.0 openapi",
+ Hooks: hooks.New(),
+ },
+ }
+ for _, opt := range opts {
+ opt(sdk)
+ }
+
+ // Use WithClient to override the default client if you would like to customize the timeout
+ if sdk.sdkConfiguration.Client == nil {
+ sdk.sdkConfiguration.Client = &http.Client{Timeout: 60 * time.Second}
+ }
+
+ currentServerURL, _ := sdk.sdkConfiguration.GetServerDetails()
+ serverURL := currentServerURL
+ serverURL, sdk.sdkConfiguration.Client = sdk.sdkConfiguration.Hooks.SDKInit(currentServerURL, sdk.sdkConfiguration.Client)
+ if serverURL != currentServerURL {
+ sdk.sdkConfiguration.ServerURL = serverURL
+ }
+
+ sdk.Orchestration = newOrchestration(sdk.sdkConfiguration)
+
+ return sdk
+}
diff --git a/pkg/client/types/bigint.go b/pkg/client/types/bigint.go
new file mode 100644
index 0000000..9c6a086
--- /dev/null
+++ b/pkg/client/types/bigint.go
@@ -0,0 +1,21 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package types
+
+import (
+ "fmt"
+ "math/big"
+)
+
+// MustNewBigIntFromString returns an instance of big.Int from a string
+// The string is assumed to be base 10 and if it is not a valid big.Int
+// then the function panics.
+// Avoid using this function in production code.
+func MustNewBigIntFromString(s string) *big.Int {
+ i, ok := new(big.Int).SetString(s, 10)
+ if !ok {
+ panic(fmt.Errorf("failed to parse string as big.Int"))
+ }
+
+ return i
+}
diff --git a/pkg/client/types/date.go b/pkg/client/types/date.go
new file mode 100644
index 0000000..5b2782f
--- /dev/null
+++ b/pkg/client/types/date.go
@@ -0,0 +1,90 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package types
+
+import (
+ "encoding/json"
+ "fmt"
+ "strings"
+ "time"
+)
+
+// Date is a wrapper around time.Time that allows for JSON marshaling a date string formatted as "2006-01-02".
+type Date struct {
+ time.Time
+}
+
+var (
+ _ json.Marshaler = &Date{}
+ _ json.Unmarshaler = &Date{}
+ _ fmt.Stringer = &Date{}
+)
+
+// NewDate returns an instance of Date from a time.Time.
+func NewDate(t time.Time) *Date {
+ d := DateFromTime(t)
+ return &d
+}
+
+// DateFromTime returns a Date from a time.Time.
+func DateFromTime(t time.Time) Date {
+ return Date{t}
+}
+
+// NewDateFromString returns an instance of Date from a string formatted as "2006-01-02".
+func NewDateFromString(str string) (*Date, error) {
+ d, err := DateFromString(str)
+ if err != nil {
+ return nil, err
+ }
+
+ return &d, nil
+}
+
+// DateFromString returns a Date from a string formatted as "2006-01-02".
+func DateFromString(str string) (Date, error) {
+ var d Date
+ var err error
+
+ d.Time, err = time.Parse("2006-01-02", str)
+ return d, err
+}
+
+// MustNewDateFromString returns an instance of Date from a string formatted as "2006-01-02" or panics.
+// Avoid using this function in production code.
+func MustNewDateFromString(str string) *Date {
+ d := MustDateFromString(str)
+ return &d
+}
+
+// MustDateFromString returns a Date from a string formatted as "2006-01-02" or panics.
+// Avoid using this function in production code.
+func MustDateFromString(str string) Date {
+ d, err := DateFromString(str)
+ if err != nil {
+ panic(err)
+ }
+ return d
+}
+
+func (d Date) GetTime() time.Time {
+ return d.Time
+}
+
+func (d Date) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf(`"%s"`, d.Time.Format("2006-01-02"))), nil
+}
+
+func (d *Date) UnmarshalJSON(data []byte) error {
+ var err error
+
+ str := string(data)
+ str = strings.Trim(str, `"`)
+
+ d.Time, err = time.Parse("2006-01-02", str)
+ return err
+}
+
+func (d Date) String() string {
+ return d.Time.Format("2006-01-02")
+}
diff --git a/pkg/client/types/datetime.go b/pkg/client/types/datetime.go
new file mode 100644
index 0000000..3eff332
--- /dev/null
+++ b/pkg/client/types/datetime.go
@@ -0,0 +1,23 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package types
+
+import "time"
+
+// MustTimeFromString returns a time.Time from a string formatted as "2006-01-02T15:04:05Z07:00" or panics.
+// Avoid using this function in production code.
+func MustTimeFromString(str string) time.Time {
+ t, err := time.Parse(time.RFC3339, str)
+ if err != nil {
+ panic(err)
+ }
+
+ return t
+}
+
+// MustNewTimeFromString returns an instance of time.Time from a string formatted as "2006-01-02T15:04:05Z07:00" or panics.
+// Avoid using this function in production code.
+func MustNewTimeFromString(str string) *time.Time {
+ t := MustTimeFromString(str)
+ return &t
+}
diff --git a/pkg/client/types/decimal.go b/pkg/client/types/decimal.go
new file mode 100644
index 0000000..d8429bc
--- /dev/null
+++ b/pkg/client/types/decimal.go
@@ -0,0 +1,20 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package types
+
+import (
+ "fmt"
+
+ "github.com/ericlagergren/decimal"
+)
+
+// MustNewDecimalFromString returns an instance of Decimal from a string
+// Avoid using this function in production code.
+func MustNewDecimalFromString(s string) *decimal.Big {
+ d, ok := new(decimal.Big).SetString(s)
+ if !ok {
+ panic(fmt.Errorf("failed to parse string as decimal.Big"))
+ }
+
+ return d
+}
diff --git a/pkg/client/types/pointers.go b/pkg/client/types/pointers.go
new file mode 100644
index 0000000..950d6a3
--- /dev/null
+++ b/pkg/client/types/pointers.go
@@ -0,0 +1,10 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package types
+
+func String(s string) *string { return &s }
+func Bool(b bool) *bool { return &b }
+func Int(i int) *int { return &i }
+func Int64(i int64) *int64 { return &i }
+func Float32(f float32) *float32 { return &f }
+func Float64(f float64) *float64 { return &f }
diff --git a/pkg/client/v1.go b/pkg/client/v1.go
new file mode 100644
index 0000000..1ad16bc
--- /dev/null
+++ b/pkg/client/v1.go
@@ -0,0 +1,3079 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package openapi
+
+import (
+ "bytes"
+ "context"
+ "fmt"
+ "github.com/cenkalti/backoff/v4"
+ "io"
+ "net/http"
+ "net/url"
+ "openapi/internal/hooks"
+ "openapi/internal/utils"
+ "openapi/models/components"
+ "openapi/models/operations"
+ "openapi/models/sdkerrors"
+)
+
+type V1 struct {
+ sdkConfiguration sdkConfiguration
+}
+
+func newV1(sdkConfig sdkConfiguration) *V1 {
+ return &V1{
+ sdkConfiguration: sdkConfig,
+ }
+}
+
+// GetServerInfo - Get server info
+func (s *V1) GetServerInfo(ctx context.Context, opts ...operations.Option) (*operations.GetServerInfoResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "getServerInfo",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/_info")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.GetServerInfoResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.ServerInfo
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.ServerInfo = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListTriggers - List triggers
+// List triggers
+func (s *V1) ListTriggers(ctx context.Context, request operations.ListTriggersRequest, opts ...operations.Option) (*operations.ListTriggersResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "listTriggers",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/triggers")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.ListTriggersResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.ListTriggersResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.ListTriggersResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// CreateTrigger - Create trigger
+// Create trigger
+func (s *V1) CreateTrigger(ctx context.Context, request *components.TriggerData, opts ...operations.Option) (*operations.CreateTriggerResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "createTrigger",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/triggers")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "Request", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.CreateTriggerResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 201:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.CreateTriggerResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.CreateTriggerResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ReadTrigger - Read trigger
+// Read trigger
+func (s *V1) ReadTrigger(ctx context.Context, request operations.ReadTriggerRequest, opts ...operations.Option) (*operations.ReadTriggerResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "readTrigger",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/triggers/{triggerID}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.ReadTriggerResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.ReadTriggerResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.ReadTriggerResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// DeleteTrigger - Delete trigger
+// Read trigger
+func (s *V1) DeleteTrigger(ctx context.Context, request operations.DeleteTriggerRequest, opts ...operations.Option) (*operations.DeleteTriggerResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "deleteTrigger",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/triggers/{triggerID}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.DeleteTriggerResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListTriggersOccurrences - List triggers occurrences
+// List triggers occurrences
+func (s *V1) ListTriggersOccurrences(ctx context.Context, request operations.ListTriggersOccurrencesRequest, opts ...operations.Option) (*operations.ListTriggersOccurrencesResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "listTriggersOccurrences",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/triggers/{triggerID}/occurrences", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.ListTriggersOccurrencesResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.ListTriggersOccurrencesResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.ListTriggersOccurrencesResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListWorkflows - List registered workflows
+// List registered workflows
+func (s *V1) ListWorkflows(ctx context.Context, opts ...operations.Option) (*operations.ListWorkflowsResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "listWorkflows",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/workflows")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.ListWorkflowsResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.ListWorkflowsResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.ListWorkflowsResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// CreateWorkflow - Create workflow
+// Create a workflow
+func (s *V1) CreateWorkflow(ctx context.Context, request *components.CreateWorkflowRequest, opts ...operations.Option) (*operations.CreateWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "createWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/workflows")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "Request", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.CreateWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 201:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.CreateWorkflowResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.CreateWorkflowResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetWorkflow - Get a flow by id
+// Get a flow by id
+func (s *V1) GetWorkflow(ctx context.Context, request operations.GetWorkflowRequest, opts ...operations.Option) (*operations.GetWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "getWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/workflows/{flowId}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.GetWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.GetWorkflowResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.GetWorkflowResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// DeleteWorkflow - Delete a flow by id
+// Delete a flow by id
+func (s *V1) DeleteWorkflow(ctx context.Context, request operations.DeleteWorkflowRequest, opts ...operations.Option) (*operations.DeleteWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "deleteWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/workflows/{flowId}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.DeleteWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// RunWorkflow - Run workflow
+// Run workflow
+func (s *V1) RunWorkflow(ctx context.Context, request operations.RunWorkflowRequest, opts ...operations.Option) (*operations.RunWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "runWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/workflows/{workflowID}/instances", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.RunWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 201:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.RunWorkflowResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.RunWorkflowResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListInstances - List instances of a workflow
+// List instances of a workflow
+func (s *V1) ListInstances(ctx context.Context, request operations.ListInstancesRequest, opts ...operations.Option) (*operations.ListInstancesResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "listInstances",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/instances")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.ListInstancesResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.ListRunsResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.ListRunsResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetInstance - Get a workflow instance by id
+// Get a workflow instance by id
+func (s *V1) GetInstance(ctx context.Context, request operations.GetInstanceRequest, opts ...operations.Option) (*operations.GetInstanceResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "getInstance",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/instances/{instanceID}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.GetInstanceResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.GetWorkflowInstanceResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.GetWorkflowInstanceResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// SendEvent - Send an event to a running workflow
+// Send an event to a running workflow
+func (s *V1) SendEvent(ctx context.Context, request operations.SendEventRequest, opts ...operations.Option) (*operations.SendEventResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "sendEvent",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/instances/{instanceID}/events", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.SendEventResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// CancelEvent - Cancel a running workflow
+// Cancel a running workflow
+func (s *V1) CancelEvent(ctx context.Context, request operations.CancelEventRequest, opts ...operations.Option) (*operations.CancelEventResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "cancelEvent",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/instances/{instanceID}/abort", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "PUT", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.CancelEventResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetInstanceHistory - Get a workflow instance history by id
+// Get a workflow instance history by id
+func (s *V1) GetInstanceHistory(ctx context.Context, request operations.GetInstanceHistoryRequest, opts ...operations.Option) (*operations.GetInstanceHistoryResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "getInstanceHistory",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/instances/{instanceID}/history", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.GetInstanceHistoryResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.GetWorkflowInstanceHistoryResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.GetWorkflowInstanceHistoryResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetInstanceStageHistory - Get a workflow instance stage history
+// Get a workflow instance stage history
+func (s *V1) GetInstanceStageHistory(ctx context.Context, request operations.GetInstanceStageHistoryRequest, opts ...operations.Option) (*operations.GetInstanceStageHistoryResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "getInstanceStageHistory",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/instances/{instanceID}/stages/{number}/history", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.GetInstanceStageHistoryResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.GetWorkflowInstanceHistoryStageResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.GetWorkflowInstanceHistoryStageResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
diff --git a/pkg/client/v2.go b/pkg/client/v2.go
new file mode 100644
index 0000000..f9bc834
--- /dev/null
+++ b/pkg/client/v2.go
@@ -0,0 +1,3273 @@
+// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+package openapi
+
+import (
+ "bytes"
+ "context"
+ "fmt"
+ "github.com/cenkalti/backoff/v4"
+ "io"
+ "net/http"
+ "net/url"
+ "openapi/internal/hooks"
+ "openapi/internal/utils"
+ "openapi/models/components"
+ "openapi/models/operations"
+ "openapi/models/sdkerrors"
+)
+
+type V2 struct {
+ sdkConfiguration sdkConfiguration
+}
+
+func newV2(sdkConfig sdkConfiguration) *V2 {
+ return &V2{
+ sdkConfiguration: sdkConfig,
+ }
+}
+
+// GetServerInfo - Get server info
+func (s *V2) GetServerInfo(ctx context.Context, opts ...operations.Option) (*operations.V2GetServerInfoResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2GetServerInfo",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/v2/_info")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2GetServerInfoResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2ServerInfo
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2ServerInfo = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListTriggers - List triggers
+// List triggers
+func (s *V2) ListTriggers(ctx context.Context, request operations.V2ListTriggersRequest, opts ...operations.Option) (*operations.V2ListTriggersResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2ListTriggers",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/v2/triggers")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2ListTriggersResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2ListTriggersResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2ListTriggersResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// CreateTrigger - Create trigger
+// Create trigger
+func (s *V2) CreateTrigger(ctx context.Context, request *components.V2TriggerData, opts ...operations.Option) (*operations.V2CreateTriggerResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2CreateTrigger",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/v2/triggers")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "Request", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2CreateTriggerResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 201:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2CreateTriggerResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2CreateTriggerResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ReadTrigger - Read trigger
+// Read trigger
+func (s *V2) ReadTrigger(ctx context.Context, request operations.V2ReadTriggerRequest, opts ...operations.Option) (*operations.V2ReadTriggerResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2ReadTrigger",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/triggers/{triggerID}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2ReadTriggerResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2ReadTriggerResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2ReadTriggerResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// DeleteTrigger - Delete trigger
+// Read trigger
+func (s *V2) DeleteTrigger(ctx context.Context, request operations.V2DeleteTriggerRequest, opts ...operations.Option) (*operations.V2DeleteTriggerResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2DeleteTrigger",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/triggers/{triggerID}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2DeleteTriggerResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// TestTrigger - Test trigger
+// Test trigger
+func (s *V2) TestTrigger(ctx context.Context, request operations.TestTriggerRequest, opts ...operations.Option) (*operations.TestTriggerResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "testTrigger",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/triggers/{triggerID}/test", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.TestTriggerResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2TestTriggerResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2TestTriggerResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListTriggersOccurrences - List triggers occurrences
+// List triggers occurrences
+func (s *V2) ListTriggersOccurrences(ctx context.Context, request operations.V2ListTriggersOccurrencesRequest, opts ...operations.Option) (*operations.V2ListTriggersOccurrencesResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2ListTriggersOccurrences",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/triggers/{triggerID}/occurrences", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2ListTriggersOccurrencesResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2ListTriggersOccurrencesResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2ListTriggersOccurrencesResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListWorkflows - List registered workflows
+// List registered workflows
+func (s *V2) ListWorkflows(ctx context.Context, request operations.V2ListWorkflowsRequest, opts ...operations.Option) (*operations.V2ListWorkflowsResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2ListWorkflows",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/v2/workflows")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2ListWorkflowsResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2ListWorkflowsResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2ListWorkflowsResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// CreateWorkflow - Create workflow
+// Create a workflow
+func (s *V2) CreateWorkflow(ctx context.Context, request *components.V2CreateWorkflowRequest, opts ...operations.Option) (*operations.V2CreateWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2CreateWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/v2/workflows")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "Request", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2CreateWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 201:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2CreateWorkflowResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2CreateWorkflowResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetWorkflow - Get a flow by id
+// Get a flow by id
+func (s *V2) GetWorkflow(ctx context.Context, request operations.V2GetWorkflowRequest, opts ...operations.Option) (*operations.V2GetWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2GetWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/workflows/{flowId}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2GetWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2GetWorkflowResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2GetWorkflowResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// DeleteWorkflow - Delete a flow by id
+// Delete a flow by id
+func (s *V2) DeleteWorkflow(ctx context.Context, request operations.V2DeleteWorkflowRequest, opts ...operations.Option) (*operations.V2DeleteWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2DeleteWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/workflows/{flowId}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "DELETE", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2DeleteWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// RunWorkflow - Run workflow
+// Run workflow
+func (s *V2) RunWorkflow(ctx context.Context, request operations.V2RunWorkflowRequest, opts ...operations.Option) (*operations.V2RunWorkflowResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2RunWorkflow",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/workflows/{workflowID}/instances", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2RunWorkflowResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 201:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2RunWorkflowResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2RunWorkflowResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// ListInstances - List instances of a workflow
+// List instances of a workflow
+func (s *V2) ListInstances(ctx context.Context, request operations.V2ListInstancesRequest, opts ...operations.Option) (*operations.V2ListInstancesResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2ListInstances",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := url.JoinPath(baseURL, "/v2/instances")
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateQueryParams(ctx, req, request, nil); err != nil {
+ return nil, fmt.Errorf("error populating query params: %w", err)
+ }
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2ListInstancesResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2ListRunsResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2ListRunsResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetInstance - Get a workflow instance by id
+// Get a workflow instance by id
+func (s *V2) GetInstance(ctx context.Context, request operations.V2GetInstanceRequest, opts ...operations.Option) (*operations.V2GetInstanceResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2GetInstance",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/instances/{instanceID}", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2GetInstanceResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2GetWorkflowInstanceResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2GetWorkflowInstanceResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// SendEvent - Send an event to a running workflow
+// Send an event to a running workflow
+func (s *V2) SendEvent(ctx context.Context, request operations.V2SendEventRequest, opts ...operations.Option) (*operations.V2SendEventResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2SendEvent",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/instances/{instanceID}/events", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ bodyReader, reqContentType, err := utils.SerializeRequestBody(ctx, request, false, true, "RequestBody", "json", `request:"mediaType=application/json"`)
+ if err != nil {
+ return nil, err
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "POST", opURL, bodyReader)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+ req.Header.Set("Content-Type", reqContentType)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2SendEventResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// CancelEvent - Cancel a running workflow
+// Cancel a running workflow
+func (s *V2) CancelEvent(ctx context.Context, request operations.V2CancelEventRequest, opts ...operations.Option) (*operations.V2CancelEventResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2CancelEvent",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:write"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/instances/{instanceID}/abort", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "PUT", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2CancelEventResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 204:
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetInstanceHistory - Get a workflow instance history by id
+// Get a workflow instance history by id
+func (s *V2) GetInstanceHistory(ctx context.Context, request operations.V2GetInstanceHistoryRequest, opts ...operations.Option) (*operations.V2GetInstanceHistoryResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2GetInstanceHistory",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/instances/{instanceID}/history", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2GetInstanceHistoryResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2GetWorkflowInstanceHistoryResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2GetWorkflowInstanceHistoryResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}
+
+// GetInstanceStageHistory - Get a workflow instance stage history
+// Get a workflow instance stage history
+func (s *V2) GetInstanceStageHistory(ctx context.Context, request operations.V2GetInstanceStageHistoryRequest, opts ...operations.Option) (*operations.V2GetInstanceStageHistoryResponse, error) {
+ hookCtx := hooks.HookContext{
+ Context: ctx,
+ OperationID: "v2GetInstanceStageHistory",
+ OAuth2Scopes: []string{"orchestration:read", "orchestration:read"},
+ SecuritySource: s.sdkConfiguration.Security,
+ }
+
+ o := operations.Options{}
+ supportedOptions := []string{
+ operations.SupportedOptionRetries,
+ operations.SupportedOptionTimeout,
+ }
+
+ for _, opt := range opts {
+ if err := opt(&o, supportedOptions...); err != nil {
+ return nil, fmt.Errorf("error applying option: %w", err)
+ }
+ }
+
+ baseURL := utils.ReplaceParameters(s.sdkConfiguration.GetServerDetails())
+ opURL, err := utils.GenerateURL(ctx, baseURL, "/v2/instances/{instanceID}/stages/{number}/history", request, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error generating URL: %w", err)
+ }
+
+ timeout := o.Timeout
+ if timeout == nil {
+ timeout = s.sdkConfiguration.Timeout
+ }
+
+ if timeout != nil {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithTimeout(ctx, *timeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(ctx, "GET", opURL, nil)
+ if err != nil {
+ return nil, fmt.Errorf("error creating request: %w", err)
+ }
+ req.Header.Set("Accept", "application/json")
+ req.Header.Set("User-Agent", s.sdkConfiguration.UserAgent)
+
+ if err := utils.PopulateSecurity(ctx, req, s.sdkConfiguration.Security); err != nil {
+ return nil, err
+ }
+
+ globalRetryConfig := s.sdkConfiguration.RetryConfig
+ retryConfig := o.Retries
+ if retryConfig == nil {
+ if globalRetryConfig != nil {
+ retryConfig = globalRetryConfig
+ }
+ }
+
+ var httpRes *http.Response
+ if retryConfig != nil {
+ httpRes, err = utils.Retry(ctx, utils.Retries{
+ Config: retryConfig,
+ StatusCodes: []string{
+ "429",
+ "500",
+ "502",
+ "503",
+ "504",
+ },
+ }, func() (*http.Response, error) {
+ if req.Body != nil {
+ copyBody, err := req.GetBody()
+ if err != nil {
+ return nil, err
+ }
+ req.Body = copyBody
+ }
+
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, backoff.Permanent(err)
+ }
+
+ httpRes, err := s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ }
+ return httpRes, err
+ })
+
+ if err != nil {
+ return nil, err
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ } else {
+ req, err = s.sdkConfiguration.Hooks.BeforeRequest(hooks.BeforeRequestContext{HookContext: hookCtx}, req)
+ if err != nil {
+ return nil, err
+ }
+
+ httpRes, err = s.sdkConfiguration.Client.Do(req)
+ if err != nil || httpRes == nil {
+ if err != nil {
+ err = fmt.Errorf("error sending request: %w", err)
+ } else {
+ err = fmt.Errorf("error sending request: no response")
+ }
+
+ _, err = s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, nil, err)
+ return nil, err
+ } else if utils.MatchStatusCodes([]string{"default"}, httpRes.StatusCode) {
+ _httpRes, err := s.sdkConfiguration.Hooks.AfterError(hooks.AfterErrorContext{HookContext: hookCtx}, httpRes, nil)
+ if err != nil {
+ return nil, err
+ } else if _httpRes != nil {
+ httpRes = _httpRes
+ }
+ } else {
+ httpRes, err = s.sdkConfiguration.Hooks.AfterSuccess(hooks.AfterSuccessContext{HookContext: hookCtx}, httpRes)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ res := &operations.V2GetInstanceStageHistoryResponse{
+ HTTPMeta: components.HTTPMetadata{
+ Request: req,
+ Response: httpRes,
+ },
+ }
+
+ rawBody, err := io.ReadAll(httpRes.Body)
+ if err != nil {
+ return nil, fmt.Errorf("error reading response body: %w", err)
+ }
+ httpRes.Body.Close()
+ httpRes.Body = io.NopCloser(bytes.NewBuffer(rawBody))
+
+ switch {
+ case httpRes.StatusCode == 200:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out components.V2GetWorkflowInstanceHistoryStageResponse
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ res.V2GetWorkflowInstanceHistoryStageResponse = &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ default:
+ switch {
+ case utils.MatchContentType(httpRes.Header.Get("Content-Type"), `application/json`):
+ var out sdkerrors.V2Error
+ if err := utils.UnmarshalJsonFromResponseBody(bytes.NewBuffer(rawBody), &out, ""); err != nil {
+ return nil, err
+ }
+
+ return nil, &out
+ default:
+ return nil, sdkerrors.NewSDKError(fmt.Sprintf("unknown content-type received: %s", httpRes.Header.Get("Content-Type")), httpRes.StatusCode, string(rawBody), httpRes)
+ }
+ }
+
+ return res, nil
+
+}