@meshery/schemas 1.3.49 → 1.3.51
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/README.md +2 -1
- package/dist/cloudApi.d.mts +4741 -3150
- package/dist/cloudApi.d.ts +4741 -3150
- package/dist/cloudApi.js +1 -1
- package/dist/cloudApi.mjs +1 -1
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtp.d.ts +1220 -0
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtp.js +1 -0
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtp.mjs +0 -0
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtpSchema.d.ts +2 -0
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtpSchema.js +4 -0
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtpSchema.mjs +4 -0
- package/package.json +1 -1
|
@@ -0,0 +1,1220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface paths {
|
|
7
|
+
"/api/identity/orgs/{orgId}/smtp-configuration": {
|
|
8
|
+
parameters: {
|
|
9
|
+
query?: never;
|
|
10
|
+
header?: never;
|
|
11
|
+
path?: never;
|
|
12
|
+
cookie?: never;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Get an organization's SMTP configuration
|
|
16
|
+
* @description Returns the organization's mail server configuration, including its current health and from-domain verification state. The password is always the redaction sentinel `***`.
|
|
17
|
+
*/
|
|
18
|
+
get: operations["getOrganizationSmtpConfiguration"];
|
|
19
|
+
/**
|
|
20
|
+
* Create or replace an organization's SMTP configuration
|
|
21
|
+
* @description Writes the organization's single mail server configuration, creating it if absent. The whole document is replaced, with one exception: a `password` of `***` or an empty string preserves the stored password, so a client may edit an unrelated field after a read without erasing the credential.
|
|
22
|
+
* Changing the from address resets from-domain verification, and `enabled` is refused while the from domain is unverified.
|
|
23
|
+
*/
|
|
24
|
+
put: operations["upsertOrganizationSmtpConfiguration"];
|
|
25
|
+
post?: never;
|
|
26
|
+
/**
|
|
27
|
+
* Remove an organization's SMTP configuration
|
|
28
|
+
* @description Removes the configuration and its stored credential. The organization's mail reverts to the provider's shared relay.
|
|
29
|
+
*/
|
|
30
|
+
delete: operations["deleteOrganizationSmtpConfiguration"];
|
|
31
|
+
options?: never;
|
|
32
|
+
head?: never;
|
|
33
|
+
patch?: never;
|
|
34
|
+
trace?: never;
|
|
35
|
+
};
|
|
36
|
+
"/api/identity/orgs/{orgId}/smtp-configuration/test": {
|
|
37
|
+
parameters: {
|
|
38
|
+
query?: never;
|
|
39
|
+
header?: never;
|
|
40
|
+
path?: never;
|
|
41
|
+
cookie?: never;
|
|
42
|
+
};
|
|
43
|
+
get?: never;
|
|
44
|
+
put?: never;
|
|
45
|
+
/**
|
|
46
|
+
* Send a test message through an organization's SMTP configuration
|
|
47
|
+
* @description Delivers a real message through the configured server and reports a classified outcome. A real delivery rather than a connection probe on purpose: a server that connects and authenticates but refuses the sender or the recipient is the most common misconfiguration, and a probe reports it healthy.
|
|
48
|
+
* The recipient defaults to the calling administrator's own address. The outcome is a classification, never the remote server's own text.
|
|
49
|
+
*/
|
|
50
|
+
post: operations["testOrganizationSmtpConfiguration"];
|
|
51
|
+
delete?: never;
|
|
52
|
+
options?: never;
|
|
53
|
+
head?: never;
|
|
54
|
+
patch?: never;
|
|
55
|
+
trace?: never;
|
|
56
|
+
};
|
|
57
|
+
"/api/identity/orgs/{orgId}/smtp-configuration/domain-verification": {
|
|
58
|
+
parameters: {
|
|
59
|
+
query?: never;
|
|
60
|
+
header?: never;
|
|
61
|
+
path?: never;
|
|
62
|
+
cookie?: never;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Get the from-domain verification challenge
|
|
66
|
+
* @description Returns the DNS record the organization must publish to prove control of its from domain, together with the current verification state. A from domain that matches the organization's own registered custom domain is already proven and needs no record.
|
|
67
|
+
*/
|
|
68
|
+
get: operations["getOrganizationSmtpDomainVerification"];
|
|
69
|
+
put?: never;
|
|
70
|
+
/**
|
|
71
|
+
* Check the from-domain verification challenge
|
|
72
|
+
* @description Resolves the challenge record and records the result. Proving the domain is what permits the configuration to be enabled.
|
|
73
|
+
*/
|
|
74
|
+
post: operations["verifyOrganizationSmtpDomain"];
|
|
75
|
+
delete?: never;
|
|
76
|
+
options?: never;
|
|
77
|
+
head?: never;
|
|
78
|
+
patch?: never;
|
|
79
|
+
trace?: never;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export type webhooks = Record<string, never>;
|
|
83
|
+
export interface components {
|
|
84
|
+
schemas: {
|
|
85
|
+
/**
|
|
86
|
+
* OrganizationSmtpConfiguration
|
|
87
|
+
* @description An organization's own outbound mail server. When present and enabled, every transactional email whose reader belongs to this organization - application notifications and identity-flow mail (account verification, password recovery) alike - is delivered through this server rather than through the provider's shared relay, so the message leaves from the organization's own domain. At most one live configuration exists per organization. The SMTP password is encrypted at rest and is never returned; reads always carry the redaction sentinel instead.
|
|
88
|
+
* @example {
|
|
89
|
+
* "id": "00000000-0000-0000-0000-000000000000",
|
|
90
|
+
* "organizationId": "00000000-0000-0000-0000-000000000000",
|
|
91
|
+
* "host": "smtp.example.com",
|
|
92
|
+
* "port": 587,
|
|
93
|
+
* "encryption": "starttls",
|
|
94
|
+
* "authMechanism": "plain",
|
|
95
|
+
* "username": "no-reply@example.com",
|
|
96
|
+
* "password": "***",
|
|
97
|
+
* "fromAddress": "no-reply@example.com",
|
|
98
|
+
* "fromDisplayName": "Example Corp",
|
|
99
|
+
* "replyToAddress": "support@example.com",
|
|
100
|
+
* "enabled": true,
|
|
101
|
+
* "fallbackToProvider": true,
|
|
102
|
+
* "fromDomain": "example.com",
|
|
103
|
+
* "fromDomainVerificationToken": "0f6a5d2c9b1e4a7f8c3d6b0e2a4f7c19",
|
|
104
|
+
* "fromDomainVerifiedAt": null,
|
|
105
|
+
* "verificationState": "unverified",
|
|
106
|
+
* "lastSuccessAt": null,
|
|
107
|
+
* "lastFailureAt": null,
|
|
108
|
+
* "lastFailureReason": null,
|
|
109
|
+
* "consecutiveFailures": 0,
|
|
110
|
+
* "createdBy": "00000000-0000-0000-0000-000000000000",
|
|
111
|
+
* "createdAt": "0001-01-01T00:00:00Z",
|
|
112
|
+
* "updatedAt": "0001-01-01T00:00:00Z",
|
|
113
|
+
* "deletedAt": null
|
|
114
|
+
* }
|
|
115
|
+
*/
|
|
116
|
+
OrganizationSmtpConfiguration: {
|
|
117
|
+
/**
|
|
118
|
+
* Format: uuid
|
|
119
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
120
|
+
*/
|
|
121
|
+
id: string;
|
|
122
|
+
/**
|
|
123
|
+
* Format: uuid
|
|
124
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
125
|
+
*/
|
|
126
|
+
organizationId: string;
|
|
127
|
+
/** @description Hostname of the organization's SMTP server. */
|
|
128
|
+
host: string;
|
|
129
|
+
/**
|
|
130
|
+
* @description TCP port the organization's SMTP server listens on.
|
|
131
|
+
* @default 587
|
|
132
|
+
*/
|
|
133
|
+
port: number;
|
|
134
|
+
/**
|
|
135
|
+
* @description Transport encryption to negotiate. `starttls` upgrades a cleartext connection (typically port 587), `tls` opens an implicit TLS connection (typically port 465), and `none` sends in cleartext and is intended only for an internal relay on a trusted network.
|
|
136
|
+
* @default starttls
|
|
137
|
+
* @enum {string}
|
|
138
|
+
*/
|
|
139
|
+
encryption: "starttls" | "tls" | "none";
|
|
140
|
+
/**
|
|
141
|
+
* @description SMTP authentication mechanism. `none` is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
|
|
142
|
+
* @default plain
|
|
143
|
+
* @enum {string}
|
|
144
|
+
*/
|
|
145
|
+
authMechanism: "plain" | "cram-md5" | "none";
|
|
146
|
+
/** @description Username presented to the organization's SMTP server. */
|
|
147
|
+
username?: string;
|
|
148
|
+
/** @description Password presented to the organization's SMTP server. Write-only. A read always returns the redaction sentinel `***`; the stored value is encrypted at rest and is never projected into a response. Writing `***` or an empty string preserves the stored password, so a client may round-trip a read without erasing the credential. */
|
|
149
|
+
password?: string;
|
|
150
|
+
/**
|
|
151
|
+
* Format: email
|
|
152
|
+
* @description Address the organization's mail is sent from. Its domain must be verified before the configuration can be enabled.
|
|
153
|
+
*/
|
|
154
|
+
fromAddress: string;
|
|
155
|
+
/** @description Display name shown alongside the from address in the message header. */
|
|
156
|
+
fromDisplayName?: string;
|
|
157
|
+
/**
|
|
158
|
+
* Format: email
|
|
159
|
+
* @description Address replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider's own so the message stays aligned for SPF and DMARC.
|
|
160
|
+
*/
|
|
161
|
+
replyToAddress?: string;
|
|
162
|
+
/**
|
|
163
|
+
* @description Whether mail is routed through this server. Cannot be set while the from domain is unverified.
|
|
164
|
+
* @default false
|
|
165
|
+
*/
|
|
166
|
+
enabled: boolean;
|
|
167
|
+
/**
|
|
168
|
+
* @description Whether a message that this server fails to accept is re-sent through the provider's shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
|
|
169
|
+
* @default true
|
|
170
|
+
*/
|
|
171
|
+
fallbackToProvider: boolean;
|
|
172
|
+
/** @description Registrable domain of the from address, held separately as the unit that ownership is proven for. */
|
|
173
|
+
fromDomain?: string;
|
|
174
|
+
/** @description Token the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access. */
|
|
175
|
+
fromDomainVerificationToken?: string;
|
|
176
|
+
/**
|
|
177
|
+
* Format: date-time
|
|
178
|
+
* @description Timestamp at which control of the from domain was last proven. Null while unproven.
|
|
179
|
+
*/
|
|
180
|
+
fromDomainVerifiedAt?: string | null;
|
|
181
|
+
/**
|
|
182
|
+
* @description Health of the configuration. `unverified` means it has never delivered a test message, `verified` means the last delivery attempt succeeded, and `failing` means consecutive failures have opened the circuit and mail is being handled under the fallback setting without dialling this server.
|
|
183
|
+
* @default unverified
|
|
184
|
+
* @enum {string}
|
|
185
|
+
*/
|
|
186
|
+
verificationState: "unverified" | "verified" | "failing";
|
|
187
|
+
/**
|
|
188
|
+
* Format: date-time
|
|
189
|
+
* @description Timestamp of the last message this server accepted.
|
|
190
|
+
*/
|
|
191
|
+
lastSuccessAt?: string | null;
|
|
192
|
+
/**
|
|
193
|
+
* Format: date-time
|
|
194
|
+
* @description Timestamp of the last delivery attempt this server rejected or failed to accept.
|
|
195
|
+
*/
|
|
196
|
+
lastFailureAt?: string | null;
|
|
197
|
+
/**
|
|
198
|
+
* @description Classification of the last failure. Always a classification, never the remote server's own message: the set is closed on purpose, because reporting a remote server's text back to a caller would turn a refusal into an oracle for what the network can reach.
|
|
199
|
+
* @enum {string}
|
|
200
|
+
*/
|
|
201
|
+
lastFailureReason?: "blocked_target" | "connect_refused" | "connect_timeout" | "tls_failed" | "starttls_unsupported" | "auth_rejected" | "relay_rejected_sender" | "relay_rejected_recipient" | "delivery_failed" | "credential_unreadable";
|
|
202
|
+
/**
|
|
203
|
+
* @description Delivery failures since the last success. Drives the circuit that stops dialling a persistently unreachable server.
|
|
204
|
+
* @default 0
|
|
205
|
+
*/
|
|
206
|
+
consecutiveFailures: number;
|
|
207
|
+
/**
|
|
208
|
+
* Format: uuid
|
|
209
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
210
|
+
*/
|
|
211
|
+
createdBy?: string | null;
|
|
212
|
+
/**
|
|
213
|
+
* Format: date-time
|
|
214
|
+
* @description Timestamp when the configuration was created.
|
|
215
|
+
*/
|
|
216
|
+
createdAt: string;
|
|
217
|
+
/**
|
|
218
|
+
* Format: date-time
|
|
219
|
+
* @description Timestamp when the configuration was last changed.
|
|
220
|
+
*/
|
|
221
|
+
updatedAt: string;
|
|
222
|
+
/**
|
|
223
|
+
* Format: date-time
|
|
224
|
+
* @description Timestamp when the configuration was soft deleted. Null while it remains active.
|
|
225
|
+
*/
|
|
226
|
+
deletedAt?: string | null;
|
|
227
|
+
};
|
|
228
|
+
/** @description Client-settable fields of an organization's mail server configuration. Health, verification state and timestamps are server-owned and are not accepted here. */
|
|
229
|
+
OrganizationSmtpConfigurationPayload: {
|
|
230
|
+
/**
|
|
231
|
+
* Format: uuid
|
|
232
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
233
|
+
*/
|
|
234
|
+
id?: string;
|
|
235
|
+
/** @description Hostname of the organization's SMTP server. */
|
|
236
|
+
host: string;
|
|
237
|
+
/**
|
|
238
|
+
* @description TCP port the organization's SMTP server listens on.
|
|
239
|
+
* @default 587
|
|
240
|
+
*/
|
|
241
|
+
port: number;
|
|
242
|
+
/**
|
|
243
|
+
* @description Transport encryption to negotiate. `starttls` upgrades a cleartext connection (typically port 587), `tls` opens an implicit TLS connection (typically port 465), and `none` sends in cleartext.
|
|
244
|
+
* @default starttls
|
|
245
|
+
* @enum {string}
|
|
246
|
+
*/
|
|
247
|
+
encryption: "starttls" | "tls" | "none";
|
|
248
|
+
/**
|
|
249
|
+
* @description SMTP authentication mechanism. Any mechanism other than `none` requires both a username and a password.
|
|
250
|
+
* @default plain
|
|
251
|
+
* @enum {string}
|
|
252
|
+
*/
|
|
253
|
+
authMechanism: "plain" | "cram-md5" | "none";
|
|
254
|
+
/** @description Username presented to the organization's SMTP server. */
|
|
255
|
+
username?: string;
|
|
256
|
+
/** @description Password presented to the organization's SMTP server. Write-only. `***` or an empty string preserves the stored password, so a client may round-trip a read without erasing the credential. */
|
|
257
|
+
password?: string;
|
|
258
|
+
/**
|
|
259
|
+
* Format: email
|
|
260
|
+
* @description Address the organization's mail is sent from. Changing it resets from-domain verification.
|
|
261
|
+
*/
|
|
262
|
+
fromAddress: string;
|
|
263
|
+
/** @description Display name shown alongside the from address. */
|
|
264
|
+
fromDisplayName?: string;
|
|
265
|
+
/**
|
|
266
|
+
* Format: email
|
|
267
|
+
* @description Address replies are directed to.
|
|
268
|
+
*/
|
|
269
|
+
replyToAddress?: string;
|
|
270
|
+
/**
|
|
271
|
+
* @description Whether mail is routed through this server. Refused while the from domain is unverified.
|
|
272
|
+
* @default false
|
|
273
|
+
*/
|
|
274
|
+
enabled: boolean;
|
|
275
|
+
/**
|
|
276
|
+
* @description Whether a message this server fails to accept is re-sent through the provider's shared relay. Disabling it means a failure is a dropped message, account verification and password recovery included.
|
|
277
|
+
* @default true
|
|
278
|
+
*/
|
|
279
|
+
fallbackToProvider: boolean;
|
|
280
|
+
};
|
|
281
|
+
/** @description Options for a test delivery. */
|
|
282
|
+
OrganizationSmtpTestRequest: {
|
|
283
|
+
/**
|
|
284
|
+
* Format: email
|
|
285
|
+
* @description Recipient of the test message. Defaults to the calling administrator's own address.
|
|
286
|
+
*/
|
|
287
|
+
to?: string;
|
|
288
|
+
};
|
|
289
|
+
/** @description Classified outcome of a test delivery. Carries no text from the remote server, so a refusal reveals nothing about what the network can reach. */
|
|
290
|
+
OrganizationSmtpTestResult: {
|
|
291
|
+
/**
|
|
292
|
+
* @description What happened. `delivered` means the server accepted the message; every other value names the stage that refused it.
|
|
293
|
+
* @enum {string}
|
|
294
|
+
*/
|
|
295
|
+
outcome: "delivered" | "blocked_target" | "connect_refused" | "connect_timeout" | "tls_failed" | "starttls_unsupported" | "auth_rejected" | "relay_rejected_sender" | "relay_rejected_recipient" | "delivery_failed" | "credential_unreadable";
|
|
296
|
+
/** @description Human-readable summary of the outcome, drawn from a fixed set of phrasings. */
|
|
297
|
+
message?: string;
|
|
298
|
+
/**
|
|
299
|
+
* Format: email
|
|
300
|
+
* @description Address the test message was addressed to.
|
|
301
|
+
*/
|
|
302
|
+
sentTo?: string;
|
|
303
|
+
/**
|
|
304
|
+
* Format: date-time
|
|
305
|
+
* @description When the delivery was attempted.
|
|
306
|
+
*/
|
|
307
|
+
testedAt: string;
|
|
308
|
+
};
|
|
309
|
+
/** @description The DNS record proving control of an organization's from domain, and the current state of that proof. */
|
|
310
|
+
OrganizationSmtpDomainChallenge: {
|
|
311
|
+
/** @description Registrable domain the proof applies to. */
|
|
312
|
+
domain: string;
|
|
313
|
+
/**
|
|
314
|
+
* @description How the domain is proven. `custom-domain` means it matches the organization's own registered custom domain and needs no record; `dns-txt` means the record below must be published.
|
|
315
|
+
* @enum {string}
|
|
316
|
+
*/
|
|
317
|
+
method: "custom-domain" | "dns-txt";
|
|
318
|
+
/** @description Fully qualified name of the TXT record to publish. */
|
|
319
|
+
recordName?: string;
|
|
320
|
+
/** @description Value the TXT record must carry. */
|
|
321
|
+
recordValue?: string;
|
|
322
|
+
/** @description Whether control of the domain is currently proven. */
|
|
323
|
+
verified: boolean;
|
|
324
|
+
/**
|
|
325
|
+
* Format: date-time
|
|
326
|
+
* @description When control was last proven. Null while unproven.
|
|
327
|
+
*/
|
|
328
|
+
verifiedAt?: string | null;
|
|
329
|
+
/**
|
|
330
|
+
* @description Why the last check did not prove control.
|
|
331
|
+
* @enum {string}
|
|
332
|
+
*/
|
|
333
|
+
failureReason?: "record_not_found" | "record_mismatch" | "lookup_failed" | "domain_reserved";
|
|
334
|
+
};
|
|
335
|
+
};
|
|
336
|
+
responses: {
|
|
337
|
+
/** @description Invalid request body or request param */
|
|
338
|
+
400: {
|
|
339
|
+
headers: {
|
|
340
|
+
[name: string]: unknown;
|
|
341
|
+
};
|
|
342
|
+
content: {
|
|
343
|
+
"text/plain": string;
|
|
344
|
+
};
|
|
345
|
+
};
|
|
346
|
+
/** @description Expired JWT token used or insufficient privilege */
|
|
347
|
+
401: {
|
|
348
|
+
headers: {
|
|
349
|
+
[name: string]: unknown;
|
|
350
|
+
};
|
|
351
|
+
content: {
|
|
352
|
+
"text/plain": string;
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
/** @description Caller lacks the permission key required for this organization */
|
|
356
|
+
403: {
|
|
357
|
+
headers: {
|
|
358
|
+
[name: string]: unknown;
|
|
359
|
+
};
|
|
360
|
+
content: {
|
|
361
|
+
"text/plain": string;
|
|
362
|
+
};
|
|
363
|
+
};
|
|
364
|
+
/** @description Result not found */
|
|
365
|
+
404: {
|
|
366
|
+
headers: {
|
|
367
|
+
[name: string]: unknown;
|
|
368
|
+
};
|
|
369
|
+
content: {
|
|
370
|
+
"text/plain": string;
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
/** @description Too many attempts for this organization */
|
|
374
|
+
429: {
|
|
375
|
+
headers: {
|
|
376
|
+
[name: string]: unknown;
|
|
377
|
+
};
|
|
378
|
+
content: {
|
|
379
|
+
"text/plain": string;
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
/** @description Internal server error */
|
|
383
|
+
500: {
|
|
384
|
+
headers: {
|
|
385
|
+
[name: string]: unknown;
|
|
386
|
+
};
|
|
387
|
+
content: {
|
|
388
|
+
"text/plain": string;
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
};
|
|
392
|
+
parameters: {
|
|
393
|
+
/** @description Organization ID */
|
|
394
|
+
orgId: string;
|
|
395
|
+
};
|
|
396
|
+
requestBodies: {
|
|
397
|
+
organizationSmtpConfigurationPayload: {
|
|
398
|
+
content: {
|
|
399
|
+
"application/json": {
|
|
400
|
+
/**
|
|
401
|
+
* Format: uuid
|
|
402
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
403
|
+
*/
|
|
404
|
+
id?: string;
|
|
405
|
+
/** @description Hostname of the organization's SMTP server. */
|
|
406
|
+
host: string;
|
|
407
|
+
/**
|
|
408
|
+
* @description TCP port the organization's SMTP server listens on.
|
|
409
|
+
* @default 587
|
|
410
|
+
*/
|
|
411
|
+
port: number;
|
|
412
|
+
/**
|
|
413
|
+
* @description Transport encryption to negotiate. `starttls` upgrades a cleartext connection (typically port 587), `tls` opens an implicit TLS connection (typically port 465), and `none` sends in cleartext.
|
|
414
|
+
* @default starttls
|
|
415
|
+
* @enum {string}
|
|
416
|
+
*/
|
|
417
|
+
encryption?: "starttls" | "tls" | "none";
|
|
418
|
+
/**
|
|
419
|
+
* @description SMTP authentication mechanism. Any mechanism other than `none` requires both a username and a password.
|
|
420
|
+
* @default plain
|
|
421
|
+
* @enum {string}
|
|
422
|
+
*/
|
|
423
|
+
authMechanism?: "plain" | "cram-md5" | "none";
|
|
424
|
+
/** @description Username presented to the organization's SMTP server. */
|
|
425
|
+
username?: string;
|
|
426
|
+
/** @description Password presented to the organization's SMTP server. Write-only. `***` or an empty string preserves the stored password, so a client may round-trip a read without erasing the credential. */
|
|
427
|
+
password?: string;
|
|
428
|
+
/**
|
|
429
|
+
* Format: email
|
|
430
|
+
* @description Address the organization's mail is sent from. Changing it resets from-domain verification.
|
|
431
|
+
*/
|
|
432
|
+
fromAddress: string;
|
|
433
|
+
/** @description Display name shown alongside the from address. */
|
|
434
|
+
fromDisplayName?: string;
|
|
435
|
+
/**
|
|
436
|
+
* Format: email
|
|
437
|
+
* @description Address replies are directed to.
|
|
438
|
+
*/
|
|
439
|
+
replyToAddress?: string;
|
|
440
|
+
/**
|
|
441
|
+
* @description Whether mail is routed through this server. Refused while the from domain is unverified.
|
|
442
|
+
* @default false
|
|
443
|
+
*/
|
|
444
|
+
enabled?: boolean;
|
|
445
|
+
/**
|
|
446
|
+
* @description Whether a message this server fails to accept is re-sent through the provider's shared relay. Disabling it means a failure is a dropped message, account verification and password recovery included.
|
|
447
|
+
* @default true
|
|
448
|
+
*/
|
|
449
|
+
fallbackToProvider?: boolean;
|
|
450
|
+
};
|
|
451
|
+
};
|
|
452
|
+
};
|
|
453
|
+
organizationSmtpTestRequest: {
|
|
454
|
+
content: {
|
|
455
|
+
"application/json": {
|
|
456
|
+
/**
|
|
457
|
+
* Format: email
|
|
458
|
+
* @description Recipient of the test message. Defaults to the calling administrator's own address.
|
|
459
|
+
*/
|
|
460
|
+
to?: string;
|
|
461
|
+
};
|
|
462
|
+
};
|
|
463
|
+
};
|
|
464
|
+
};
|
|
465
|
+
headers: never;
|
|
466
|
+
pathItems: never;
|
|
467
|
+
}
|
|
468
|
+
export type $defs = Record<string, never>;
|
|
469
|
+
export interface operations {
|
|
470
|
+
getOrganizationSmtpConfiguration: {
|
|
471
|
+
parameters: {
|
|
472
|
+
query?: never;
|
|
473
|
+
header?: never;
|
|
474
|
+
path: {
|
|
475
|
+
/** @description Organization ID */
|
|
476
|
+
orgId: string;
|
|
477
|
+
};
|
|
478
|
+
cookie?: never;
|
|
479
|
+
};
|
|
480
|
+
requestBody?: never;
|
|
481
|
+
responses: {
|
|
482
|
+
/** @description The organization's SMTP configuration. */
|
|
483
|
+
200: {
|
|
484
|
+
headers: {
|
|
485
|
+
[name: string]: unknown;
|
|
486
|
+
};
|
|
487
|
+
content: {
|
|
488
|
+
"application/json": {
|
|
489
|
+
/**
|
|
490
|
+
* Format: uuid
|
|
491
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
492
|
+
*/
|
|
493
|
+
id: string;
|
|
494
|
+
/**
|
|
495
|
+
* Format: uuid
|
|
496
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
497
|
+
*/
|
|
498
|
+
organizationId: string;
|
|
499
|
+
/** @description Hostname of the organization's SMTP server. */
|
|
500
|
+
host: string;
|
|
501
|
+
/**
|
|
502
|
+
* @description TCP port the organization's SMTP server listens on.
|
|
503
|
+
* @default 587
|
|
504
|
+
*/
|
|
505
|
+
port: number;
|
|
506
|
+
/**
|
|
507
|
+
* @description Transport encryption to negotiate. `starttls` upgrades a cleartext connection (typically port 587), `tls` opens an implicit TLS connection (typically port 465), and `none` sends in cleartext and is intended only for an internal relay on a trusted network.
|
|
508
|
+
* @default starttls
|
|
509
|
+
* @enum {string}
|
|
510
|
+
*/
|
|
511
|
+
encryption: "starttls" | "tls" | "none";
|
|
512
|
+
/**
|
|
513
|
+
* @description SMTP authentication mechanism. `none` is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
|
|
514
|
+
* @default plain
|
|
515
|
+
* @enum {string}
|
|
516
|
+
*/
|
|
517
|
+
authMechanism: "plain" | "cram-md5" | "none";
|
|
518
|
+
/** @description Username presented to the organization's SMTP server. */
|
|
519
|
+
username?: string;
|
|
520
|
+
/** @description Password presented to the organization's SMTP server. Write-only. A read always returns the redaction sentinel `***`; the stored value is encrypted at rest and is never projected into a response. Writing `***` or an empty string preserves the stored password, so a client may round-trip a read without erasing the credential. */
|
|
521
|
+
password?: string;
|
|
522
|
+
/**
|
|
523
|
+
* Format: email
|
|
524
|
+
* @description Address the organization's mail is sent from. Its domain must be verified before the configuration can be enabled.
|
|
525
|
+
*/
|
|
526
|
+
fromAddress: string;
|
|
527
|
+
/** @description Display name shown alongside the from address in the message header. */
|
|
528
|
+
fromDisplayName?: string;
|
|
529
|
+
/**
|
|
530
|
+
* Format: email
|
|
531
|
+
* @description Address replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider's own so the message stays aligned for SPF and DMARC.
|
|
532
|
+
*/
|
|
533
|
+
replyToAddress?: string;
|
|
534
|
+
/**
|
|
535
|
+
* @description Whether mail is routed through this server. Cannot be set while the from domain is unverified.
|
|
536
|
+
* @default false
|
|
537
|
+
*/
|
|
538
|
+
enabled: boolean;
|
|
539
|
+
/**
|
|
540
|
+
* @description Whether a message that this server fails to accept is re-sent through the provider's shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
|
|
541
|
+
* @default true
|
|
542
|
+
*/
|
|
543
|
+
fallbackToProvider: boolean;
|
|
544
|
+
/** @description Registrable domain of the from address, held separately as the unit that ownership is proven for. */
|
|
545
|
+
fromDomain?: string;
|
|
546
|
+
/** @description Token the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access. */
|
|
547
|
+
fromDomainVerificationToken?: string;
|
|
548
|
+
/**
|
|
549
|
+
* Format: date-time
|
|
550
|
+
* @description Timestamp at which control of the from domain was last proven. Null while unproven.
|
|
551
|
+
*/
|
|
552
|
+
fromDomainVerifiedAt?: string | null;
|
|
553
|
+
/**
|
|
554
|
+
* @description Health of the configuration. `unverified` means it has never delivered a test message, `verified` means the last delivery attempt succeeded, and `failing` means consecutive failures have opened the circuit and mail is being handled under the fallback setting without dialling this server.
|
|
555
|
+
* @default unverified
|
|
556
|
+
* @enum {string}
|
|
557
|
+
*/
|
|
558
|
+
verificationState: "unverified" | "verified" | "failing";
|
|
559
|
+
/**
|
|
560
|
+
* Format: date-time
|
|
561
|
+
* @description Timestamp of the last message this server accepted.
|
|
562
|
+
*/
|
|
563
|
+
lastSuccessAt?: string | null;
|
|
564
|
+
/**
|
|
565
|
+
* Format: date-time
|
|
566
|
+
* @description Timestamp of the last delivery attempt this server rejected or failed to accept.
|
|
567
|
+
*/
|
|
568
|
+
lastFailureAt?: string | null;
|
|
569
|
+
/**
|
|
570
|
+
* @description Classification of the last failure. Always a classification, never the remote server's own message: the set is closed on purpose, because reporting a remote server's text back to a caller would turn a refusal into an oracle for what the network can reach.
|
|
571
|
+
* @enum {string}
|
|
572
|
+
*/
|
|
573
|
+
lastFailureReason?: "blocked_target" | "connect_refused" | "connect_timeout" | "tls_failed" | "starttls_unsupported" | "auth_rejected" | "relay_rejected_sender" | "relay_rejected_recipient" | "delivery_failed" | "credential_unreadable";
|
|
574
|
+
/**
|
|
575
|
+
* @description Delivery failures since the last success. Drives the circuit that stops dialling a persistently unreachable server.
|
|
576
|
+
* @default 0
|
|
577
|
+
*/
|
|
578
|
+
consecutiveFailures: number;
|
|
579
|
+
/**
|
|
580
|
+
* Format: uuid
|
|
581
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
582
|
+
*/
|
|
583
|
+
createdBy?: string | null;
|
|
584
|
+
/**
|
|
585
|
+
* Format: date-time
|
|
586
|
+
* @description Timestamp when the configuration was created.
|
|
587
|
+
*/
|
|
588
|
+
createdAt: string;
|
|
589
|
+
/**
|
|
590
|
+
* Format: date-time
|
|
591
|
+
* @description Timestamp when the configuration was last changed.
|
|
592
|
+
*/
|
|
593
|
+
updatedAt: string;
|
|
594
|
+
/**
|
|
595
|
+
* Format: date-time
|
|
596
|
+
* @description Timestamp when the configuration was soft deleted. Null while it remains active.
|
|
597
|
+
*/
|
|
598
|
+
deletedAt?: string | null;
|
|
599
|
+
};
|
|
600
|
+
};
|
|
601
|
+
};
|
|
602
|
+
/** @description Expired JWT token used or insufficient privilege */
|
|
603
|
+
401: {
|
|
604
|
+
headers: {
|
|
605
|
+
[name: string]: unknown;
|
|
606
|
+
};
|
|
607
|
+
content: {
|
|
608
|
+
"text/plain": string;
|
|
609
|
+
};
|
|
610
|
+
};
|
|
611
|
+
/** @description Caller lacks the permission key required for this organization */
|
|
612
|
+
403: {
|
|
613
|
+
headers: {
|
|
614
|
+
[name: string]: unknown;
|
|
615
|
+
};
|
|
616
|
+
content: {
|
|
617
|
+
"text/plain": string;
|
|
618
|
+
};
|
|
619
|
+
};
|
|
620
|
+
/** @description Result not found */
|
|
621
|
+
404: {
|
|
622
|
+
headers: {
|
|
623
|
+
[name: string]: unknown;
|
|
624
|
+
};
|
|
625
|
+
content: {
|
|
626
|
+
"text/plain": string;
|
|
627
|
+
};
|
|
628
|
+
};
|
|
629
|
+
/** @description Internal server error */
|
|
630
|
+
500: {
|
|
631
|
+
headers: {
|
|
632
|
+
[name: string]: unknown;
|
|
633
|
+
};
|
|
634
|
+
content: {
|
|
635
|
+
"text/plain": string;
|
|
636
|
+
};
|
|
637
|
+
};
|
|
638
|
+
};
|
|
639
|
+
};
|
|
640
|
+
upsertOrganizationSmtpConfiguration: {
|
|
641
|
+
parameters: {
|
|
642
|
+
query?: never;
|
|
643
|
+
header?: never;
|
|
644
|
+
path: {
|
|
645
|
+
/** @description Organization ID */
|
|
646
|
+
orgId: string;
|
|
647
|
+
};
|
|
648
|
+
cookie?: never;
|
|
649
|
+
};
|
|
650
|
+
requestBody: {
|
|
651
|
+
content: {
|
|
652
|
+
"application/json": {
|
|
653
|
+
/**
|
|
654
|
+
* Format: uuid
|
|
655
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
656
|
+
*/
|
|
657
|
+
id?: string;
|
|
658
|
+
/** @description Hostname of the organization's SMTP server. */
|
|
659
|
+
host: string;
|
|
660
|
+
/**
|
|
661
|
+
* @description TCP port the organization's SMTP server listens on.
|
|
662
|
+
* @default 587
|
|
663
|
+
*/
|
|
664
|
+
port: number;
|
|
665
|
+
/**
|
|
666
|
+
* @description Transport encryption to negotiate. `starttls` upgrades a cleartext connection (typically port 587), `tls` opens an implicit TLS connection (typically port 465), and `none` sends in cleartext.
|
|
667
|
+
* @default starttls
|
|
668
|
+
* @enum {string}
|
|
669
|
+
*/
|
|
670
|
+
encryption?: "starttls" | "tls" | "none";
|
|
671
|
+
/**
|
|
672
|
+
* @description SMTP authentication mechanism. Any mechanism other than `none` requires both a username and a password.
|
|
673
|
+
* @default plain
|
|
674
|
+
* @enum {string}
|
|
675
|
+
*/
|
|
676
|
+
authMechanism?: "plain" | "cram-md5" | "none";
|
|
677
|
+
/** @description Username presented to the organization's SMTP server. */
|
|
678
|
+
username?: string;
|
|
679
|
+
/** @description Password presented to the organization's SMTP server. Write-only. `***` or an empty string preserves the stored password, so a client may round-trip a read without erasing the credential. */
|
|
680
|
+
password?: string;
|
|
681
|
+
/**
|
|
682
|
+
* Format: email
|
|
683
|
+
* @description Address the organization's mail is sent from. Changing it resets from-domain verification.
|
|
684
|
+
*/
|
|
685
|
+
fromAddress: string;
|
|
686
|
+
/** @description Display name shown alongside the from address. */
|
|
687
|
+
fromDisplayName?: string;
|
|
688
|
+
/**
|
|
689
|
+
* Format: email
|
|
690
|
+
* @description Address replies are directed to.
|
|
691
|
+
*/
|
|
692
|
+
replyToAddress?: string;
|
|
693
|
+
/**
|
|
694
|
+
* @description Whether mail is routed through this server. Refused while the from domain is unverified.
|
|
695
|
+
* @default false
|
|
696
|
+
*/
|
|
697
|
+
enabled?: boolean;
|
|
698
|
+
/**
|
|
699
|
+
* @description Whether a message this server fails to accept is re-sent through the provider's shared relay. Disabling it means a failure is a dropped message, account verification and password recovery included.
|
|
700
|
+
* @default true
|
|
701
|
+
*/
|
|
702
|
+
fallbackToProvider?: boolean;
|
|
703
|
+
};
|
|
704
|
+
};
|
|
705
|
+
};
|
|
706
|
+
responses: {
|
|
707
|
+
/** @description The stored SMTP configuration. */
|
|
708
|
+
200: {
|
|
709
|
+
headers: {
|
|
710
|
+
[name: string]: unknown;
|
|
711
|
+
};
|
|
712
|
+
content: {
|
|
713
|
+
"application/json": {
|
|
714
|
+
/**
|
|
715
|
+
* Format: uuid
|
|
716
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
717
|
+
*/
|
|
718
|
+
id: string;
|
|
719
|
+
/**
|
|
720
|
+
* Format: uuid
|
|
721
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
722
|
+
*/
|
|
723
|
+
organizationId: string;
|
|
724
|
+
/** @description Hostname of the organization's SMTP server. */
|
|
725
|
+
host: string;
|
|
726
|
+
/**
|
|
727
|
+
* @description TCP port the organization's SMTP server listens on.
|
|
728
|
+
* @default 587
|
|
729
|
+
*/
|
|
730
|
+
port: number;
|
|
731
|
+
/**
|
|
732
|
+
* @description Transport encryption to negotiate. `starttls` upgrades a cleartext connection (typically port 587), `tls` opens an implicit TLS connection (typically port 465), and `none` sends in cleartext and is intended only for an internal relay on a trusted network.
|
|
733
|
+
* @default starttls
|
|
734
|
+
* @enum {string}
|
|
735
|
+
*/
|
|
736
|
+
encryption: "starttls" | "tls" | "none";
|
|
737
|
+
/**
|
|
738
|
+
* @description SMTP authentication mechanism. `none` is permitted only for a relay that authorizes by source address; a configuration using any other mechanism must carry both a username and a password.
|
|
739
|
+
* @default plain
|
|
740
|
+
* @enum {string}
|
|
741
|
+
*/
|
|
742
|
+
authMechanism: "plain" | "cram-md5" | "none";
|
|
743
|
+
/** @description Username presented to the organization's SMTP server. */
|
|
744
|
+
username?: string;
|
|
745
|
+
/** @description Password presented to the organization's SMTP server. Write-only. A read always returns the redaction sentinel `***`; the stored value is encrypted at rest and is never projected into a response. Writing `***` or an empty string preserves the stored password, so a client may round-trip a read without erasing the credential. */
|
|
746
|
+
password?: string;
|
|
747
|
+
/**
|
|
748
|
+
* Format: email
|
|
749
|
+
* @description Address the organization's mail is sent from. Its domain must be verified before the configuration can be enabled.
|
|
750
|
+
*/
|
|
751
|
+
fromAddress: string;
|
|
752
|
+
/** @description Display name shown alongside the from address in the message header. */
|
|
753
|
+
fromDisplayName?: string;
|
|
754
|
+
/**
|
|
755
|
+
* Format: email
|
|
756
|
+
* @description Address replies are directed to. It is also the address carried when a message falls back to the provider relay, which rewrites the from address to the provider's own so the message stays aligned for SPF and DMARC.
|
|
757
|
+
*/
|
|
758
|
+
replyToAddress?: string;
|
|
759
|
+
/**
|
|
760
|
+
* @description Whether mail is routed through this server. Cannot be set while the from domain is unverified.
|
|
761
|
+
* @default false
|
|
762
|
+
*/
|
|
763
|
+
enabled: boolean;
|
|
764
|
+
/**
|
|
765
|
+
* @description Whether a message that this server fails to accept is re-sent through the provider's shared relay. Disabling it means the organization owns delivery entirely and a failure is a dropped message, including account verification and password recovery.
|
|
766
|
+
* @default true
|
|
767
|
+
*/
|
|
768
|
+
fallbackToProvider: boolean;
|
|
769
|
+
/** @description Registrable domain of the from address, held separately as the unit that ownership is proven for. */
|
|
770
|
+
fromDomain?: string;
|
|
771
|
+
/** @description Token the organization publishes in DNS to prove control of the from domain. Not a credential - it authorizes nothing and grants no access. */
|
|
772
|
+
fromDomainVerificationToken?: string;
|
|
773
|
+
/**
|
|
774
|
+
* Format: date-time
|
|
775
|
+
* @description Timestamp at which control of the from domain was last proven. Null while unproven.
|
|
776
|
+
*/
|
|
777
|
+
fromDomainVerifiedAt?: string | null;
|
|
778
|
+
/**
|
|
779
|
+
* @description Health of the configuration. `unverified` means it has never delivered a test message, `verified` means the last delivery attempt succeeded, and `failing` means consecutive failures have opened the circuit and mail is being handled under the fallback setting without dialling this server.
|
|
780
|
+
* @default unverified
|
|
781
|
+
* @enum {string}
|
|
782
|
+
*/
|
|
783
|
+
verificationState: "unverified" | "verified" | "failing";
|
|
784
|
+
/**
|
|
785
|
+
* Format: date-time
|
|
786
|
+
* @description Timestamp of the last message this server accepted.
|
|
787
|
+
*/
|
|
788
|
+
lastSuccessAt?: string | null;
|
|
789
|
+
/**
|
|
790
|
+
* Format: date-time
|
|
791
|
+
* @description Timestamp of the last delivery attempt this server rejected or failed to accept.
|
|
792
|
+
*/
|
|
793
|
+
lastFailureAt?: string | null;
|
|
794
|
+
/**
|
|
795
|
+
* @description Classification of the last failure. Always a classification, never the remote server's own message: the set is closed on purpose, because reporting a remote server's text back to a caller would turn a refusal into an oracle for what the network can reach.
|
|
796
|
+
* @enum {string}
|
|
797
|
+
*/
|
|
798
|
+
lastFailureReason?: "blocked_target" | "connect_refused" | "connect_timeout" | "tls_failed" | "starttls_unsupported" | "auth_rejected" | "relay_rejected_sender" | "relay_rejected_recipient" | "delivery_failed" | "credential_unreadable";
|
|
799
|
+
/**
|
|
800
|
+
* @description Delivery failures since the last success. Drives the circuit that stops dialling a persistently unreachable server.
|
|
801
|
+
* @default 0
|
|
802
|
+
*/
|
|
803
|
+
consecutiveFailures: number;
|
|
804
|
+
/**
|
|
805
|
+
* Format: uuid
|
|
806
|
+
* @description A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
|
|
807
|
+
*/
|
|
808
|
+
createdBy?: string | null;
|
|
809
|
+
/**
|
|
810
|
+
* Format: date-time
|
|
811
|
+
* @description Timestamp when the configuration was created.
|
|
812
|
+
*/
|
|
813
|
+
createdAt: string;
|
|
814
|
+
/**
|
|
815
|
+
* Format: date-time
|
|
816
|
+
* @description Timestamp when the configuration was last changed.
|
|
817
|
+
*/
|
|
818
|
+
updatedAt: string;
|
|
819
|
+
/**
|
|
820
|
+
* Format: date-time
|
|
821
|
+
* @description Timestamp when the configuration was soft deleted. Null while it remains active.
|
|
822
|
+
*/
|
|
823
|
+
deletedAt?: string | null;
|
|
824
|
+
};
|
|
825
|
+
};
|
|
826
|
+
};
|
|
827
|
+
/** @description Invalid request body or request param */
|
|
828
|
+
400: {
|
|
829
|
+
headers: {
|
|
830
|
+
[name: string]: unknown;
|
|
831
|
+
};
|
|
832
|
+
content: {
|
|
833
|
+
"text/plain": string;
|
|
834
|
+
};
|
|
835
|
+
};
|
|
836
|
+
/** @description Expired JWT token used or insufficient privilege */
|
|
837
|
+
401: {
|
|
838
|
+
headers: {
|
|
839
|
+
[name: string]: unknown;
|
|
840
|
+
};
|
|
841
|
+
content: {
|
|
842
|
+
"text/plain": string;
|
|
843
|
+
};
|
|
844
|
+
};
|
|
845
|
+
/** @description Caller lacks the permission key required for this organization */
|
|
846
|
+
403: {
|
|
847
|
+
headers: {
|
|
848
|
+
[name: string]: unknown;
|
|
849
|
+
};
|
|
850
|
+
content: {
|
|
851
|
+
"text/plain": string;
|
|
852
|
+
};
|
|
853
|
+
};
|
|
854
|
+
/** @description Result not found */
|
|
855
|
+
404: {
|
|
856
|
+
headers: {
|
|
857
|
+
[name: string]: unknown;
|
|
858
|
+
};
|
|
859
|
+
content: {
|
|
860
|
+
"text/plain": string;
|
|
861
|
+
};
|
|
862
|
+
};
|
|
863
|
+
/** @description Internal server error */
|
|
864
|
+
500: {
|
|
865
|
+
headers: {
|
|
866
|
+
[name: string]: unknown;
|
|
867
|
+
};
|
|
868
|
+
content: {
|
|
869
|
+
"text/plain": string;
|
|
870
|
+
};
|
|
871
|
+
};
|
|
872
|
+
};
|
|
873
|
+
};
|
|
874
|
+
deleteOrganizationSmtpConfiguration: {
|
|
875
|
+
parameters: {
|
|
876
|
+
query?: never;
|
|
877
|
+
header?: never;
|
|
878
|
+
path: {
|
|
879
|
+
/** @description Organization ID */
|
|
880
|
+
orgId: string;
|
|
881
|
+
};
|
|
882
|
+
cookie?: never;
|
|
883
|
+
};
|
|
884
|
+
requestBody?: never;
|
|
885
|
+
responses: {
|
|
886
|
+
/** @description The configuration was removed. */
|
|
887
|
+
204: {
|
|
888
|
+
headers: {
|
|
889
|
+
[name: string]: unknown;
|
|
890
|
+
};
|
|
891
|
+
content?: never;
|
|
892
|
+
};
|
|
893
|
+
/** @description Expired JWT token used or insufficient privilege */
|
|
894
|
+
401: {
|
|
895
|
+
headers: {
|
|
896
|
+
[name: string]: unknown;
|
|
897
|
+
};
|
|
898
|
+
content: {
|
|
899
|
+
"text/plain": string;
|
|
900
|
+
};
|
|
901
|
+
};
|
|
902
|
+
/** @description Caller lacks the permission key required for this organization */
|
|
903
|
+
403: {
|
|
904
|
+
headers: {
|
|
905
|
+
[name: string]: unknown;
|
|
906
|
+
};
|
|
907
|
+
content: {
|
|
908
|
+
"text/plain": string;
|
|
909
|
+
};
|
|
910
|
+
};
|
|
911
|
+
/** @description Result not found */
|
|
912
|
+
404: {
|
|
913
|
+
headers: {
|
|
914
|
+
[name: string]: unknown;
|
|
915
|
+
};
|
|
916
|
+
content: {
|
|
917
|
+
"text/plain": string;
|
|
918
|
+
};
|
|
919
|
+
};
|
|
920
|
+
/** @description Internal server error */
|
|
921
|
+
500: {
|
|
922
|
+
headers: {
|
|
923
|
+
[name: string]: unknown;
|
|
924
|
+
};
|
|
925
|
+
content: {
|
|
926
|
+
"text/plain": string;
|
|
927
|
+
};
|
|
928
|
+
};
|
|
929
|
+
};
|
|
930
|
+
};
|
|
931
|
+
testOrganizationSmtpConfiguration: {
|
|
932
|
+
parameters: {
|
|
933
|
+
query?: never;
|
|
934
|
+
header?: never;
|
|
935
|
+
path: {
|
|
936
|
+
/** @description Organization ID */
|
|
937
|
+
orgId: string;
|
|
938
|
+
};
|
|
939
|
+
cookie?: never;
|
|
940
|
+
};
|
|
941
|
+
requestBody?: {
|
|
942
|
+
content: {
|
|
943
|
+
"application/json": {
|
|
944
|
+
/**
|
|
945
|
+
* Format: email
|
|
946
|
+
* @description Recipient of the test message. Defaults to the calling administrator's own address.
|
|
947
|
+
*/
|
|
948
|
+
to?: string;
|
|
949
|
+
};
|
|
950
|
+
};
|
|
951
|
+
};
|
|
952
|
+
responses: {
|
|
953
|
+
/** @description The classified outcome of the delivery attempt. */
|
|
954
|
+
200: {
|
|
955
|
+
headers: {
|
|
956
|
+
[name: string]: unknown;
|
|
957
|
+
};
|
|
958
|
+
content: {
|
|
959
|
+
"application/json": {
|
|
960
|
+
/**
|
|
961
|
+
* @description What happened. `delivered` means the server accepted the message; every other value names the stage that refused it.
|
|
962
|
+
* @enum {string}
|
|
963
|
+
*/
|
|
964
|
+
outcome: "delivered" | "blocked_target" | "connect_refused" | "connect_timeout" | "tls_failed" | "starttls_unsupported" | "auth_rejected" | "relay_rejected_sender" | "relay_rejected_recipient" | "delivery_failed" | "credential_unreadable";
|
|
965
|
+
/** @description Human-readable summary of the outcome, drawn from a fixed set of phrasings. */
|
|
966
|
+
message?: string;
|
|
967
|
+
/**
|
|
968
|
+
* Format: email
|
|
969
|
+
* @description Address the test message was addressed to.
|
|
970
|
+
*/
|
|
971
|
+
sentTo?: string;
|
|
972
|
+
/**
|
|
973
|
+
* Format: date-time
|
|
974
|
+
* @description When the delivery was attempted.
|
|
975
|
+
*/
|
|
976
|
+
testedAt: string;
|
|
977
|
+
};
|
|
978
|
+
};
|
|
979
|
+
};
|
|
980
|
+
/** @description Invalid request body or request param */
|
|
981
|
+
400: {
|
|
982
|
+
headers: {
|
|
983
|
+
[name: string]: unknown;
|
|
984
|
+
};
|
|
985
|
+
content: {
|
|
986
|
+
"text/plain": string;
|
|
987
|
+
};
|
|
988
|
+
};
|
|
989
|
+
/** @description Expired JWT token used or insufficient privilege */
|
|
990
|
+
401: {
|
|
991
|
+
headers: {
|
|
992
|
+
[name: string]: unknown;
|
|
993
|
+
};
|
|
994
|
+
content: {
|
|
995
|
+
"text/plain": string;
|
|
996
|
+
};
|
|
997
|
+
};
|
|
998
|
+
/** @description Caller lacks the permission key required for this organization */
|
|
999
|
+
403: {
|
|
1000
|
+
headers: {
|
|
1001
|
+
[name: string]: unknown;
|
|
1002
|
+
};
|
|
1003
|
+
content: {
|
|
1004
|
+
"text/plain": string;
|
|
1005
|
+
};
|
|
1006
|
+
};
|
|
1007
|
+
/** @description Result not found */
|
|
1008
|
+
404: {
|
|
1009
|
+
headers: {
|
|
1010
|
+
[name: string]: unknown;
|
|
1011
|
+
};
|
|
1012
|
+
content: {
|
|
1013
|
+
"text/plain": string;
|
|
1014
|
+
};
|
|
1015
|
+
};
|
|
1016
|
+
/** @description Too many attempts for this organization */
|
|
1017
|
+
429: {
|
|
1018
|
+
headers: {
|
|
1019
|
+
[name: string]: unknown;
|
|
1020
|
+
};
|
|
1021
|
+
content: {
|
|
1022
|
+
"text/plain": string;
|
|
1023
|
+
};
|
|
1024
|
+
};
|
|
1025
|
+
/** @description Internal server error */
|
|
1026
|
+
500: {
|
|
1027
|
+
headers: {
|
|
1028
|
+
[name: string]: unknown;
|
|
1029
|
+
};
|
|
1030
|
+
content: {
|
|
1031
|
+
"text/plain": string;
|
|
1032
|
+
};
|
|
1033
|
+
};
|
|
1034
|
+
};
|
|
1035
|
+
};
|
|
1036
|
+
getOrganizationSmtpDomainVerification: {
|
|
1037
|
+
parameters: {
|
|
1038
|
+
query?: never;
|
|
1039
|
+
header?: never;
|
|
1040
|
+
path: {
|
|
1041
|
+
/** @description Organization ID */
|
|
1042
|
+
orgId: string;
|
|
1043
|
+
};
|
|
1044
|
+
cookie?: never;
|
|
1045
|
+
};
|
|
1046
|
+
requestBody?: never;
|
|
1047
|
+
responses: {
|
|
1048
|
+
/** @description The verification challenge and its current state. */
|
|
1049
|
+
200: {
|
|
1050
|
+
headers: {
|
|
1051
|
+
[name: string]: unknown;
|
|
1052
|
+
};
|
|
1053
|
+
content: {
|
|
1054
|
+
"application/json": {
|
|
1055
|
+
/** @description Registrable domain the proof applies to. */
|
|
1056
|
+
domain: string;
|
|
1057
|
+
/**
|
|
1058
|
+
* @description How the domain is proven. `custom-domain` means it matches the organization's own registered custom domain and needs no record; `dns-txt` means the record below must be published.
|
|
1059
|
+
* @enum {string}
|
|
1060
|
+
*/
|
|
1061
|
+
method: "custom-domain" | "dns-txt";
|
|
1062
|
+
/** @description Fully qualified name of the TXT record to publish. */
|
|
1063
|
+
recordName?: string;
|
|
1064
|
+
/** @description Value the TXT record must carry. */
|
|
1065
|
+
recordValue?: string;
|
|
1066
|
+
/** @description Whether control of the domain is currently proven. */
|
|
1067
|
+
verified: boolean;
|
|
1068
|
+
/**
|
|
1069
|
+
* Format: date-time
|
|
1070
|
+
* @description When control was last proven. Null while unproven.
|
|
1071
|
+
*/
|
|
1072
|
+
verifiedAt?: string | null;
|
|
1073
|
+
/**
|
|
1074
|
+
* @description Why the last check did not prove control.
|
|
1075
|
+
* @enum {string}
|
|
1076
|
+
*/
|
|
1077
|
+
failureReason?: "record_not_found" | "record_mismatch" | "lookup_failed" | "domain_reserved";
|
|
1078
|
+
};
|
|
1079
|
+
};
|
|
1080
|
+
};
|
|
1081
|
+
/** @description Expired JWT token used or insufficient privilege */
|
|
1082
|
+
401: {
|
|
1083
|
+
headers: {
|
|
1084
|
+
[name: string]: unknown;
|
|
1085
|
+
};
|
|
1086
|
+
content: {
|
|
1087
|
+
"text/plain": string;
|
|
1088
|
+
};
|
|
1089
|
+
};
|
|
1090
|
+
/** @description Caller lacks the permission key required for this organization */
|
|
1091
|
+
403: {
|
|
1092
|
+
headers: {
|
|
1093
|
+
[name: string]: unknown;
|
|
1094
|
+
};
|
|
1095
|
+
content: {
|
|
1096
|
+
"text/plain": string;
|
|
1097
|
+
};
|
|
1098
|
+
};
|
|
1099
|
+
/** @description Result not found */
|
|
1100
|
+
404: {
|
|
1101
|
+
headers: {
|
|
1102
|
+
[name: string]: unknown;
|
|
1103
|
+
};
|
|
1104
|
+
content: {
|
|
1105
|
+
"text/plain": string;
|
|
1106
|
+
};
|
|
1107
|
+
};
|
|
1108
|
+
/** @description Internal server error */
|
|
1109
|
+
500: {
|
|
1110
|
+
headers: {
|
|
1111
|
+
[name: string]: unknown;
|
|
1112
|
+
};
|
|
1113
|
+
content: {
|
|
1114
|
+
"text/plain": string;
|
|
1115
|
+
};
|
|
1116
|
+
};
|
|
1117
|
+
};
|
|
1118
|
+
};
|
|
1119
|
+
verifyOrganizationSmtpDomain: {
|
|
1120
|
+
parameters: {
|
|
1121
|
+
query?: never;
|
|
1122
|
+
header?: never;
|
|
1123
|
+
path: {
|
|
1124
|
+
/** @description Organization ID */
|
|
1125
|
+
orgId: string;
|
|
1126
|
+
};
|
|
1127
|
+
cookie?: never;
|
|
1128
|
+
};
|
|
1129
|
+
requestBody?: never;
|
|
1130
|
+
responses: {
|
|
1131
|
+
/** @description The outcome of the verification check. */
|
|
1132
|
+
200: {
|
|
1133
|
+
headers: {
|
|
1134
|
+
[name: string]: unknown;
|
|
1135
|
+
};
|
|
1136
|
+
content: {
|
|
1137
|
+
"application/json": {
|
|
1138
|
+
/** @description Registrable domain the proof applies to. */
|
|
1139
|
+
domain: string;
|
|
1140
|
+
/**
|
|
1141
|
+
* @description How the domain is proven. `custom-domain` means it matches the organization's own registered custom domain and needs no record; `dns-txt` means the record below must be published.
|
|
1142
|
+
* @enum {string}
|
|
1143
|
+
*/
|
|
1144
|
+
method: "custom-domain" | "dns-txt";
|
|
1145
|
+
/** @description Fully qualified name of the TXT record to publish. */
|
|
1146
|
+
recordName?: string;
|
|
1147
|
+
/** @description Value the TXT record must carry. */
|
|
1148
|
+
recordValue?: string;
|
|
1149
|
+
/** @description Whether control of the domain is currently proven. */
|
|
1150
|
+
verified: boolean;
|
|
1151
|
+
/**
|
|
1152
|
+
* Format: date-time
|
|
1153
|
+
* @description When control was last proven. Null while unproven.
|
|
1154
|
+
*/
|
|
1155
|
+
verifiedAt?: string | null;
|
|
1156
|
+
/**
|
|
1157
|
+
* @description Why the last check did not prove control.
|
|
1158
|
+
* @enum {string}
|
|
1159
|
+
*/
|
|
1160
|
+
failureReason?: "record_not_found" | "record_mismatch" | "lookup_failed" | "domain_reserved";
|
|
1161
|
+
};
|
|
1162
|
+
};
|
|
1163
|
+
};
|
|
1164
|
+
/** @description Invalid request body or request param */
|
|
1165
|
+
400: {
|
|
1166
|
+
headers: {
|
|
1167
|
+
[name: string]: unknown;
|
|
1168
|
+
};
|
|
1169
|
+
content: {
|
|
1170
|
+
"text/plain": string;
|
|
1171
|
+
};
|
|
1172
|
+
};
|
|
1173
|
+
/** @description Expired JWT token used or insufficient privilege */
|
|
1174
|
+
401: {
|
|
1175
|
+
headers: {
|
|
1176
|
+
[name: string]: unknown;
|
|
1177
|
+
};
|
|
1178
|
+
content: {
|
|
1179
|
+
"text/plain": string;
|
|
1180
|
+
};
|
|
1181
|
+
};
|
|
1182
|
+
/** @description Caller lacks the permission key required for this organization */
|
|
1183
|
+
403: {
|
|
1184
|
+
headers: {
|
|
1185
|
+
[name: string]: unknown;
|
|
1186
|
+
};
|
|
1187
|
+
content: {
|
|
1188
|
+
"text/plain": string;
|
|
1189
|
+
};
|
|
1190
|
+
};
|
|
1191
|
+
/** @description Result not found */
|
|
1192
|
+
404: {
|
|
1193
|
+
headers: {
|
|
1194
|
+
[name: string]: unknown;
|
|
1195
|
+
};
|
|
1196
|
+
content: {
|
|
1197
|
+
"text/plain": string;
|
|
1198
|
+
};
|
|
1199
|
+
};
|
|
1200
|
+
/** @description Too many attempts for this organization */
|
|
1201
|
+
429: {
|
|
1202
|
+
headers: {
|
|
1203
|
+
[name: string]: unknown;
|
|
1204
|
+
};
|
|
1205
|
+
content: {
|
|
1206
|
+
"text/plain": string;
|
|
1207
|
+
};
|
|
1208
|
+
};
|
|
1209
|
+
/** @description Internal server error */
|
|
1210
|
+
500: {
|
|
1211
|
+
headers: {
|
|
1212
|
+
[name: string]: unknown;
|
|
1213
|
+
};
|
|
1214
|
+
content: {
|
|
1215
|
+
"text/plain": string;
|
|
1216
|
+
};
|
|
1217
|
+
};
|
|
1218
|
+
};
|
|
1219
|
+
};
|
|
1220
|
+
}
|