Skip to content
This repository was archived by the owner on Jun 10, 2025. It is now read-only.

Commit 1b107a4

Browse files
committed
initial commit
1 parent febf398 commit 1b107a4

File tree

2,318 files changed

+77263
-147885
lines changed

Some content is hidden

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

2,318 files changed

+77263
-147885
lines changed

.speakeasy/workflow.lock

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
speakeasyVersion: 1.396.2
1+
speakeasyVersion: 1.523.2
22
sources:
33
accounting:
4-
sourceNamespace: accounting
5-
sourceRevisionDigest: sha256:430a64de9ff4076a9a5a65bc6528cf4105eb847dc12d69ea0214f4959846771d
6-
sourceBlobDigest: sha256:5f1cc761dc56e7ca4021510061eebb912db4ba7736e61c5a9ccd633a416c2611
4+
sourceNamespace: apideck-accounting-only-oas
5+
sourceRevisionDigest: sha256:790921df4b4c07660c58472aa72241461226c87b4aa48bdc0221acb599155c4e
6+
sourceBlobDigest: sha256:fb628addea53bafff1ec0b2cc6c97b98982fcb845d6957859a3b1614bbf7fcae
77
tags:
88
- latest
9-
- main
9+
- 10.13.0
1010
lending:
1111
sourceNamespace: lending
1212
sourceRevisionDigest: sha256:178885971cf1c04155e742359cad4b10d0eba3a8d7de8e7a64d2e33a0678995d
@@ -15,38 +15,45 @@ sources:
1515
- latest
1616
- main
1717
targets:
18+
accounting-py:
19+
source: accounting
20+
sourceNamespace: apideck-accounting-only-oas
21+
sourceRevisionDigest: sha256:790921df4b4c07660c58472aa72241461226c87b4aa48bdc0221acb599155c4e
22+
sourceBlobDigest: sha256:fb628addea53bafff1ec0b2cc6c97b98982fcb845d6957859a3b1614bbf7fcae
23+
codeSamplesNamespace: apideck-accounting-only-oas-python-code-samples
24+
codeSamplesRevisionDigest: sha256:31107f89c8ef3dede5152d335480f4ef53d7d72cdea52ae03984a2268946a692
1825
accounting-ts:
1926
source: accounting
2027
sourceNamespace: accounting
2128
sourceRevisionDigest: sha256:430a64de9ff4076a9a5a65bc6528cf4105eb847dc12d69ea0214f4959846771d
2229
sourceBlobDigest: sha256:5f1cc761dc56e7ca4021510061eebb912db4ba7736e61c5a9ccd633a416c2611
23-
outLocation: ./accounting
2430
lending-ts:
2531
source: lending
2632
sourceNamespace: lending
2733
sourceRevisionDigest: sha256:178885971cf1c04155e742359cad4b10d0eba3a8d7de8e7a64d2e33a0678995d
2834
sourceBlobDigest: sha256:fa9d95b78d45713a72c0e0606cd94aab70c76d28d8edb2c33545d078dc15d36b
29-
outLocation: ./lending
3035
workflow:
3136
workflowVersion: 1.0.0
3237
speakeasyVersion: latest
3338
sources:
3439
accounting:
3540
inputs:
36-
- location: accounting.yaml
37-
registry:
38-
location: registry.speakeasyapi.dev/sagar-demo/sagar-demo/accounting
39-
lending:
40-
inputs:
41-
- location: lending.yaml
41+
- location: speakeasy-spec.yml
42+
overlays:
43+
- location: ./overlays/accounting-vault-overlay.yml
44+
transformations:
45+
- removeUnused: true
46+
- cleanup: true
4247
registry:
43-
location: registry.speakeasyapi.dev/sagar-demo/sagar-demo/lending
48+
location: registry.speakeasyapi.dev/apideck-k2o/apideck/apideck-accounting-only-oas
4449
targets:
45-
accounting-ts:
46-
target: typescript
50+
accounting-py:
51+
target: python
4752
source: accounting
4853
output: ./accounting
49-
lending-ts:
50-
target: typescript
51-
source: lending
52-
output: ./lending
54+
codeSamples:
55+
registry:
56+
location: registry.speakeasyapi.dev/apideck-k2o/apideck/apideck-accounting-only-oas-python-code-samples
57+
labelOverride:
58+
fixedValue: Python (SDK)
59+
blocking: false

.speakeasy/workflow.yaml

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@ speakeasyVersion: latest
33
sources:
44
accounting:
55
inputs:
6-
- location: accounting.yaml
6+
- location: https://ci-spec-unify.s3.eu-central-1.amazonaws.com/speakeasy-spec.yml
7+
overlays:
8+
- location: ./overlays/accounting-vault-overlay.yml
9+
transformations:
10+
- removeUnused: true
11+
- cleanup: true
712
registry:
8-
location: registry.speakeasyapi.dev/sagar-demo/sagar-demo/accounting
9-
lending:
10-
inputs:
11-
- location: lending.yaml
12-
registry:
13-
location: registry.speakeasyapi.dev/sagar-demo/sagar-demo/lending
13+
location: registry.speakeasyapi.dev/apideck-k2o/apideck/apideck-accounting-only-oas
1414
targets:
15-
accounting-ts:
16-
target: typescript
15+
accounting-py:
16+
target: python
1717
source: accounting
1818
output: ./accounting
19-
lending-ts:
20-
target: typescript
21-
source: lending
22-
output: ./lending
19+
codeSamples:
20+
registry:
21+
location: registry.speakeasyapi.dev/apideck-k2o/apideck/apideck-accounting-only-oas-python-code-samples
22+
labelOverride:
23+
fixedValue: Python (SDK)
24+
blocking: false

README.md

Lines changed: 36 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,53 @@
1-
# Template SDK Monorepo
1+
# Python SDK Pack
22

3-
<div align="left">
4-
<a href="https://speakeasyapi.dev/"><img src="https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" /></a>
5-
</div>
3+
This repository contains optimized Python SDKs for Apideck's Unify APIs, designed for specific use cases where you need a lightweight and focused implementation.
64

7-
## How to use this repository
5+
## When to Use This SDK Pack
86

9-
> :warning: This is an advanced setup process. For most cases we reccomend using the single sdk per github repository approach. Please see this [repo](https://github.com/speakeasy-sdks/template-sdk) for the corresponding template.
7+
This SDK pack is particularly useful in the following scenarios:
108

11-
**👀** This template repository is designed to bootstrap a monorepo of SDKs following this [guide](https://github.com/speakeasy-sdks/template-sdk-monorepo?tab=readme-ov-file) and using Github's repository clone feature. Once this repository is setup it will automatically keep your SDKs up to date and published to a package manager.
9+
1. **Limited Environments**
10+
- When working with environments that have cold start constraints (e.g., AWS Lambda)
11+
- When you need to minimize package size and dependencies
12+
- When startup time is critical for your application
1213

13-
## What is a SDK monorepo ?
14+
2. **Single API Focus**
15+
- When you only need to interact with a specific Unify API (e.g., only Accounting or only CRM)
16+
- When you want to keep your dependencies minimal by including only the API components you need
1417

15-
A SDK monorepo is a single github repository that houses multiple SDKs. Each SDK corresponds to a single OpenAPI specification. This is a style of SDK popularised by AWS that enables discovery of all available SDKs in one repo but requires download of individual SDKs corresponding to API/business groups.
18+
## Getting Started
1619

17-
Each SDK is housed in its own subfolders and have independent github workflows that manage re-generation and release of code. In this example we have two SDKs: Accounting and Lending that can be found in their own sub folders. The general structure is as follows:
20+
1. Choose the Unify API you want to use:
21+
- [Accounting](./accounting/README.md)
22+
- [ATS](./ats/README.md)
23+
- [CRM](./crm/README.md)
24+
- [Vault](./vault/README.md)
25+
- etc.
1826

19-
```yaml
20-
.github/workflows/ #This is standards github notation for storing workflow files on Github
21-
- sdk_generation.yaml # This controls execution of the speakeasy generation workflow file. Automatically created by speakeasy
22-
.speakeasy/workflows
23-
- workflow.yaml # This is the speakeasy workflow file that indicates what sources to use and targets to generate
24-
accounting # This folder houses the accounting SDK
25-
- gen.yaml # Generation config for the accounting SDK
26-
lending # This folder houses the lending SDK
27-
- gen.yaml # Generation config for the lending SDK
28-
```
29-
30-
This structure can be extrapoloated to N number of SDKs.
31-
32-
### Creating a Monorepo of SDKs
27+
2. Navigate to the corresponding directory and follow the specific README instructions.
3328

34-
To create this repo for yourself you can either clone and fork the repository or follow the interactive commands with `speakeasy quickstart`, `speakeasy configure sources` and `speaekasy configure targets` to achieve a similar outcome.
35-
36-
Once you have the repo setup you run `speakeasy run` to (re)generate the SDK:
29+
For example, if you want to use the Accounting API:
30+
```bash
31+
cd accounting
32+
# Follow the instructions in accounting/README.md
33+
```
3734

38-
![CleanShot 2024-04-01 at 09 34 13@2x](https://github.com/speakeasy-sdks/template-sdk-monorepo/assets/68016351/a1c59329-77f7-4fbd-b928-f2ab89d6b37a)
35+
## Benefits
3936

40-
🚀 You should have a working SDK for your API 🙂 . To check out all the features of the SDK please see our docs [site](https://speakeasyapi.dev/docs/create-client-sdks/).
37+
- 🚀 Faster cold starts in serverless environments
38+
- 📦 Smaller package sizes
4139

42-
### Local development
40+
## Documentation
4341

44-
Once you have the SDK setup you may want to iterate on the SDK. Speakeasy supports OpenAPI vendor extensions that can be added to your spec to customize the SDK ergonomics (method names, namespacing resources etc.) and functionality (adding retries, pagination, multiple server support etc)
42+
Each API module has its own documentation in its respective directory. For detailed implementation guides and API references, please refer to the README in each API's directory.
4543

46-
To get started install the Speakeasy CLI.
44+
For example:
45+
- Accounting API documentation: [accounting/README.md](./accounting/README.md)
4746

48-
In your terminal, run:
47+
## Support
4948

50-
```bash
51-
brew install speakeasy-api/homebrew-tap/speakeasy
52-
```
53-
Once you annonate your spec with an extension you will want to run `speakeasy validate` to check the spec for correctness and `speakeasy generate` to recreate the SDK locally. More documentation on OpenAPI extensions [here](https://speakeasyapi.dev/docs/customize-sdks/namespaces/). Here's an example of adding a multiple server support to the spec so that your SDK supports production and sandbox versions of your API.
54-
55-
```yaml
56-
info:
57-
title: Example
58-
version: 0.0.1
59-
servers:
60-
- url: https://prod.example.com # Used as the default URL by the SDK
61-
description: Our production environment
62-
x-speakeasy-server-id: prod
63-
- url: https://sandbox.example.com
64-
description: Our sandbox environment
65-
x-speakeasy-server-id: sandbox
66-
```
49+
For any questions or issues:
50+
- Visit [Apideck Documentation](https://developers.apideck.com)
51+
- Join our [Discord Community](https://developers.apideck.com/discord)
52+
- Contact [Apideck Support](https://www.apideck.com/support)
6753

68-
Once you're finished iterating and happy with the output push only the latest version of spec into the repo and regenerate the SDK using `speakeasy run`.

0 commit comments

Comments
 (0)