Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
speakeasyVersion: 1.608.0
speakeasyVersion: 1.609.0
sources:
Outpost API:
sourceNamespace: outpost-api
sourceRevisionDigest: sha256:4042dbef541e06289b580460ccfb39d8f444c852e134de2245b13e1ffd43dcf3
sourceBlobDigest: sha256:3859f29c380e176f9382eb969cefbb9c8701875d4837ee8a9549b78bf92eebc6
sourceRevisionDigest: sha256:e09cf02de047cf6d007545274c477e2a90c561074b9de170d844d9ab9ffbbca6
sourceBlobDigest: sha256:c405cfc4f2de092323a9dd68a09f7c08b563d363bce7463fc8b426d10acacf99
tags:
- latest
- speakeasy-sdk-regen-1756910957
- 0.0.1
targets:
outpost-go:
Expand All @@ -19,10 +18,10 @@ targets:
outpost-python:
source: Outpost API
sourceNamespace: outpost-api
sourceRevisionDigest: sha256:837897b6e2774d7ba547d9616639367bfce651d53d84190c3ee0cd32cee7e8b1
sourceBlobDigest: sha256:3b1cd63370e0cf368a2049eaa26c9f94cd94a929de42592f8488adb5a6a3f182
sourceRevisionDigest: sha256:e09cf02de047cf6d007545274c477e2a90c561074b9de170d844d9ab9ffbbca6
sourceBlobDigest: sha256:c405cfc4f2de092323a9dd68a09f7c08b563d363bce7463fc8b426d10acacf99
codeSamplesNamespace: outpost-api-python-code-samples
codeSamplesRevisionDigest: sha256:c28bb1c6bd595fb3b1353dc6cdc672fa0f11c518f0bf85dcc12c5c02ad35fcc3
codeSamplesRevisionDigest: sha256:d8540bce24dc0cc34650c9546892f1d45db9fe1867c18571e046e9c72123a246
outpost-ts:
source: Outpost API
sourceNamespace: outpost-api
Expand All @@ -40,6 +39,7 @@ workflow:
overlays:
- location: ./sdks/schemas/speakeasy-modifications-overlay.yaml
- location: ./sdks/schemas/error-types.yaml
- location: ./sdks/schemas/pagination-fixes-overlay.yaml
registry:
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api
targets:
Expand Down
1 change: 1 addition & 0 deletions .speakeasy/workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ sources:
overlays:
- location: ./sdks/schemas/speakeasy-modifications-overlay.yaml
- location: ./sdks/schemas/error-types.yaml
- location: ./sdks/schemas/pagination-fixes-overlay.yaml
registry:
location: registry.speakeasyapi.dev/hookdeck-dev/outpost/outpost-api
targets:
Expand Down
44 changes: 32 additions & 12 deletions sdks/outpost-python/.speakeasy/gen.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: da774284-22d9-4b6c-bb26-1c3fc9f2c7ee
management:
docChecksum: 3d3f028a2fdd56804d9ae8a2d95a414b
docChecksum: f88900fa0dfdee97044181ff0fbb5027
docVersion: 0.0.1
speakeasyVersion: 1.594.0
generationVersion: 2.670.1
releaseVersion: 0.3.0
configChecksum: 3b13091ed8addea8fde7b0db3bd41f0b
speakeasyVersion: 1.609.0
generationVersion: 2.692.0
releaseVersion: 0.4.0
configChecksum: 5010174e527b0e15ea785476055a0d53
repoURL: https://github.com/hookdeck/outpost.git
repoSubDirectory: sdks/outpost-python
installationURL: https://github.com/hookdeck/outpost.git#subdirectory=sdks/outpost-python
Expand All @@ -15,7 +15,8 @@ features:
python:
additionalDependencies: 1.0.0
additionalProperties: 1.0.1
core: 5.19.5
constsAndDefaults: 1.0.5
core: 5.20.3
defaultEnabledRetries: 0.2.0
enumUnions: 0.1.0
envVarSecurityUsage: 0.3.2
Expand All @@ -28,6 +29,7 @@ features:
methodArguments: 1.0.2
nameOverrides: 3.0.1
nullables: 1.0.1
pagination: 3.0.5
responseFormat: 1.0.1
retries: 3.0.2
sdkHooks: 1.1.0
Expand All @@ -44,6 +46,8 @@ generatedFiles:
- docs/errors/unauthorizederror.md
- docs/models/awskinesisconfig.md
- docs/models/awskinesiscredentials.md
- docs/models/awss3config.md
- docs/models/awss3credentials.md
- docs/models/awssqsconfig.md
- docs/models/awssqscredentials.md
- docs/models/azureservicebusconfig.md
Expand All @@ -58,13 +62,17 @@ generatedFiles:
- docs/models/destination.md
- docs/models/destinationawskinesis.md
- docs/models/destinationawskinesistype.md
- docs/models/destinationawss3.md
- docs/models/destinationawss3type.md
- docs/models/destinationawssqs.md
- docs/models/destinationawssqstype.md
- docs/models/destinationazureservicebus.md
- docs/models/destinationazureservicebustype.md
- docs/models/destinationcreate.md
- docs/models/destinationcreateawskinesis.md
- docs/models/destinationcreateawskinesistype.md
- docs/models/destinationcreateawss3.md
- docs/models/destinationcreateawss3type.md
- docs/models/destinationcreateawssqs.md
- docs/models/destinationcreateawssqstype.md
- docs/models/destinationcreateazureservicebus.md
Expand All @@ -85,6 +93,7 @@ generatedFiles:
- docs/models/destinationtypeschema.md
- docs/models/destinationupdate.md
- docs/models/destinationupdateawskinesis.md
- docs/models/destinationupdateawss3.md
- docs/models/destinationupdateawssqs.md
- docs/models/destinationupdatehookdeck.md
- docs/models/destinationupdaterabbitmq.md
Expand Down Expand Up @@ -126,9 +135,13 @@ generatedFiles:
- docs/models/listtenanteventdeliveriesrequest.md
- docs/models/listtenanteventsbydestinationglobals.md
- docs/models/listtenanteventsbydestinationrequest.md
- docs/models/listtenanteventsbydestinationresponse.md
- docs/models/listtenanteventsbydestinationresponsebody.md
- docs/models/listtenanteventsbydestinationstatus.md
- docs/models/listtenanteventsglobals.md
- docs/models/listtenanteventsrequest.md
- docs/models/listtenanteventsresponse.md
- docs/models/listtenanteventsresponsebody.md
- docs/models/listtenanteventsstatus.md
- docs/models/listtenanttopicsglobals.md
- docs/models/listtenanttopicsrequest.md
Expand Down Expand Up @@ -196,6 +209,8 @@ generatedFiles:
- src/outpost_sdk/models/__init__.py
- src/outpost_sdk/models/awskinesisconfig.py
- src/outpost_sdk/models/awskinesiscredentials.py
- src/outpost_sdk/models/awss3config.py
- src/outpost_sdk/models/awss3credentials.py
- src/outpost_sdk/models/awssqsconfig.py
- src/outpost_sdk/models/awssqscredentials.py
- src/outpost_sdk/models/azureservicebusconfig.py
Expand All @@ -206,10 +221,12 @@ generatedFiles:
- src/outpost_sdk/models/deliveryattempt.py
- src/outpost_sdk/models/destination.py
- src/outpost_sdk/models/destinationawskinesis.py
- src/outpost_sdk/models/destinationawss3.py
- src/outpost_sdk/models/destinationawssqs.py
- src/outpost_sdk/models/destinationazureservicebus.py
- src/outpost_sdk/models/destinationcreate.py
- src/outpost_sdk/models/destinationcreateawskinesis.py
- src/outpost_sdk/models/destinationcreateawss3.py
- src/outpost_sdk/models/destinationcreateawssqs.py
- src/outpost_sdk/models/destinationcreateazureservicebus.py
- src/outpost_sdk/models/destinationcreatehookdeck.py
Expand All @@ -221,6 +238,7 @@ generatedFiles:
- src/outpost_sdk/models/destinationtypeschema.py
- src/outpost_sdk/models/destinationupdate.py
- src/outpost_sdk/models/destinationupdateawskinesis.py
- src/outpost_sdk/models/destinationupdateawss3.py
- src/outpost_sdk/models/destinationupdateawssqs.py
- src/outpost_sdk/models/destinationupdatehookdeck.py
- src/outpost_sdk/models/destinationupdaterabbitmq.py
Expand Down Expand Up @@ -363,7 +381,7 @@ examples:
query: {}
responses:
"200":
application/json: [{"id": "des_webhook_123", "type": "webhook", "topics": ["user.created", "order.shipped"], "disabled_at": null, "created_at": "2024-02-15T10:00:00Z", "config": {"url": "https://my-service.com/webhook/handler"}, "credentials": {"secret": "whsec_abc123def456", "previous_secret": "whsec_prev789xyz012", "previous_secret_invalid_at": "2024-02-16T10:00:00Z"}}, {"id": "des_sqs_456", "type": "aws_sqs", "topics": ["*"], "disabled_at": "2024-03-01T12:00:00Z", "created_at": "2024-02-20T11:30:00Z", "config": {"endpoint": "https://sqs.us-west-2.amazonaws.com", "queue_url": "https://sqs.us-west-2.amazonaws.com/123456789012/my-app-queue"}, "credentials": {"key": "AKIAIOSFODNN7EXAMPLE", "secret": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"}}]
application/json: [{"id": "des_webhook_123", "type": "webhook", "topics": ["user.created", "order.shipped"], "disabled_at": null, "created_at": "2024-02-15T10:00:00Z", "config": {"url": "https://my-service.com/webhook/handler"}, "credentials": {"secret": "whsec_abc123def456", "previous_secret": "whsec_prev789xyz012", "previous_secret_invalid_at": "2024-02-16T10:00:00Z"}}, {"id": "des_sqs_456", "type": "aws_sqs", "topics": ["*"], "disabled_at": "2024-03-01T12:00:00Z", "created_at": "2024-02-20T11:30:00Z", "config": {"endpoint": "https://sqs.us-west-2.amazonaws.com", "queue_url": "https://sqs.us-west-2.amazonaws.com/123456789012/my-app-queue"}, "credentials": {"key": "AKIAIOSFODNN7EXAMPLE", "secret": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"}}, {"id": "des_s3_789", "type": "aws_s3", "topics": ["*"], "disabled_at": null, "created_at": "2024-03-20T12:00:00Z", "config": {"bucket": "my-bucket", "region": "us-east-1"}, "credentials": {"key": "AKIAIOSFODNN7EXAMPLE", "secret": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"}}]
createTenantDestination:
WebhookCreatedExample:
parameters:
Expand Down Expand Up @@ -455,7 +473,7 @@ examples:
tenant_id: "<id>"
responses:
"200":
application/json: [{"type": "webhook", "label": "Webhook", "description": "Send event via an HTTP POST request to a URL", "icon": "<svg />", "instructions": "Enter the URL...", "config_fields": [{"type": "text", "label": "URL", "description": "The URL to send the webhook to.", "required": true, "pattern": "^https?://.*"}], "credential_fields": [{"type": "text", "label": "Secret", "description": "Optional signing secret.", "required": false, "sensitive": true}]}, {"type": "aws_sqs", "label": "AWS SQS", "description": "Send event to an AWS SQS queue", "icon": "<svg />", "instructions": "Enter Queue URL...", "config_fields": [{"type": "text", "label": "Queue URL", "description": "The URL of the SQS queue.", "required": true}, {"type": "text", "label": "Endpoint", "description": "Optional custom AWS endpoint URL.", "required": false}], "credential_fields": [{"type": "text", "label": "Key", "description": "AWS Access Key ID.", "required": true, "sensitive": true}, {"type": "text", "label": "Secret", "description": "AWS Secret Access Key.", "required": true, "sensitive": true}, {"type": "text", "label": "Session", "description": "Optional AWS Session Token.", "required": false, "sensitive": true}]}]
application/json: [{"type": "webhook", "label": "Webhook", "description": "Send event via an HTTP POST request to a URL", "icon": "<svg />", "instructions": "Enter the URL...", "config_fields": [{"type": "text", "label": "URL", "description": "The URL to send the webhook to.", "required": true, "pattern": "^https?://.*"}], "credential_fields": [{"type": "text", "label": "Secret", "description": "Optional signing secret.", "required": false, "sensitive": true}]}, {"type": "aws_sqs", "label": "AWS SQS", "description": "Send event to an AWS SQS queue", "icon": "<svg />", "instructions": "Enter Queue URL...", "config_fields": [{"type": "text", "label": "Queue URL", "description": "The URL of the SQS queue.", "required": true}, {"type": "text", "label": "Endpoint", "description": "Optional custom AWS endpoint URL.", "required": false}], "credential_fields": [{"type": "text", "label": "Key", "description": "AWS Access Key ID.", "required": true, "sensitive": true}, {"type": "text", "label": "Secret", "description": "AWS Secret Access Key.", "required": true, "sensitive": true}, {"type": "text", "label": "Session", "description": "Optional AWS Session Token.", "required": false, "sensitive": true}]}, {"type": "aws_s3", "label": "AWS S3", "description": "Store events in an Amazon S3 bucket", "icon": "<svg />", "instructions": "Enter bucket and region...", "config_fields": [{"type": "text", "label": "Bucket Name", "description": "The name of the S3 bucket.", "required": true}, {"type": "text", "label": "AWS Region", "description": "The AWS region where the bucket is located.", "required": true}], "credential_fields": [{"type": "text", "label": "Key", "description": "AWS Access Key ID.", "required": true, "sensitive": true}, {"type": "text", "label": "Secret", "description": "AWS Secret Access Key.", "required": true, "sensitive": true}]}, {"type": "aws_s3", "label": "AWS S3", "description": "Store events in an Amazon S3 bucket", "icon": "<svg />", "instructions": "Enter bucket and region...", "config_fields": [{"type": "text", "label": "Bucket Name", "description": "The name of the S3 bucket.", "required": true}, {"type": "text", "label": "AWS Region", "description": "The AWS region where the bucket is located.", "required": true}], "credential_fields": [{"type": "text", "label": "Key", "description": "AWS Access Key ID.", "required": true, "sensitive": true}, {"type": "text", "label": "Secret", "description": "AWS Secret Access Key.", "required": true, "sensitive": true}]}]
getTenantDestinationTypeSchema:
WebhookSchemaExample:
parameters:
Expand Down Expand Up @@ -496,10 +514,11 @@ examples:
parameters:
path:
tenant_id: "<id>"
query: {}
query:
limit: 100
responses:
"200":
application/json: [{"id": "evt_123", "destination_id": "des_456", "topic": "user.created", "time": "2024-01-01T00:00:00Z", "successful_at": "2024-01-01T00:00:05Z", "metadata": {"source": "crm"}, "data": {"user_id": "userid", "status": "active"}}, {"id": "evt_789", "destination_id": "des_456", "topic": "order.shipped", "time": "2024-01-02T10:00:00Z", "successful_at": null, "metadata": {"source": "oms"}, "data": {"order_id": "orderid", "tracking": "1Z..."}}]
application/json: {"count": 2, "data": [{"id": "evt_123", "destination_id": "des_456", "topic": "user.created", "time": "2024-01-01T00:00:00Z", "successful_at": "2024-01-01T00:00:05Z", "metadata": {"source": "crm"}, "data": {"user_id": "userid", "status": "active"}}, {"id": "evt_789", "destination_id": "des_456", "topic": "order.shipped", "time": "2024-01-02T10:00:00Z", "successful_at": null, "metadata": {"source": "oms"}, "data": {"order_id": "orderid", "tracking": "1Z..."}}], "next": "", "prev": ""}
getTenantEvent:
EventExample:
parameters:
Expand All @@ -524,10 +543,11 @@ examples:
path:
tenant_id: "<id>"
destination_id: "<id>"
query: {}
query:
limit: 100
responses:
"200":
application/json: [{"id": "evt_123", "destination_id": "des_456", "topic": "user.created", "time": "2024-01-01T00:00:00Z", "successful_at": "2024-01-01T00:00:05Z", "metadata": {"source": "crm"}, "data": {"user_id": "userid", "status": "active"}}, {"id": "evt_789", "destination_id": "des_456", "topic": "order.shipped", "time": "2024-01-02T10:00:00Z", "successful_at": null, "metadata": {"source": "oms"}, "data": {"order_id": "orderid", "tracking": "1Z..."}}]
application/json: {"count": 2, "data": [{"id": "evt_123", "destination_id": "des_456", "topic": "user.created", "time": "2024-01-01T00:00:00Z", "successful_at": "2024-01-01T00:00:05Z", "metadata": {"source": "crm"}, "data": {"user_id": "userid", "status": "active"}}, {"id": "evt_789", "destination_id": "des_456", "topic": "order.shipped", "time": "2024-01-02T10:00:00Z", "successful_at": null, "metadata": {"source": "oms"}, "data": {"order_id": "orderid", "tracking": "1Z..."}}], "next": "", "prev": ""}
getTenantEventByDestination:
EventExample:
parameters:
Expand Down
6 changes: 5 additions & 1 deletion sdks/outpost-python/.speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@ generation:
generateNewTests: false
skipResponseBodyAssertions: false
python:
version: 0.3.0
version: 0.4.0
additionalDependencies:
dev: {}
main: {}
allowedRedefinedBuiltins:
- id
- object
authors:
- Speakeasy
baseErrorName: OutpostError
Expand All @@ -51,6 +54,7 @@ python:
methodArguments: infer-optional-args
moduleName: ""
outputModelSuffix: output
packageManager: poetry
packageName: outpost_sdk
pytestFilterWarnings: []
pytestTimeout: 0
Expand Down
42 changes: 40 additions & 2 deletions sdks/outpost-python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Outpost API: The Outpost API is a REST-based JSON API for managing tenants, dest
* [Authentication](#authentication)
* [Available Resources and Operations](#available-resources-and-operations)
* [Global Parameters](#global-parameters)
* [Pagination](#pagination)
* [Retries](#retries)
* [Error Handling](#error-handling)
* [Server Selection](#server-selection)
Expand All @@ -45,7 +46,15 @@ Outpost API: The Outpost API is a REST-based JSON API for managing tenants, dest
>
> Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.

The SDK can be installed with either *pip* or *poetry* package managers.
The SDK can be installed with *uv*, *pip*, or *poetry* package managers.

### uv

*uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.

```bash
uv add outpost_sdk
```

### PIP

Expand Down Expand Up @@ -125,7 +134,7 @@ with Outpost() as outpost:

</br>

The same SDK client can also be used to make asychronous requests by importing asyncio.
The same SDK client can also be used to make asynchronous requests by importing asyncio.
```python
# Asynchronous Example
import asyncio
Expand Down Expand Up @@ -269,6 +278,35 @@ with Outpost(
```
<!-- End Global Parameters [global-parameters] -->

<!-- Start Pagination [pagination] -->
## Pagination

Some of the endpoints in this SDK support pagination. To use pagination, you make your SDK calls as usual, but the
returned response object will have a `Next` method that can be called to pull down the next group of results. If the
return value of `Next` is `None`, then there are no more pages to be fetched.

Here's an example of one such pagination call:
```python
from outpost_sdk import Outpost, models


with Outpost(
tenant_id="<id>",
security=models.Security(
admin_api_key="<YOUR_BEARER_TOKEN_HERE>",
),
) as outpost:

res = outpost.events.list(limit=100)

while res is not None:
# Handle items

res = res.next()

```
<!-- End Pagination [pagination] -->

<!-- Start Retries [retries] -->
## Retries

Expand Down
2 changes: 1 addition & 1 deletion sdks/outpost-python/USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ with Outpost() as outpost:

</br>

The same SDK client can also be used to make asychronous requests by importing asyncio.
The same SDK client can also be used to make asynchronous requests by importing asyncio.
```python
# Asynchronous Example
import asyncio
Expand Down
Loading
Loading