Skip to content

Commit 386b0df

Browse files
authored
Merge pull request #355 from hookdeck/add-sdks
feat: adding outpost sdks
2 parents 5873248 + 7baae09 commit 386b0df

File tree

833 files changed

+81631
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

833 files changed

+81631
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Generate OUTPOST-GO
2+
permissions:
3+
checks: write
4+
contents: write
5+
pull-requests: write
6+
statuses: write
7+
id-token: write
8+
"on":
9+
workflow_dispatch:
10+
inputs:
11+
force:
12+
description: Force generation of SDKs
13+
type: boolean
14+
default: false
15+
set_version:
16+
description: optionally set a specific SDK version
17+
type: string
18+
jobs:
19+
generate:
20+
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
21+
with:
22+
force: ${{ github.event.inputs.force }}
23+
mode: pr
24+
set_version: ${{ github.event.inputs.set_version }}
25+
target: outpost-go
26+
secrets:
27+
github_access_token: ${{ secrets.GITHUB_TOKEN }}
28+
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Generate OUTPOST-PYTHON
2+
permissions:
3+
checks: write
4+
contents: write
5+
pull-requests: write
6+
statuses: write
7+
id-token: write
8+
"on":
9+
workflow_dispatch:
10+
inputs:
11+
force:
12+
description: Force generation of SDKs
13+
type: boolean
14+
default: false
15+
set_version:
16+
description: optionally set a specific SDK version
17+
type: string
18+
jobs:
19+
generate:
20+
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
21+
with:
22+
force: ${{ github.event.inputs.force }}
23+
mode: pr
24+
set_version: ${{ github.event.inputs.set_version }}
25+
target: outpost-python
26+
secrets:
27+
github_access_token: ${{ secrets.GITHUB_TOKEN }}
28+
pypi_token: ${{ secrets.PYPI_TOKEN }}
29+
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Generate OUTPOST-TS
2+
permissions:
3+
checks: write
4+
contents: write
5+
pull-requests: write
6+
statuses: write
7+
id-token: write
8+
"on":
9+
workflow_dispatch:
10+
inputs:
11+
force:
12+
description: Force generation of SDKs
13+
type: boolean
14+
default: false
15+
set_version:
16+
description: optionally set a specific SDK version
17+
type: string
18+
jobs:
19+
generate:
20+
uses: speakeasy-api/sdk-generation-action/.github/workflows/workflow-executor.yaml@v15
21+
with:
22+
force: ${{ github.event.inputs.force }}
23+
mode: pr
24+
set_version: ${{ github.event.inputs.set_version }}
25+
target: outpost-ts
26+
secrets:
27+
github_access_token: ${{ secrets.GITHUB_TOKEN }}
28+
npm_token: ${{ secrets.NPM_TOKEN }}
29+
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Publish OUTPOST-GO
2+
permissions:
3+
checks: write
4+
contents: write
5+
pull-requests: write
6+
statuses: write
7+
id-token: write
8+
"on":
9+
push:
10+
branches:
11+
- main
12+
paths:
13+
- sdks/go/.speakeasy/gen.lock
14+
workflow_dispatch: {}
15+
jobs:
16+
publish:
17+
uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15
18+
with:
19+
target: outpost-go
20+
secrets:
21+
github_access_token: ${{ secrets.GITHUB_TOKEN }}
22+
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Publish OUTPOST-PYTHON
2+
permissions:
3+
checks: write
4+
contents: write
5+
pull-requests: write
6+
statuses: write
7+
id-token: write
8+
"on":
9+
push:
10+
branches:
11+
- main
12+
paths:
13+
- sdks/python/.speakeasy/gen.lock
14+
workflow_dispatch: {}
15+
jobs:
16+
publish:
17+
uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15
18+
with:
19+
target: outpost-python
20+
secrets:
21+
github_access_token: ${{ secrets.GITHUB_TOKEN }}
22+
pypi_token: ${{ secrets.PYPI_TOKEN }}
23+
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Publish OUTPOST-TS
2+
permissions:
3+
checks: write
4+
contents: write
5+
pull-requests: write
6+
statuses: write
7+
id-token: write
8+
"on":
9+
push:
10+
branches:
11+
- main
12+
paths:
13+
- sdks/typescript/.speakeasy/gen.lock
14+
workflow_dispatch: {}
15+
jobs:
16+
publish:
17+
uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15
18+
with:
19+
target: outpost-ts
20+
secrets:
21+
github_access_token: ${{ secrets.GITHUB_TOKEN }}
22+
npm_token: ${{ secrets.NPM_TOKEN }}
23+
speakeasy_api_key: ${{ secrets.SPEAKEASY_API_KEY }}

.speakeasy/workflow.lock

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
speakeasyVersion: 1.541.2
2+
sources: {}
3+
targets:
4+
outpost-go:
5+
source: Outpost API
6+
outpost-python:
7+
source: Outpost API
8+
outpost-ts:
9+
source: Outpost API
10+
workflow:
11+
workflowVersion: 1.0.0
12+
speakeasyVersion: latest
13+
sources:
14+
Outpost API:
15+
inputs:
16+
- location: ./sdks/schemas/hookdeck-schema.yaml
17+
overlays:
18+
- location: ./sdks/schemas/speakeasy-modifications-overlay.yaml
19+
- location: ./sdks/schemas/error-types.yaml
20+
registry:
21+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api
22+
targets:
23+
outpost-go:
24+
target: go
25+
source: Outpost API
26+
output: ./sdks/go
27+
codeSamples:
28+
registry:
29+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api-go-code-samples
30+
labelOverride:
31+
fixedValue: Go (SDK)
32+
blocking: false
33+
outpost-python:
34+
target: python
35+
source: Outpost API
36+
output: ./sdks/python
37+
codeSamples:
38+
registry:
39+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api-python-code-samples
40+
labelOverride:
41+
fixedValue: Python (SDK)
42+
blocking: false
43+
outpost-ts:
44+
target: typescript
45+
source: Outpost API
46+
output: ./sdks/typescript
47+
codeSamples:
48+
registry:
49+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api-typescript-code-samples
50+
labelOverride:
51+
fixedValue: Typescript (SDK)
52+
blocking: false

.speakeasy/workflow.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
workflowVersion: 1.0.0
2+
speakeasyVersion: latest
3+
sources:
4+
Outpost API:
5+
inputs:
6+
- location: ./docs/apis/openapi.yaml
7+
overlays:
8+
- location: ./sdks/schemas/speakeasy-modifications-overlay.yaml
9+
- location: ./sdks/schemas/error-types.yaml
10+
registry:
11+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api
12+
targets:
13+
outpost-go:
14+
target: go
15+
source: Outpost API
16+
output: ./sdks/go
17+
codeSamples:
18+
registry:
19+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api-go-code-samples
20+
labelOverride:
21+
fixedValue: Go (SDK)
22+
blocking: false
23+
outpost-python:
24+
target: python
25+
source: Outpost API
26+
output: ./sdks/python
27+
publish:
28+
pypi:
29+
token: $pypi_token
30+
codeSamples:
31+
registry:
32+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api-python-code-samples
33+
labelOverride:
34+
fixedValue: Python (SDK)
35+
blocking: false
36+
outpost-ts:
37+
target: typescript
38+
source: Outpost API
39+
output: ./sdks/typescript
40+
publish:
41+
npm:
42+
token: $npm_token
43+
codeSamples:
44+
registry:
45+
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api-typescript-code-samples
46+
labelOverride:
47+
fixedValue: Typescript (SDK)
48+
blocking: false

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ Read [Outpost Concepts](https://outpost.hookdeck.com/docs/concepts) to learn mor
5858
- **OpenTelemetry**: OTel standardized traces, metrics, and logs.
5959
- **Event destination types**: Out of the box support for Webhooks, Hookdeck Event Gateway, Amazon EventBridge, AWS SQS, AWS SNS. GCP Pub/Sub, RabbitMQ, and Kafka.
6060
- **Webhook best practices**: Opt-out webhook best practices, such as headers for idempotency, timestamp and signature, and signature rotation.
61+
- **SDKs and MCP server**: Go, Python, and TypeScript SDK are available. Outpost also ships with an MCP server. All generated by [Speakeasy](https://speakeasy.com).
6162

6263
See the [Outpost Features](https://outpost.hookdeck.com/docs/features) for more information.
6364

@@ -71,6 +72,8 @@ See the [Outpost Features](https://outpost.hookdeck.com/docs/features) for more
7172
- [API Reference](https://outpost.hookdeck.com/docs/references/api)
7273
- [Configuration Reference](https://outpost.hookdeck.com/docs/references/configuration)
7374

75+
_The Outpost documentation is built using the [Zudoku documentation framework](https://zuplo.link/outpost)._
76+
7477
## Quickstart
7578

7679
Ensure you have [Docker](https://docs.docker.com/engine/install/) installed.

sdks/go/.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# This allows generated code to be indexed correctly
2+
*.go linguist-generated=false

0 commit comments

Comments
 (0)