Skip to content

Commit 3600a34

Browse files
authored
Merge pull request #626 from codatio/speakeasy-sdk-regen-1733826174
chore: 🐝 Update SDK - Generate Sync for Expenses library SYNC-FOR-EXPENSES-LIBRARY 7.0.1
2 parents 7e6e8d8 + b85f08a commit 3600a34

File tree

30 files changed

+332
-271
lines changed

30 files changed

+332
-271
lines changed

.speakeasy/workflow.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ sources:
7676
- "1.1"
7777
sync-for-expenses-source:
7878
sourceNamespace: sync-for-expenses-source
79-
sourceRevisionDigest: sha256:41e2e01d05c1e741182977bc257561fbf22e7d1e144dc86afa13000cc0d713d9
79+
sourceRevisionDigest: sha256:e60ac3b8ca5e89b501cd2ce3274beb969f3ef05c2624ed101bd505c237d8fe82
8080
sourceBlobDigest: sha256:abe56a70fc7e5c5883c7e8a6bef59d69ceb2dc4eddbb3106ae06b6c5acb38408
8181
tags:
8282
- latest
83-
- speakeasy-sdk-regen-1732638431
83+
- speakeasy-sdk-regen-1733826174
8484
- prealpha
8585
sync-for-payables-source:
8686
sourceNamespace: sync-for-payables-source
@@ -159,10 +159,10 @@ targets:
159159
sync-for-expenses-library:
160160
source: sync-for-expenses-source
161161
sourceNamespace: sync-for-expenses-source
162-
sourceRevisionDigest: sha256:41e2e01d05c1e741182977bc257561fbf22e7d1e144dc86afa13000cc0d713d9
162+
sourceRevisionDigest: sha256:e60ac3b8ca5e89b501cd2ce3274beb969f3ef05c2624ed101bd505c237d8fe82
163163
sourceBlobDigest: sha256:abe56a70fc7e5c5883c7e8a6bef59d69ceb2dc4eddbb3106ae06b6c5acb38408
164-
codeSamplesNamespace: sync-for-expenses-source-code-samples
165-
codeSamplesRevisionDigest: sha256:e6d7dcebdfe01aa1632ae52a84b8845df637387eab47239f688b8c827b10045b
164+
codeSamplesNamespace: sync-for-expenses-source-python-code-samples
165+
codeSamplesRevisionDigest: sha256:6e93c873ec2b973bec09d3aba9c80da9cb80998a324225092e6e1f3737411c96
166166
sync-for-payables-library:
167167
source: sync-for-payables-source
168168
sourceNamespace: sync-for-payables-source

sync-for-expenses/.speakeasy/gen.lock

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ id: a2c830ee-4f93-4e8e-8f01-48d0991317f5
33
management:
44
docChecksum: c99953b67f6a5e5522a0340e273decdb
55
docVersion: prealpha
6-
speakeasyVersion: 1.447.0
7-
generationVersion: 2.463.0
8-
releaseVersion: 7.0.0
9-
configChecksum: 6f483801042fce2cb5d58c6bbeaa9ed1
6+
speakeasyVersion: 1.453.8
7+
generationVersion: 2.474.15
8+
releaseVersion: 7.0.1
9+
configChecksum: 748c8b0d651d25e7b0b603920971a83e
1010
repoURL: https://github.com/codatio/client-sdk-python.git
1111
repoSubDirectory: sync-for-expenses
1212
installationURL: https://github.com/codatio/client-sdk-python.git#subdirectory=sync-for-expenses
@@ -15,7 +15,7 @@ features:
1515
python:
1616
additionalDependencies: 1.0.0
1717
constsAndDefaults: 1.0.5
18-
core: 5.6.8
18+
core: 5.6.11
1919
decimal: 1.0.0
2020
defaultEnabledRetries: 0.2.0
2121
deprecations: 3.0.0
@@ -1381,7 +1381,7 @@ examples:
13811381
path:
13821382
companyId: "8a210b68-6988-11ed-a1eb-0242ac120002"
13831383
connectionId: "2e9d2c44-f675-40ba-8049-353bfcb5e171"
1384-
customerId: "7110701885"
1384+
customerId: "EILBDVJVNUAGVKRQ"
13851385
query: {}
13861386
requestBody:
13871387
application/json: {"contacts": [{"modifiedDate": "2022-10-23T00:00:00Z", "phone": [{"number": "01224 658 999", "type": "Fax"}], "status": "Active"}, {"modifiedDate": "2022-10-23T00:00:00Z", "phone": [], "status": "Archived"}, {"modifiedDate": "2022-10-23T00:00:00Z", "phone": [{"number": "+44 25691 154789", "type": "Primary"}], "status": "Archived"}], "defaultCurrency": "EUR", "modifiedDate": "2022-10-23T00:00:00Z", "sourceModifiedDate": "2022-10-23T00:00:00Z", "status": "Archived"}
@@ -2267,4 +2267,36 @@ examples:
22672267
responses:
22682268
"400":
22692269
application/json: {"canBeRetried": "Unknown", "correlationId": "bc997528a9d7abb9161ef45f05d38599", "detailedErrorCode": 0, "error": "Error processing request - not valid.", "service": "PublicApi", "statusCode": 400}
2270+
Client rate limit reached:
2271+
speakeasy-default-client-rate-limit-reached:
2272+
requestBody:
2273+
application/json: {"AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", "ClientName": "Bank of Dave", "Data": {"DailyQuota": 1000, "ExpiresUtc": "2022-10-23T00:00:00Z"}, "Message": "The current daily rate limit quota of 1000 requests for bae71d36-ff47-420a-b4a6-f8c9ddf41140 has been reached.", "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "RuleType": "Rate Limit Reached"}
2274+
Client rate limit reset:
2275+
speakeasy-default-client-rate-limit-reset:
2276+
requestBody:
2277+
application/json: {"AlertId": "a9367074-b5c3-42c4-9be4-be129f43577e", "ClientId": "bae71d36-ff47-420a-b4a6-f8c9ddf41140", "ClientName": "Bank of Dave", "Data": {"DailyQuota": 1000, "ExpiresUtc": "2022-10-23T00:00:00Z", "QuotaRemaining": 1000, "ResetReason": "The quota was reset because it is a new day."}, "Message": "The current daily rate limit quota for client 30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e has been reset to 1000 requests.", "RuleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "RuleType": "Rate Limit Reset"}
2278+
SyncCompleted:
2279+
speakeasy-default-sync-completed:
2280+
requestBody:
2281+
application/json: {"AlertId": "33a4f8e9-09ae-4334-9b00-7bbe83024672", "ClientId": "30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e", "ClientName": "Expense Sync", "CompanyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "Data": {"syncId": "a9367074-b5c3-42c4-9be4-be129f43577e", "syncType": "Expense"}, "Message": "Sync 321363b4-efa9-4fbc-b71c-0b58d62f3248 for company 1f9559e7-8368-48c9-bdf4-f158e16b8b85 of type Expense completed successfully.", "RuleId": "5c27631d-3b63-4b50-8228-ee502fd113eb", "RuleType": "Sync Completed"}
2282+
SyncFailed:
2283+
speakeasy-default-sync-failed:
2284+
requestBody:
2285+
application/json: {"AlertId": "72c1103b-7f17-4a3a-8db5-67c2d360a516", "ClientId": "30e0f9d2-52c0-4c9f-a806-bcd98a3bcd7e", "ClientName": "Expense Sync", "CompanyId": "8a210b68-6988-11ed-a1eb-0242ac120002", "Data": {"FailureStage": "Pushing", "syncId": "a9367074-b5c3-42c4-9be4-be129f43577e", "syncType": "Expense"}, "Message": "Sync 3bead2a1-1b3d-4d90-8077-cddc5ca68b01 for company 1f9559e7-8368-48c9-bdf4-f158e16b8b85 of type Expense has failed at step Pushing.", "RuleId": "289c80dc-2aee-4b71-afff-9acd8d051080", "RuleType": "Sync Failed"}
2286+
client.rateLimit.reached:
2287+
Reached:
2288+
requestBody:
2289+
application/json: {"eventType": "client.rateLimit.reached", "generatedDate": "2024-09-01T00:00:00Z", "id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b", "payload": {"dailyQuota": 12000, "expiryDate": "2024-09-01T12:14:14Z", "quotaRemaining": 0}}
2290+
client.rateLimit.reset:
2291+
Reset:
2292+
requestBody:
2293+
application/json: {"eventType": "client.rateLimit.reset", "generatedDate": "2024-09-01T00:00:00Z", "id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b", "payload": {"dailyQuota": 12000, "expiryDate": "2024-09-01T23:59:99Z", "quotaRemaining": 11993}}
2294+
expenses.sync.successful:
2295+
Successful:
2296+
requestBody:
2297+
application/json: {"eventType": "expenses.sync.successful", "generatedDate": "2024-09-01T00:00:00Z", "id": "ba29118f-5406-4e59-b05c-ba307ca38d01", "payload": {"referenceCompany": {"description": "Syncing expenses", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "name": "Toft stores"}, "syncId": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "transactions": [{"errorMessage": null, "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "status": "Completed"}, {"errorMessage": null, "id": "e7f8a3d5-0c3c-4c9b-b5d3-56b4a43b62e4", "status": "Completed"}]}}
2298+
expenses.sync.unsuccessful:
2299+
Unsuccessful:
2300+
requestBody:
2301+
application/json: {"eventType": "expenses.sync.unsuccessful", "generatedDate": "2024-09-01T00:00:00Z", "id": "ba29118f-5406-4e59-b05c-ba307ca38d01", "payload": {"referenceCompany": {"description": "Syncing expenses", "id": "0498e921-9b53-4396-a412-4f2f5983b0a2", "name": "Toft stores"}, "syncId": "ee2eb431-c0fa-4dc9-93fa-d29781c12bcd", "transactions": [{"errorMessage": null, "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "status": "Completed"}, {"errorMessage": "Insufficient funds", "id": "e7f8a3d5-0c3c-4c9b-b5d3-56b4a43b62e4", "status": "Failed"}]}}
22702302
generatedTests: {}

sync-for-expenses/.speakeasy/gen.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ generation:
1212
oAuth2PasswordEnabled: false
1313
telemetryEnabled: true
1414
python:
15-
version: 7.0.0
15+
version: 7.0.1
1616
additionalDependencies:
1717
dev: {}
1818
main: {}

sync-for-expenses/README.md

Lines changed: 52 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,23 @@ Not seeing the endpoints you're expecting? We've [reorganized our products](http
4242

4343
<!-- Start Table of Contents [toc] -->
4444
## Table of Contents
45+
<!-- $toc-max-depth=2 -->
46+
* [Sync for Expenses](#sync-for-expenses)
47+
* [Endpoints](#endpoints)
48+
* [SDK Installation](#sdk-installation)
49+
* [Example Usage](#example-usage)
50+
* [IDE Support](#ide-support)
51+
* [SDK Example Usage](#sdk-example-usage)
52+
* [Available Resources and Operations](#available-resources-and-operations)
53+
* [File uploads](#file-uploads)
54+
* [Retries](#retries)
55+
* [Error Handling](#error-handling)
56+
* [Server Selection](#server-selection)
57+
* [Custom HTTP Client](#custom-http-client)
58+
* [Authentication](#authentication)
59+
* [Debugging](#debugging)
60+
* [Support](#support)
4561

46-
* [SDK Installation](#sdk-installation)
47-
* [IDE Support](#ide-support)
48-
* [SDK Example Usage](#sdk-example-usage)
49-
* [Available Resources and Operations](#available-resources-and-operations)
50-
* [File uploads](#file-uploads)
51-
* [Retries](#retries)
52-
* [Error Handling](#error-handling)
53-
* [Server Selection](#server-selection)
54-
* [Custom HTTP Client](#custom-http-client)
55-
* [Authentication](#authentication)
56-
* [Debugging](#debugging)
5762
<!-- End Table of Contents [toc] -->
5863

5964
<!-- Start SDK Installation [installation] -->
@@ -97,20 +102,20 @@ Generally, the SDK will work well with most IDEs out of the box. However, when u
97102
```python
98103
# Synchronous Example
99104
from codat_sync_for_expenses import CodatSyncExpenses
100-
from codat_sync_for_expenses.models import shared
101105

102-
with CodatSyncExpenses(
103-
security=shared.Security(
104-
auth_header="Basic BASE_64_ENCODED(API_KEY)",
105-
),
106-
) as s:
107-
res = s.companies.create(request={
108-
"name": "Technicalium",
106+
with CodatSyncExpenses() as codat_sync_expenses:
107+
codat_sync_expenses.client_rate_limit_reached(request={
108+
"event_type": "client.rateLimit.reached",
109+
"generated_date": "2024-09-01T00:00:00Z",
110+
"id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b",
111+
"payload": {
112+
"daily_quota": 12000,
113+
"expiry_date": "2024-09-01T12:14:14Z",
114+
"quota_remaining": 0,
115+
},
109116
})
110117

111-
if res is not None:
112-
# handle response
113-
pass
118+
# Use the SDK ...
114119
```
115120

116121
</br>
@@ -120,21 +125,21 @@ The same SDK client can also be used to make asychronous requests by importing a
120125
# Asynchronous Example
121126
import asyncio
122127
from codat_sync_for_expenses import CodatSyncExpenses
123-
from codat_sync_for_expenses.models import shared
124128

125129
async def main():
126-
async with CodatSyncExpenses(
127-
security=shared.Security(
128-
auth_header="Basic BASE_64_ENCODED(API_KEY)",
129-
),
130-
) as s:
131-
res = await s.companies.create_async(request={
132-
"name": "Technicalium",
130+
async with CodatSyncExpenses() as codat_sync_expenses:
131+
await codat_sync_expenses.client_rate_limit_reached_async(request={
132+
"event_type": "client.rateLimit.reached",
133+
"generated_date": "2024-09-01T00:00:00Z",
134+
"id": "743ec94a-8aa4-44bb-8bd4-e1855ee0e74b",
135+
"payload": {
136+
"daily_quota": 12000,
137+
"expiry_date": "2024-09-01T12:14:14Z",
138+
"quota_remaining": 0,
139+
},
133140
})
134141

135-
if res is not None:
136-
# handle response
137-
pass
142+
# Use the SDK ...
138143

139144
asyncio.run(main())
140145
```
@@ -271,8 +276,8 @@ with CodatSyncExpenses(
271276
security=shared.Security(
272277
auth_header="Basic BASE_64_ENCODED(API_KEY)",
273278
),
274-
) as s:
275-
res = s.attachments.upload(request={
279+
) as codat_sync_expenses:
280+
res = codat_sync_expenses.attachments.upload(request={
276281
"company_id": "8a210b68-6988-11ed-a1eb-0242ac120002",
277282
"sync_id": "6fb40d5e-b13e-11ed-afa1-0242ac120002",
278283
"transaction_id": "336694d8-2dca-4cb5-a28d-3ccb83e55eee",
@@ -294,14 +299,14 @@ To change the default retry strategy for a single API call, simply provide a `Re
294299
```python
295300
from codat_sync_for_expenses import CodatSyncExpenses
296301
from codat_sync_for_expenses.models import shared
297-
from codatsyncexpenses.utils import BackoffStrategy, RetryConfig
302+
from codat_sync_for_expenses.utils import BackoffStrategy, RetryConfig
298303

299304
with CodatSyncExpenses(
300305
security=shared.Security(
301306
auth_header="Basic BASE_64_ENCODED(API_KEY)",
302307
),
303-
) as s:
304-
res = s.companies.create(request={
308+
) as codat_sync_expenses:
309+
res = codat_sync_expenses.companies.create(request={
305310
"name": "Technicalium",
306311
},
307312
RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
@@ -316,15 +321,15 @@ If you'd like to override the default retry strategy for all operations that sup
316321
```python
317322
from codat_sync_for_expenses import CodatSyncExpenses
318323
from codat_sync_for_expenses.models import shared
319-
from codatsyncexpenses.utils import BackoffStrategy, RetryConfig
324+
from codat_sync_for_expenses.utils import BackoffStrategy, RetryConfig
320325

321326
with CodatSyncExpenses(
322327
retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
323328
security=shared.Security(
324329
auth_header="Basic BASE_64_ENCODED(API_KEY)",
325330
),
326-
) as s:
327-
res = s.companies.create(request={
331+
) as codat_sync_expenses:
332+
res = codat_sync_expenses.companies.create(request={
328333
"name": "Technicalium",
329334
})
330335

@@ -366,10 +371,10 @@ with CodatSyncExpenses(
366371
security=shared.Security(
367372
auth_header="Basic BASE_64_ENCODED(API_KEY)",
368373
),
369-
) as s:
374+
) as codat_sync_expenses:
370375
res = None
371376
try:
372-
res = s.companies.create(request={
377+
res = codat_sync_expenses.companies.create(request={
373378
"name": "Technicalium",
374379
})
375380

@@ -401,8 +406,8 @@ with CodatSyncExpenses(
401406
security=shared.Security(
402407
auth_header="Basic BASE_64_ENCODED(API_KEY)",
403408
),
404-
) as s:
405-
res = s.companies.create(request={
409+
) as codat_sync_expenses:
410+
res = codat_sync_expenses.companies.create(request={
406411
"name": "Technicalium",
407412
})
408413

@@ -514,8 +519,8 @@ with CodatSyncExpenses(
514519
security=shared.Security(
515520
auth_header="Basic BASE_64_ENCODED(API_KEY)",
516521
),
517-
) as s:
518-
res = s.companies.create(request={
522+
) as codat_sync_expenses:
523+
res = codat_sync_expenses.companies.create(request={
519524
"name": "Technicalium",
520525
})
521526

sync-for-expenses/RELEASES.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -736,4 +736,14 @@ Based on:
736736
### Generated
737737
- [python v7.0.0] sync-for-expenses
738738
### Releases
739-
- [PyPI v7.0.0] https://pypi.org/project/codat-sync-for-expenses/7.0.0 - sync-for-expenses
739+
- [PyPI v7.0.0] https://pypi.org/project/codat-sync-for-expenses/7.0.0 - sync-for-expenses
740+
741+
## 2024-12-10 10:22:45
742+
### Changes
743+
Based on:
744+
- OpenAPI Doc
745+
- Speakeasy CLI 1.453.8 (2.474.15) https://github.com/speakeasy-api/speakeasy
746+
### Generated
747+
- [python v7.0.1] sync-for-expenses
748+
### Releases
749+
- [PyPI v7.0.1] https://pypi.org/project/codat-sync-for-expenses/7.0.1 - sync-for-expenses

sync-for-expenses/USAGE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ with CodatSyncExpenses(
88
security=shared.Security(
99
auth_header="Basic BASE_64_ENCODED(API_KEY)",
1010
),
11-
) as s:
12-
res = s.companies.create(request={
11+
) as codat_sync_expenses:
12+
res = codat_sync_expenses.companies.create(request={
1313
"name": "Technicalium",
1414
})
1515

@@ -32,8 +32,8 @@ async def main():
3232
security=shared.Security(
3333
auth_header="Basic BASE_64_ENCODED(API_KEY)",
3434
),
35-
) as s:
36-
res = await s.companies.create_async(request={
35+
) as codat_sync_expenses:
36+
res = await codat_sync_expenses.companies.create_async(request={
3737
"name": "Technicalium",
3838
})
3939

sync-for-expenses/docs/sdks/accounts/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ with CodatSyncExpenses(
3131
security=shared.Security(
3232
auth_header="Basic BASE_64_ENCODED(API_KEY)",
3333
),
34-
) as s:
35-
res = s.accounts.create(request={
34+
) as codat_sync_expenses:
35+
res = codat_sync_expenses.accounts.create(request={
3636
"company_id": "8a210b68-6988-11ed-a1eb-0242ac120002",
3737
"connection_id": "2e9d2c44-f675-40ba-8049-353bfcb5e171",
3838
"account_prototype": {
@@ -92,8 +92,8 @@ with CodatSyncExpenses(
9292
security=shared.Security(
9393
auth_header="Basic BASE_64_ENCODED(API_KEY)",
9494
),
95-
) as s:
96-
res = s.accounts.get_create_model(request={
95+
) as codat_sync_expenses:
96+
res = codat_sync_expenses.accounts.get_create_model(request={
9797
"company_id": "8a210b68-6988-11ed-a1eb-0242ac120002",
9898
"connection_id": "2e9d2c44-f675-40ba-8049-353bfcb5e171",
9999
})

sync-for-expenses/docs/sdks/adjustments/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ with CodatSyncExpenses(
3232
security=shared.Security(
3333
auth_header="Basic BASE_64_ENCODED(API_KEY)",
3434
),
35-
) as s:
36-
res = s.adjustments.create(request={
35+
) as codat_sync_expenses:
36+
res = codat_sync_expenses.adjustments.create(request={
3737
"company_id": "8a210b68-6988-11ed-a1eb-0242ac120002",
3838
"request_body": [
3939
{

sync-for-expenses/docs/sdks/attachments/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ with CodatSyncExpenses(
3838
security=shared.Security(
3939
auth_header="Basic BASE_64_ENCODED(API_KEY)",
4040
),
41-
) as s:
42-
res = s.attachments.upload(request={
41+
) as codat_sync_expenses:
42+
res = codat_sync_expenses.attachments.upload(request={
4343
"company_id": "8a210b68-6988-11ed-a1eb-0242ac120002",
4444
"sync_id": "6fb40d5e-b13e-11ed-afa1-0242ac120002",
4545
"transaction_id": "336694d8-2dca-4cb5-a28d-3ccb83e55eee",

sync-for-expenses/docs/sdks/bankaccounts/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ with CodatSyncExpenses(
3030
security=shared.Security(
3131
auth_header="Basic BASE_64_ENCODED(API_KEY)",
3232
),
33-
) as s:
34-
res = s.bank_accounts.create(request={
33+
) as codat_sync_expenses:
34+
res = codat_sync_expenses.bank_accounts.create(request={
3535
"company_id": "8a210b68-6988-11ed-a1eb-0242ac120002",
3636
"connection_id": "2e9d2c44-f675-40ba-8049-353bfcb5e171",
3737
"bank_account": {
@@ -88,8 +88,8 @@ with CodatSyncExpenses(
8888
security=shared.Security(
8989
auth_header="Basic BASE_64_ENCODED(API_KEY)",
9090
),
91-
) as s:
92-
res = s.bank_accounts.get_create_model(request={
91+
) as codat_sync_expenses:
92+
res = codat_sync_expenses.bank_accounts.get_create_model(request={
9393
"company_id": "8a210b68-6988-11ed-a1eb-0242ac120002",
9494
"connection_id": "2e9d2c44-f675-40ba-8049-353bfcb5e171",
9595
})

0 commit comments

Comments
 (0)