@agentuity/core 1.0.41 → 1.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/api-reference.d.ts +68 -0
- package/dist/services/api-reference.d.ts.map +1 -0
- package/dist/services/api-reference.js +91 -0
- package/dist/services/api-reference.js.map +1 -0
- package/dist/services/apikey/api-reference.d.ts +4 -0
- package/dist/services/apikey/api-reference.d.ts.map +1 -0
- package/dist/services/apikey/api-reference.js +96 -0
- package/dist/services/apikey/api-reference.js.map +1 -0
- package/dist/services/db/api-reference.d.ts +4 -0
- package/dist/services/db/api-reference.d.ts.map +1 -0
- package/dist/services/db/api-reference.js +149 -0
- package/dist/services/db/api-reference.js.map +1 -0
- package/dist/services/db/types.d.ts +7 -0
- package/dist/services/db/types.d.ts.map +1 -0
- package/dist/services/db/types.js +9 -0
- package/dist/services/db/types.js.map +1 -0
- package/dist/services/email/api-reference.d.ts +4 -0
- package/dist/services/email/api-reference.d.ts.map +1 -0
- package/dist/services/email/api-reference.js +342 -0
- package/dist/services/email/api-reference.js.map +1 -0
- package/dist/services/email/service.d.ts.map +1 -1
- package/dist/services/email/service.js +1 -2
- package/dist/services/email/service.js.map +1 -1
- package/dist/services/email/types.d.ts +13 -0
- package/dist/services/email/types.d.ts.map +1 -0
- package/dist/services/email/types.js +11 -0
- package/dist/services/email/types.js.map +1 -0
- package/dist/services/eval/api-reference.d.ts +4 -0
- package/dist/services/eval/api-reference.d.ts.map +1 -0
- package/dist/services/eval/api-reference.js +121 -0
- package/dist/services/eval/api-reference.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/keyvalue/api-reference.d.ts +4 -0
- package/dist/services/keyvalue/api-reference.d.ts.map +1 -0
- package/dist/services/keyvalue/api-reference.js +270 -0
- package/dist/services/keyvalue/api-reference.js.map +1 -0
- package/dist/services/keyvalue/types.d.ts +18 -0
- package/dist/services/keyvalue/types.d.ts.map +1 -0
- package/dist/services/keyvalue/types.js +19 -0
- package/dist/services/keyvalue/types.js.map +1 -0
- package/dist/services/machine/api-reference.d.ts +4 -0
- package/dist/services/machine/api-reference.d.ts.map +1 -0
- package/dist/services/machine/api-reference.js +152 -0
- package/dist/services/machine/api-reference.js.map +1 -0
- package/dist/services/machine/types.d.ts +18 -0
- package/dist/services/machine/types.d.ts.map +1 -0
- package/dist/services/machine/types.js +15 -0
- package/dist/services/machine/types.js.map +1 -0
- package/dist/services/monitoring/index.d.ts +3 -0
- package/dist/services/monitoring/index.d.ts.map +1 -0
- package/dist/services/monitoring/index.js +3 -0
- package/dist/services/monitoring/index.js.map +1 -0
- package/dist/services/monitoring/service.d.ts +55 -0
- package/dist/services/monitoring/service.d.ts.map +1 -0
- package/dist/services/monitoring/service.js +503 -0
- package/dist/services/monitoring/service.js.map +1 -0
- package/dist/services/monitoring/types.d.ts +173 -0
- package/dist/services/monitoring/types.d.ts.map +1 -0
- package/dist/services/monitoring/types.js +2 -0
- package/dist/services/monitoring/types.js.map +1 -0
- package/dist/services/oauth/activity.d.ts +5 -0
- package/dist/services/oauth/activity.d.ts.map +1 -0
- package/dist/services/oauth/activity.js +17 -0
- package/dist/services/oauth/activity.js.map +1 -0
- package/dist/services/oauth/api-reference.d.ts +4 -0
- package/dist/services/oauth/api-reference.d.ts.map +1 -0
- package/dist/services/oauth/api-reference.js +344 -0
- package/dist/services/oauth/api-reference.js.map +1 -0
- package/dist/services/oauth/clients.d.ts +18 -0
- package/dist/services/oauth/clients.d.ts.map +1 -0
- package/dist/services/oauth/clients.js +66 -0
- package/dist/services/oauth/clients.js.map +1 -0
- package/dist/services/oauth/consent.d.ts +7 -0
- package/dist/services/oauth/consent.d.ts.map +1 -0
- package/dist/services/oauth/consent.js +17 -0
- package/dist/services/oauth/consent.js.map +1 -0
- package/dist/services/oauth/index.d.ts +9 -0
- package/dist/services/oauth/index.d.ts.map +1 -0
- package/dist/services/oauth/index.js +9 -0
- package/dist/services/oauth/index.js.map +1 -0
- package/dist/services/oauth/keys.d.ts +5 -0
- package/dist/services/oauth/keys.d.ts.map +1 -0
- package/dist/services/oauth/keys.js +10 -0
- package/dist/services/oauth/keys.js.map +1 -0
- package/dist/services/oauth/members.d.ts +4 -0
- package/dist/services/oauth/members.d.ts.map +1 -0
- package/dist/services/oauth/members.js +10 -0
- package/dist/services/oauth/members.js.map +1 -0
- package/dist/services/oauth/scopes.d.ts +4 -0
- package/dist/services/oauth/scopes.d.ts.map +1 -0
- package/dist/services/oauth/scopes.js +10 -0
- package/dist/services/oauth/scopes.js.map +1 -0
- package/dist/services/oauth/types.d.ts +587 -0
- package/dist/services/oauth/types.d.ts.map +1 -0
- package/dist/services/oauth/types.js +160 -0
- package/dist/services/oauth/types.js.map +1 -0
- package/dist/services/oauth/util.d.ts +23 -0
- package/dist/services/oauth/util.d.ts.map +1 -0
- package/dist/services/oauth/util.js +3 -0
- package/dist/services/oauth/util.js.map +1 -0
- package/dist/services/org/api-reference.d.ts +4 -0
- package/dist/services/org/api-reference.d.ts.map +1 -0
- package/dist/services/org/api-reference.js +145 -0
- package/dist/services/org/api-reference.js.map +1 -0
- package/dist/services/org/types.d.ts +8 -0
- package/dist/services/org/types.d.ts.map +1 -0
- package/dist/services/org/types.js +7 -0
- package/dist/services/org/types.js.map +1 -0
- package/dist/services/project/api-reference.d.ts +4 -0
- package/dist/services/project/api-reference.d.ts.map +1 -0
- package/dist/services/project/api-reference.js +618 -0
- package/dist/services/project/api-reference.js.map +1 -0
- package/dist/services/project/types.d.ts +29 -0
- package/dist/services/project/types.d.ts.map +1 -0
- package/dist/services/project/types.js +40 -0
- package/dist/services/project/types.js.map +1 -0
- package/dist/services/queue/api-reference.d.ts +4 -0
- package/dist/services/queue/api-reference.d.ts.map +1 -0
- package/dist/services/queue/api-reference.js +713 -0
- package/dist/services/queue/api-reference.js.map +1 -0
- package/dist/services/queue/types.d.ts +281 -0
- package/dist/services/queue/types.d.ts.map +1 -1
- package/dist/services/queue/types.js +81 -0
- package/dist/services/queue/types.js.map +1 -1
- package/dist/services/region/api-reference.d.ts +4 -0
- package/dist/services/region/api-reference.d.ts.map +1 -0
- package/dist/services/region/api-reference.js +98 -0
- package/dist/services/region/api-reference.js.map +1 -0
- package/dist/services/region/types.d.ts +18 -0
- package/dist/services/region/types.d.ts.map +1 -0
- package/dist/services/region/types.js +18 -0
- package/dist/services/region/types.js.map +1 -0
- package/dist/services/sandbox/api-reference.d.ts +4 -0
- package/dist/services/sandbox/api-reference.d.ts.map +1 -0
- package/dist/services/sandbox/api-reference.js +1006 -0
- package/dist/services/sandbox/api-reference.js.map +1 -0
- package/dist/services/sandbox/run.d.ts +1 -1
- package/dist/services/sandbox/types.d.ts +64 -1
- package/dist/services/sandbox/types.d.ts.map +1 -1
- package/dist/services/sandbox/types.js +87 -0
- package/dist/services/sandbox/types.js.map +1 -1
- package/dist/services/schedule/api-reference.d.ts +4 -0
- package/dist/services/schedule/api-reference.d.ts.map +1 -0
- package/dist/services/schedule/api-reference.js +216 -0
- package/dist/services/schedule/api-reference.js.map +1 -0
- package/dist/services/schedule/types.d.ts +36 -0
- package/dist/services/schedule/types.d.ts.map +1 -0
- package/dist/services/schedule/types.js +20 -0
- package/dist/services/schedule/types.js.map +1 -0
- package/dist/services/session/api-reference.d.ts +4 -0
- package/dist/services/session/api-reference.d.ts.map +1 -0
- package/dist/services/session/api-reference.js +154 -0
- package/dist/services/session/api-reference.js.map +1 -0
- package/dist/services/storage/api-reference.d.ts +4 -0
- package/dist/services/storage/api-reference.d.ts.map +1 -0
- package/dist/services/storage/api-reference.js +196 -0
- package/dist/services/storage/api-reference.js.map +1 -0
- package/dist/services/storage/types.d.ts.map +1 -1
- package/dist/services/storage/types.js +9 -3
- package/dist/services/storage/types.js.map +1 -1
- package/dist/services/stream/api-reference.d.ts +4 -0
- package/dist/services/stream/api-reference.d.ts.map +1 -0
- package/dist/services/stream/api-reference.js +153 -0
- package/dist/services/stream/api-reference.js.map +1 -0
- package/dist/services/stream/types.d.ts +49 -0
- package/dist/services/stream/types.d.ts.map +1 -0
- package/dist/services/stream/types.js +49 -0
- package/dist/services/stream/types.js.map +1 -0
- package/dist/services/task/api-reference.d.ts +4 -0
- package/dist/services/task/api-reference.d.ts.map +1 -0
- package/dist/services/task/api-reference.js +802 -0
- package/dist/services/task/api-reference.js.map +1 -0
- package/dist/services/task/service.d.ts.map +1 -1
- package/dist/services/task/service.js +35 -39
- package/dist/services/task/service.js.map +1 -1
- package/dist/services/task/types.d.ts +48 -0
- package/dist/services/task/types.d.ts.map +1 -0
- package/dist/services/task/types.js +55 -0
- package/dist/services/task/types.js.map +1 -0
- package/dist/services/thread/api-reference.d.ts +4 -0
- package/dist/services/thread/api-reference.d.ts.map +1 -0
- package/dist/services/thread/api-reference.js +89 -0
- package/dist/services/thread/api-reference.js.map +1 -0
- package/dist/services/user/api-reference.d.ts +4 -0
- package/dist/services/user/api-reference.d.ts.map +1 -0
- package/dist/services/user/api-reference.js +27 -0
- package/dist/services/user/api-reference.js.map +1 -0
- package/dist/services/vector/api-reference.d.ts +4 -0
- package/dist/services/vector/api-reference.d.ts.map +1 -0
- package/dist/services/vector/api-reference.js +213 -0
- package/dist/services/vector/api-reference.js.map +1 -0
- package/dist/services/vector/types.d.ts +63 -0
- package/dist/services/vector/types.d.ts.map +1 -0
- package/dist/services/vector/types.js +90 -0
- package/dist/services/vector/types.js.map +1 -0
- package/dist/services/webhook/api-reference.d.ts +4 -0
- package/dist/services/webhook/api-reference.d.ts.map +1 -0
- package/dist/services/webhook/api-reference.js +388 -0
- package/dist/services/webhook/api-reference.js.map +1 -0
- package/package.json +2 -2
- package/src/services/api-reference.ts +198 -0
- package/src/services/apikey/api-reference.ts +99 -0
- package/src/services/db/api-reference.ts +152 -0
- package/src/services/db/types.ts +12 -0
- package/src/services/email/api-reference.ts +349 -0
- package/src/services/email/service.ts +1 -6
- package/src/services/email/types.ts +15 -0
- package/src/services/eval/api-reference.ts +124 -0
- package/src/services/index.ts +2 -0
- package/src/services/keyvalue/api-reference.ts +280 -0
- package/src/services/keyvalue/types.ts +25 -0
- package/src/services/machine/api-reference.ts +158 -0
- package/src/services/machine/types.ts +21 -0
- package/src/services/monitoring/index.ts +2 -0
- package/src/services/monitoring/service.ts +639 -0
- package/src/services/monitoring/types.ts +209 -0
- package/src/services/oauth/activity.ts +41 -0
- package/src/services/oauth/api-reference.ts +380 -0
- package/src/services/oauth/clients.ts +161 -0
- package/src/services/oauth/consent.ts +33 -0
- package/src/services/oauth/index.ts +8 -0
- package/src/services/oauth/keys.ts +13 -0
- package/src/services/oauth/members.ts +13 -0
- package/src/services/oauth/scopes.ts +13 -0
- package/src/services/oauth/types.ts +240 -0
- package/src/services/oauth/util.ts +3 -0
- package/src/services/org/api-reference.ts +148 -0
- package/src/services/org/types.ts +9 -0
- package/src/services/project/api-reference.ts +636 -0
- package/src/services/project/types.ts +47 -0
- package/src/services/queue/api-reference.ts +734 -0
- package/src/services/queue/types.ts +112 -0
- package/src/services/region/api-reference.ts +105 -0
- package/src/services/region/types.ts +27 -0
- package/src/services/sandbox/api-reference.ts +1042 -0
- package/src/services/sandbox/types.ts +100 -0
- package/src/services/schedule/api-reference.ts +228 -0
- package/src/services/schedule/types.ts +26 -0
- package/src/services/session/api-reference.ts +160 -0
- package/src/services/storage/api-reference.ts +207 -0
- package/src/services/storage/types.ts +9 -3
- package/src/services/stream/api-reference.ts +163 -0
- package/src/services/stream/types.ts +64 -0
- package/src/services/task/api-reference.ts +830 -0
- package/src/services/task/service.ts +35 -93
- package/src/services/task/types.ts +73 -0
- package/src/services/thread/api-reference.ts +91 -0
- package/src/services/user/api-reference.ts +31 -0
- package/src/services/vector/api-reference.ts +231 -0
- package/src/services/vector/types.ts +112 -0
- package/src/services/webhook/api-reference.ts +403 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { Service } from '../api-reference.ts';
|
|
2
|
+
import { APIKeyCreateRequestSchema, APIKeyCreateResponseSchema } from './create.ts';
|
|
3
|
+
import { APIKeySchema } from './list.ts';
|
|
4
|
+
|
|
5
|
+
const service: Service = {
|
|
6
|
+
name: 'API Keys',
|
|
7
|
+
slug: 'api-keys',
|
|
8
|
+
description: 'Create and manage API keys for authentication',
|
|
9
|
+
endpoints: [
|
|
10
|
+
{
|
|
11
|
+
id: 'create-api-key',
|
|
12
|
+
title: 'Create API Key',
|
|
13
|
+
method: 'POST',
|
|
14
|
+
path: '/cli/apikey',
|
|
15
|
+
description: 'Create a new API key. The key value is only returned at creation time.',
|
|
16
|
+
pathParams: [],
|
|
17
|
+
queryParams: [],
|
|
18
|
+
requestBody: {
|
|
19
|
+
description: 'API key creation payload.',
|
|
20
|
+
fields: { schema: APIKeyCreateRequestSchema },
|
|
21
|
+
},
|
|
22
|
+
responseDescription:
|
|
23
|
+
'Returns the new key ID and value. The value is only returned at creation time.',
|
|
24
|
+
responseFields: { schema: APIKeyCreateResponseSchema },
|
|
25
|
+
statuses: [
|
|
26
|
+
{ code: 201, description: 'API key created' },
|
|
27
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
28
|
+
],
|
|
29
|
+
examplePath: '/cli/apikey',
|
|
30
|
+
exampleBody: { name: 'My API Key', expiresAt: '2026-12-31T23:59:59Z' },
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'list-api-keys',
|
|
34
|
+
title: 'List API Keys',
|
|
35
|
+
method: 'GET',
|
|
36
|
+
path: '/cli/apikey',
|
|
37
|
+
description: 'List API keys with optional filtering by organization or project.',
|
|
38
|
+
pathParams: [],
|
|
39
|
+
queryParams: [
|
|
40
|
+
{
|
|
41
|
+
name: 'orgId',
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Filter by organization ID',
|
|
44
|
+
required: false,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'projectId',
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Filter by project ID',
|
|
50
|
+
required: false,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
requestBody: null,
|
|
54
|
+
responseDescription: 'Array of API key objects.',
|
|
55
|
+
responseFields: { schema: APIKeySchema },
|
|
56
|
+
statuses: [
|
|
57
|
+
{ code: 200, description: 'API keys returned' },
|
|
58
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
59
|
+
],
|
|
60
|
+
examplePath: '/cli/apikey',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'get-api-key',
|
|
64
|
+
title: 'Get API Key',
|
|
65
|
+
method: 'GET',
|
|
66
|
+
path: '/cli/apikey/{id}',
|
|
67
|
+
description: 'Get a specific API key by ID.',
|
|
68
|
+
pathParams: [{ name: 'id', type: 'string', description: 'API key ID', required: true }],
|
|
69
|
+
queryParams: [],
|
|
70
|
+
requestBody: null,
|
|
71
|
+
responseDescription: 'API key object.',
|
|
72
|
+
statuses: [
|
|
73
|
+
{ code: 200, description: 'API key returned' },
|
|
74
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
75
|
+
{ code: 404, description: 'API key not found' },
|
|
76
|
+
],
|
|
77
|
+
examplePath: '/cli/apikey/ak_abc123',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'delete-api-key',
|
|
81
|
+
title: 'Delete API Key',
|
|
82
|
+
method: 'DELETE',
|
|
83
|
+
path: '/cli/apikey/{id}',
|
|
84
|
+
description: 'Delete an API key by ID.',
|
|
85
|
+
pathParams: [{ name: 'id', type: 'string', description: 'API key ID', required: true }],
|
|
86
|
+
queryParams: [],
|
|
87
|
+
requestBody: null,
|
|
88
|
+
responseDescription: 'Empty response on success.',
|
|
89
|
+
statuses: [
|
|
90
|
+
{ code: 204, description: 'API key deleted' },
|
|
91
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
92
|
+
{ code: 404, description: 'API key not found' },
|
|
93
|
+
],
|
|
94
|
+
examplePath: '/cli/apikey/ak_abc123',
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export default service;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { DbExecuteQueryRequestSchema } from './types.ts';
|
|
2
|
+
import type { Service } from '../api-reference.ts';
|
|
3
|
+
|
|
4
|
+
const service: Service = {
|
|
5
|
+
name: 'Databases',
|
|
6
|
+
slug: 'database',
|
|
7
|
+
description: 'Execute queries, inspect tables, and monitor database performance',
|
|
8
|
+
endpoints: [
|
|
9
|
+
{
|
|
10
|
+
id: 'get-query-logs',
|
|
11
|
+
title: 'Get Query Logs',
|
|
12
|
+
method: 'GET',
|
|
13
|
+
path: '/resource/{orgId}/{region}/{database}/logs',
|
|
14
|
+
description: 'Get query logs for a database with optional filtering.',
|
|
15
|
+
pathParams: [
|
|
16
|
+
{ name: 'orgId', type: 'string', description: 'Organization ID', required: true },
|
|
17
|
+
{ name: 'region', type: 'string', description: 'Region identifier', required: true },
|
|
18
|
+
{ name: 'database', type: 'string', description: 'Database name', required: true },
|
|
19
|
+
],
|
|
20
|
+
queryParams: [
|
|
21
|
+
{
|
|
22
|
+
name: 'startDate',
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'Start date filter',
|
|
25
|
+
required: false,
|
|
26
|
+
},
|
|
27
|
+
{ name: 'endDate', type: 'string', description: 'End date filter', required: false },
|
|
28
|
+
{
|
|
29
|
+
name: 'username',
|
|
30
|
+
type: 'string',
|
|
31
|
+
description: 'Filter by username',
|
|
32
|
+
required: false,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'command',
|
|
36
|
+
type: 'string',
|
|
37
|
+
description: 'Filter by SQL command type',
|
|
38
|
+
required: false,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'hasError',
|
|
42
|
+
type: 'boolean',
|
|
43
|
+
description: 'Filter for queries with errors',
|
|
44
|
+
required: false,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'sessionId',
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Filter by session ID',
|
|
50
|
+
required: false,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'limit',
|
|
54
|
+
type: 'number',
|
|
55
|
+
description: 'Maximum logs to return',
|
|
56
|
+
required: false,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
requestBody: null,
|
|
60
|
+
responseDescription: 'Array of query log entries.',
|
|
61
|
+
statuses: [
|
|
62
|
+
{ code: 200, description: 'Query logs returned' },
|
|
63
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
64
|
+
{ code: 404, description: 'Database not found' },
|
|
65
|
+
],
|
|
66
|
+
examplePath: '/resource/org_abc123/usw/mydb/logs',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: 'execute-query',
|
|
70
|
+
title: 'Execute Query',
|
|
71
|
+
method: 'POST',
|
|
72
|
+
path: '/resource/{orgId}/{region}/{database}/query',
|
|
73
|
+
description: 'Execute a SQL query against a database.',
|
|
74
|
+
pathParams: [
|
|
75
|
+
{ name: 'orgId', type: 'string', description: 'Organization ID', required: true },
|
|
76
|
+
{ name: 'region', type: 'string', description: 'Region identifier', required: true },
|
|
77
|
+
{ name: 'database', type: 'string', description: 'Database name', required: true },
|
|
78
|
+
],
|
|
79
|
+
queryParams: [],
|
|
80
|
+
requestBody: {
|
|
81
|
+
description: 'SQL query payload.',
|
|
82
|
+
fields: { schema: DbExecuteQueryRequestSchema },
|
|
83
|
+
},
|
|
84
|
+
responseDescription:
|
|
85
|
+
'Returns columns, rows, row count, and whether results were truncated (max 1000 rows).',
|
|
86
|
+
statuses: [
|
|
87
|
+
{ code: 200, description: 'Query executed successfully' },
|
|
88
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
89
|
+
{ code: 404, description: 'Database not found' },
|
|
90
|
+
],
|
|
91
|
+
examplePath: '/resource/org_abc123/usw/mydb/query',
|
|
92
|
+
exampleBody: { query: 'SELECT * FROM users LIMIT 10' },
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: 'get-query-stats',
|
|
96
|
+
title: 'Get Query Stats',
|
|
97
|
+
method: 'GET',
|
|
98
|
+
path: '/resource/{orgId}/{region}/{database}/logs/stats',
|
|
99
|
+
description: 'Get aggregate query statistics for a database over a date range.',
|
|
100
|
+
pathParams: [
|
|
101
|
+
{ name: 'orgId', type: 'string', description: 'Organization ID', required: true },
|
|
102
|
+
{ name: 'region', type: 'string', description: 'Region identifier', required: true },
|
|
103
|
+
{ name: 'database', type: 'string', description: 'Database name', required: true },
|
|
104
|
+
],
|
|
105
|
+
queryParams: [
|
|
106
|
+
{
|
|
107
|
+
name: 'startDate',
|
|
108
|
+
type: 'string',
|
|
109
|
+
description: 'Start date for stats range',
|
|
110
|
+
required: true,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'endDate',
|
|
114
|
+
type: 'string',
|
|
115
|
+
description: 'End date for stats range',
|
|
116
|
+
required: true,
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
requestBody: null,
|
|
120
|
+
responseDescription: 'Aggregate query statistics.',
|
|
121
|
+
statuses: [
|
|
122
|
+
{ code: 200, description: 'Query stats returned' },
|
|
123
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
124
|
+
{ code: 404, description: 'Database not found' },
|
|
125
|
+
],
|
|
126
|
+
examplePath: '/resource/org_abc123/usw/mydb/logs/stats',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
id: 'list-tables',
|
|
130
|
+
title: 'List Tables',
|
|
131
|
+
method: 'GET',
|
|
132
|
+
path: '/resource/{orgId}/{region}/{database}/tables',
|
|
133
|
+
description: 'List all tables in a database.',
|
|
134
|
+
pathParams: [
|
|
135
|
+
{ name: 'orgId', type: 'string', description: 'Organization ID', required: true },
|
|
136
|
+
{ name: 'region', type: 'string', description: 'Region identifier', required: true },
|
|
137
|
+
{ name: 'database', type: 'string', description: 'Database name', required: true },
|
|
138
|
+
],
|
|
139
|
+
queryParams: [],
|
|
140
|
+
requestBody: null,
|
|
141
|
+
responseDescription: 'Array of table names and metadata.',
|
|
142
|
+
statuses: [
|
|
143
|
+
{ code: 200, description: 'Tables returned' },
|
|
144
|
+
{ code: 401, description: 'Unauthorized — invalid or missing Bearer token' },
|
|
145
|
+
{ code: 404, description: 'Database not found' },
|
|
146
|
+
],
|
|
147
|
+
examplePath: '/resource/org_abc123/usw/mydb/tables',
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export default service;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// API-level Zod schemas for the Database HTTP API.
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
|
|
7
|
+
/** Request body for POST /resource/{orgId}/{region}/{database}/query */
|
|
8
|
+
export const DbExecuteQueryRequestSchema = z.object({
|
|
9
|
+
query: z.string().describe('SQL query to execute'),
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export type DbExecuteQueryRequest = z.infer<typeof DbExecuteQueryRequestSchema>;
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EmailActivityResultSchema,
|
|
3
|
+
EmailConnectionConfigSchema,
|
|
4
|
+
EmailSendParamsSchema,
|
|
5
|
+
} from './service.ts';
|
|
6
|
+
import { CreateAddressRequestSchema, CreateEmailDestinationRequestSchema } from './types.ts';
|
|
7
|
+
import type { Service } from '../api-reference.ts';
|
|
8
|
+
|
|
9
|
+
const service: Service = {
|
|
10
|
+
name: 'Emails',
|
|
11
|
+
slug: 'email',
|
|
12
|
+
description: 'Send and receive emails with managed addresses and webhook destinations',
|
|
13
|
+
endpoints: [
|
|
14
|
+
{
|
|
15
|
+
id: 'create-address',
|
|
16
|
+
title: 'Create Address',
|
|
17
|
+
sectionTitle: 'Address Management',
|
|
18
|
+
method: 'POST',
|
|
19
|
+
path: '/email/addresses',
|
|
20
|
+
description: 'Create a managed address at the `@agentuity.email` domain.',
|
|
21
|
+
pathParams: [],
|
|
22
|
+
queryParams: [],
|
|
23
|
+
requestBody: {
|
|
24
|
+
description: 'Address creation payload.',
|
|
25
|
+
fields: { schema: CreateAddressRequestSchema },
|
|
26
|
+
},
|
|
27
|
+
responseDescription: 'Created `EmailAddress` object.',
|
|
28
|
+
statuses: [
|
|
29
|
+
{ code: 200, description: 'Address created' },
|
|
30
|
+
{ code: 401, description: 'Unauthorized' },
|
|
31
|
+
],
|
|
32
|
+
examplePath: '/email/addresses',
|
|
33
|
+
exampleBody: { local_part: 'support' },
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: 'list-addresses',
|
|
37
|
+
title: 'List Addresses',
|
|
38
|
+
sectionTitle: 'Address Management',
|
|
39
|
+
method: 'GET',
|
|
40
|
+
path: '/email/addresses',
|
|
41
|
+
description: 'List managed email addresses.',
|
|
42
|
+
pathParams: [],
|
|
43
|
+
queryParams: [],
|
|
44
|
+
requestBody: null,
|
|
45
|
+
responseDescription: 'Array of `EmailAddress` objects.',
|
|
46
|
+
statuses: [
|
|
47
|
+
{ code: 200, description: 'Addresses returned' },
|
|
48
|
+
{ code: 401, description: 'Unauthorized' },
|
|
49
|
+
],
|
|
50
|
+
examplePath: '/email/addresses',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'get-address',
|
|
54
|
+
title: 'Get Address',
|
|
55
|
+
sectionTitle: 'Address Management',
|
|
56
|
+
method: 'GET',
|
|
57
|
+
path: '/email/addresses/{id}',
|
|
58
|
+
description: 'Get a managed address by ID (`eaddr_...`).',
|
|
59
|
+
pathParams: [{ name: 'id', type: 'string', description: 'Address ID (`eaddr_...`)' }],
|
|
60
|
+
queryParams: [],
|
|
61
|
+
requestBody: null,
|
|
62
|
+
responseDescription: '`EmailAddress` object.',
|
|
63
|
+
statuses: [
|
|
64
|
+
{ code: 200, description: 'Address returned' },
|
|
65
|
+
{ code: 401, description: 'Unauthorized' },
|
|
66
|
+
{ code: 404, description: 'Address not found' },
|
|
67
|
+
],
|
|
68
|
+
examplePath: '/email/addresses/eaddr_abc123',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: 'get-connection-config',
|
|
72
|
+
title: 'Get Connection Config',
|
|
73
|
+
sectionTitle: 'Address Management',
|
|
74
|
+
method: 'GET',
|
|
75
|
+
path: '/email/addresses/{id}/connection',
|
|
76
|
+
description: 'Get IMAP/POP3 connection settings and credentials for an address.',
|
|
77
|
+
pathParams: [{ name: 'id', type: 'string', description: 'Address ID' }],
|
|
78
|
+
queryParams: [],
|
|
79
|
+
requestBody: null,
|
|
80
|
+
responseDescription: 'Connection configuration including IMAP and POP3 details.',
|
|
81
|
+
responseFields: { schema: EmailConnectionConfigSchema },
|
|
82
|
+
statuses: [
|
|
83
|
+
{ code: 200, description: 'Connection config returned' },
|
|
84
|
+
{ code: 401, description: 'Unauthorized' },
|
|
85
|
+
{ code: 404, description: 'Address not found' },
|
|
86
|
+
],
|
|
87
|
+
examplePath: '/email/addresses/eaddr_abc123/connection',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: 'delete-address',
|
|
91
|
+
title: 'Delete Address',
|
|
92
|
+
sectionTitle: 'Address Management',
|
|
93
|
+
method: 'DELETE',
|
|
94
|
+
path: '/email/addresses/{id}',
|
|
95
|
+
description: 'Delete a managed email address.',
|
|
96
|
+
pathParams: [{ name: 'id', type: 'string', description: 'Address ID' }],
|
|
97
|
+
queryParams: [],
|
|
98
|
+
requestBody: null,
|
|
99
|
+
responseDescription: 'Empty response on success.',
|
|
100
|
+
statuses: [
|
|
101
|
+
{ code: 200, description: 'Address deleted' },
|
|
102
|
+
{ code: 401, description: 'Unauthorized' },
|
|
103
|
+
],
|
|
104
|
+
examplePath: '/email/addresses/eaddr_abc123',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'create-email-destination',
|
|
108
|
+
title: 'Create Destination',
|
|
109
|
+
sectionTitle: 'Email Destinations',
|
|
110
|
+
method: 'POST',
|
|
111
|
+
path: '/email/addresses/{addressId}/destinations',
|
|
112
|
+
description: 'Create an inbound webhook destination for an address.',
|
|
113
|
+
pathParams: [{ name: 'addressId', type: 'string', description: 'Address ID' }],
|
|
114
|
+
queryParams: [],
|
|
115
|
+
requestBody: {
|
|
116
|
+
description: 'Destination creation payload.',
|
|
117
|
+
fields: { schema: CreateEmailDestinationRequestSchema },
|
|
118
|
+
},
|
|
119
|
+
responseDescription: 'Created `EmailDestination` object.',
|
|
120
|
+
statuses: [
|
|
121
|
+
{ code: 200, description: 'Destination created' },
|
|
122
|
+
{ code: 401, description: 'Unauthorized' },
|
|
123
|
+
],
|
|
124
|
+
examplePath: '/email/addresses/eaddr_abc123/destinations',
|
|
125
|
+
exampleBody: {
|
|
126
|
+
type: 'url',
|
|
127
|
+
config: { url: 'https://example.com/email-hook', method: 'POST' },
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: 'list-email-destinations',
|
|
132
|
+
title: 'List Destinations',
|
|
133
|
+
sectionTitle: 'Email Destinations',
|
|
134
|
+
method: 'GET',
|
|
135
|
+
path: '/email/addresses/{addressId}/destinations',
|
|
136
|
+
description: 'List inbound destinations for an address.',
|
|
137
|
+
pathParams: [{ name: 'addressId', type: 'string', description: 'Address ID' }],
|
|
138
|
+
queryParams: [],
|
|
139
|
+
requestBody: null,
|
|
140
|
+
responseDescription: 'Array of `EmailDestination` objects.',
|
|
141
|
+
statuses: [
|
|
142
|
+
{ code: 200, description: 'Destinations returned' },
|
|
143
|
+
{ code: 401, description: 'Unauthorized' },
|
|
144
|
+
],
|
|
145
|
+
examplePath: '/email/addresses/eaddr_abc123/destinations',
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: 'delete-email-destination',
|
|
149
|
+
title: 'Delete Destination',
|
|
150
|
+
sectionTitle: 'Email Destinations',
|
|
151
|
+
method: 'DELETE',
|
|
152
|
+
path: '/email/addresses/{addressId}/destinations/{destinationId}',
|
|
153
|
+
description: 'Delete an inbound destination.',
|
|
154
|
+
pathParams: [
|
|
155
|
+
{ name: 'addressId', type: 'string', description: 'Address ID' },
|
|
156
|
+
{ name: 'destinationId', type: 'string', description: 'Destination ID' },
|
|
157
|
+
],
|
|
158
|
+
queryParams: [],
|
|
159
|
+
requestBody: null,
|
|
160
|
+
responseDescription: 'Empty response on success.',
|
|
161
|
+
statuses: [
|
|
162
|
+
{ code: 200, description: 'Destination deleted' },
|
|
163
|
+
{ code: 401, description: 'Unauthorized' },
|
|
164
|
+
],
|
|
165
|
+
examplePath: '/email/addresses/eaddr_abc123/destinations/edst_abc123',
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: 'send-email',
|
|
169
|
+
title: 'Send Email',
|
|
170
|
+
sectionTitle: 'Sending Email',
|
|
171
|
+
method: 'POST',
|
|
172
|
+
path: '/email/outbound/send',
|
|
173
|
+
description:
|
|
174
|
+
'Send an email from an owned address. Delivery is asynchronous and total payload (including attachments) is capped at 25MB.',
|
|
175
|
+
pathParams: [],
|
|
176
|
+
queryParams: [],
|
|
177
|
+
requestBody: {
|
|
178
|
+
description: 'Outbound email payload.',
|
|
179
|
+
fields: { schema: EmailSendParamsSchema },
|
|
180
|
+
},
|
|
181
|
+
responseDescription: 'Created `EmailOutbound` object with initial `pending` status.',
|
|
182
|
+
statuses: [
|
|
183
|
+
{ code: 200, description: 'Outbound email accepted' },
|
|
184
|
+
{ code: 401, description: 'Unauthorized' },
|
|
185
|
+
],
|
|
186
|
+
examplePath: '/email/outbound/send',
|
|
187
|
+
exampleBody: {
|
|
188
|
+
from: 'support@agentuity.email',
|
|
189
|
+
to: ['user@example.com'],
|
|
190
|
+
subject: 'Welcome!',
|
|
191
|
+
text: 'Thanks for joining Agentuity.',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
id: 'list-inbound',
|
|
196
|
+
title: 'List Inbound',
|
|
197
|
+
sectionTitle: 'Inbound Email',
|
|
198
|
+
method: 'GET',
|
|
199
|
+
path: '/email/inbound',
|
|
200
|
+
description: 'List inbound emails, optionally filtered by address.',
|
|
201
|
+
pathParams: [],
|
|
202
|
+
queryParams: [
|
|
203
|
+
{
|
|
204
|
+
name: 'address_id',
|
|
205
|
+
type: 'string',
|
|
206
|
+
description: 'Filter by address ID',
|
|
207
|
+
required: false,
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
requestBody: null,
|
|
211
|
+
responseDescription: 'Array of `EmailInbound` objects.',
|
|
212
|
+
statuses: [
|
|
213
|
+
{ code: 200, description: 'Inbound emails returned' },
|
|
214
|
+
{ code: 401, description: 'Unauthorized' },
|
|
215
|
+
],
|
|
216
|
+
examplePath: '/email/inbound?address_id=eaddr_abc123',
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
id: 'get-inbound',
|
|
220
|
+
title: 'Get Inbound',
|
|
221
|
+
sectionTitle: 'Inbound Email',
|
|
222
|
+
method: 'GET',
|
|
223
|
+
path: '/email/inbound/{id}',
|
|
224
|
+
description: 'Get a specific inbound email by ID (`einb_...`).',
|
|
225
|
+
pathParams: [{ name: 'id', type: 'string', description: 'Inbound email ID (`einb_...`)' }],
|
|
226
|
+
queryParams: [],
|
|
227
|
+
requestBody: null,
|
|
228
|
+
responseDescription: '`EmailInbound` object.',
|
|
229
|
+
statuses: [
|
|
230
|
+
{ code: 200, description: 'Inbound email returned' },
|
|
231
|
+
{ code: 401, description: 'Unauthorized' },
|
|
232
|
+
{ code: 404, description: 'Inbound email not found' },
|
|
233
|
+
],
|
|
234
|
+
examplePath: '/email/inbound/einb_abc123',
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
id: 'delete-inbound',
|
|
238
|
+
title: 'Delete Inbound',
|
|
239
|
+
sectionTitle: 'Inbound Email',
|
|
240
|
+
method: 'DELETE',
|
|
241
|
+
path: '/email/inbound/{id}',
|
|
242
|
+
description: 'Delete an inbound email record.',
|
|
243
|
+
pathParams: [{ name: 'id', type: 'string', description: 'Inbound email ID' }],
|
|
244
|
+
queryParams: [],
|
|
245
|
+
requestBody: null,
|
|
246
|
+
responseDescription: 'Empty response on success.',
|
|
247
|
+
statuses: [
|
|
248
|
+
{ code: 200, description: 'Inbound email deleted' },
|
|
249
|
+
{ code: 401, description: 'Unauthorized' },
|
|
250
|
+
],
|
|
251
|
+
examplePath: '/email/inbound/einb_abc123',
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
id: 'list-outbound',
|
|
255
|
+
title: 'List Outbound',
|
|
256
|
+
sectionTitle: 'Outbound Email',
|
|
257
|
+
method: 'GET',
|
|
258
|
+
path: '/email/outbound',
|
|
259
|
+
description: 'List outbound emails, optionally filtered by address.',
|
|
260
|
+
pathParams: [],
|
|
261
|
+
queryParams: [
|
|
262
|
+
{
|
|
263
|
+
name: 'address_id',
|
|
264
|
+
type: 'string',
|
|
265
|
+
description: 'Filter by address ID',
|
|
266
|
+
required: false,
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
requestBody: null,
|
|
270
|
+
responseDescription: 'Array of `EmailOutbound` objects.',
|
|
271
|
+
statuses: [
|
|
272
|
+
{ code: 200, description: 'Outbound emails returned' },
|
|
273
|
+
{ code: 401, description: 'Unauthorized' },
|
|
274
|
+
],
|
|
275
|
+
examplePath: '/email/outbound?address_id=eaddr_abc123',
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
id: 'get-outbound',
|
|
279
|
+
title: 'Get Outbound',
|
|
280
|
+
sectionTitle: 'Outbound Email',
|
|
281
|
+
method: 'GET',
|
|
282
|
+
path: '/email/outbound/{id}',
|
|
283
|
+
description: 'Get an outbound email by ID (`eout_...`).',
|
|
284
|
+
pathParams: [
|
|
285
|
+
{ name: 'id', type: 'string', description: 'Outbound email ID (`eout_...`)' },
|
|
286
|
+
],
|
|
287
|
+
queryParams: [],
|
|
288
|
+
requestBody: null,
|
|
289
|
+
responseDescription: '`EmailOutbound` object including delivery status and error details.',
|
|
290
|
+
statuses: [
|
|
291
|
+
{ code: 200, description: 'Outbound email returned' },
|
|
292
|
+
{ code: 401, description: 'Unauthorized' },
|
|
293
|
+
{ code: 404, description: 'Outbound email not found' },
|
|
294
|
+
],
|
|
295
|
+
examplePath: '/email/outbound/eout_abc123',
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
id: 'delete-outbound',
|
|
299
|
+
title: 'Delete Outbound',
|
|
300
|
+
sectionTitle: 'Outbound Email',
|
|
301
|
+
method: 'DELETE',
|
|
302
|
+
path: '/email/outbound/{id}',
|
|
303
|
+
description: 'Delete an outbound email record.',
|
|
304
|
+
pathParams: [{ name: 'id', type: 'string', description: 'Outbound email ID' }],
|
|
305
|
+
queryParams: [],
|
|
306
|
+
requestBody: null,
|
|
307
|
+
responseDescription: 'Empty response on success.',
|
|
308
|
+
statuses: [
|
|
309
|
+
{ code: 200, description: 'Outbound email deleted' },
|
|
310
|
+
{ code: 401, description: 'Unauthorized' },
|
|
311
|
+
],
|
|
312
|
+
examplePath: '/email/outbound/eout_abc123',
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
id: 'get-email-activity',
|
|
316
|
+
title: 'Get Activity',
|
|
317
|
+
sectionTitle: 'Activity',
|
|
318
|
+
method: 'GET',
|
|
319
|
+
path: '/email/activity/{date}',
|
|
320
|
+
description: 'Get daily inbound/outbound activity over a date window.',
|
|
321
|
+
pathParams: [
|
|
322
|
+
{
|
|
323
|
+
name: 'date',
|
|
324
|
+
type: 'string',
|
|
325
|
+
description: 'Date for activity lookup (YYYY-MM-DD format)',
|
|
326
|
+
required: true,
|
|
327
|
+
},
|
|
328
|
+
],
|
|
329
|
+
queryParams: [
|
|
330
|
+
{
|
|
331
|
+
name: 'days',
|
|
332
|
+
type: 'number',
|
|
333
|
+
description: 'Range in days (7–365, default: 7)',
|
|
334
|
+
required: false,
|
|
335
|
+
},
|
|
336
|
+
],
|
|
337
|
+
requestBody: null,
|
|
338
|
+
responseDescription: 'Activity time series grouped by date.',
|
|
339
|
+
responseFields: { schema: EmailActivityResultSchema },
|
|
340
|
+
statuses: [
|
|
341
|
+
{ code: 200, description: 'Activity returned' },
|
|
342
|
+
{ code: 401, description: 'Unauthorized' },
|
|
343
|
+
],
|
|
344
|
+
examplePath: '/email/activity/2026-02-28?days=30',
|
|
345
|
+
},
|
|
346
|
+
],
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
export default service;
|
|
@@ -749,8 +749,6 @@ function unwrap<T>(payload: unknown, key: string): T {
|
|
|
749
749
|
return payload as T;
|
|
750
750
|
}
|
|
751
751
|
|
|
752
|
-
const EMAIL_ACTIVITY_API_VERSION = '2026-02-28';
|
|
753
|
-
|
|
754
752
|
/**
|
|
755
753
|
* Client for the Agentuity Email service.
|
|
756
754
|
*
|
|
@@ -1449,10 +1447,7 @@ export class EmailStorageService implements EmailService {
|
|
|
1449
1447
|
}
|
|
1450
1448
|
|
|
1451
1449
|
const queryString = queryParams.toString();
|
|
1452
|
-
const url = buildUrl(
|
|
1453
|
-
this.#baseUrl,
|
|
1454
|
-
`/email/activity/${EMAIL_ACTIVITY_API_VERSION}${queryString ? `?${queryString}` : ''}`
|
|
1455
|
-
);
|
|
1450
|
+
const url = buildUrl(this.#baseUrl, `/email/activity${queryString ? `?${queryString}` : ''}`);
|
|
1456
1451
|
const signal = AbortSignal.timeout(30_000);
|
|
1457
1452
|
|
|
1458
1453
|
const days = queryParams.get('days');
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/** Request payload for creating an email address */
|
|
4
|
+
export const CreateAddressRequestSchema = z.object({
|
|
5
|
+
local_part: z.string().describe('Local part before `@agentuity.email`'),
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
/** Request payload for creating an email destination */
|
|
9
|
+
export const CreateEmailDestinationRequestSchema = z.object({
|
|
10
|
+
type: z.string().describe('Destination type (`url`)'),
|
|
11
|
+
config: z.record(z.string(), z.unknown()).describe('Destination config including URL'),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export type CreateAddressRequest = z.infer<typeof CreateAddressRequestSchema>;
|
|
15
|
+
export type CreateEmailDestinationRequest = z.infer<typeof CreateEmailDestinationRequestSchema>;
|