@faable/auth-sdk 2.7.82 → 2.7.83
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/api/generated-client.d.ts +223 -3
- package/dist/api/generated-client.js +75 -0
- package/dist/api/types.d.ts +673 -1
- package/dist/version.js +2 -2
- package/package.json +1 -1
- package/spec/openapi.json +1475 -251
package/dist/api/types.d.ts
CHANGED
|
@@ -1308,6 +1308,66 @@ export interface paths {
|
|
|
1308
1308
|
patch?: never;
|
|
1309
1309
|
trace?: never;
|
|
1310
1310
|
};
|
|
1311
|
+
"/organization/{organization_id}/domain": {
|
|
1312
|
+
parameters: {
|
|
1313
|
+
query?: never;
|
|
1314
|
+
header?: never;
|
|
1315
|
+
path?: never;
|
|
1316
|
+
cookie?: never;
|
|
1317
|
+
};
|
|
1318
|
+
get?: never;
|
|
1319
|
+
put?: never;
|
|
1320
|
+
/**
|
|
1321
|
+
* Claim an email domain for an Organization
|
|
1322
|
+
* @description Adds the domain unverified, with the `verification_token` its TXT record must hold. Idempotent. Nothing changes for anyone until the domain is verified.
|
|
1323
|
+
*/
|
|
1324
|
+
post: operations["organization/addDomain"];
|
|
1325
|
+
delete?: never;
|
|
1326
|
+
options?: never;
|
|
1327
|
+
head?: never;
|
|
1328
|
+
patch?: never;
|
|
1329
|
+
trace?: never;
|
|
1330
|
+
};
|
|
1331
|
+
"/organization/{organization_id}/domain/{domain}/verify": {
|
|
1332
|
+
parameters: {
|
|
1333
|
+
query?: never;
|
|
1334
|
+
header?: never;
|
|
1335
|
+
path?: never;
|
|
1336
|
+
cookie?: never;
|
|
1337
|
+
};
|
|
1338
|
+
get?: never;
|
|
1339
|
+
put?: never;
|
|
1340
|
+
/**
|
|
1341
|
+
* Verify an Organization's email domain
|
|
1342
|
+
* @description Looks up the TXT record `_faable-challenge.<domain>` and, when it holds `faable-verification=<verification_token>`, marks the domain verified. Pro plan (`plan_required`; `plan_unavailable` when the plan cannot be checked). A domain is verified by one organization of the tenant at most (`organization_domain_taken`).
|
|
1343
|
+
*/
|
|
1344
|
+
post: operations["organization/verifyDomain"];
|
|
1345
|
+
delete?: never;
|
|
1346
|
+
options?: never;
|
|
1347
|
+
head?: never;
|
|
1348
|
+
patch?: never;
|
|
1349
|
+
trace?: never;
|
|
1350
|
+
};
|
|
1351
|
+
"/organization/{organization_id}/domain/{domain}": {
|
|
1352
|
+
parameters: {
|
|
1353
|
+
query?: never;
|
|
1354
|
+
header?: never;
|
|
1355
|
+
path?: never;
|
|
1356
|
+
cookie?: never;
|
|
1357
|
+
};
|
|
1358
|
+
get?: never;
|
|
1359
|
+
put?: never;
|
|
1360
|
+
post?: never;
|
|
1361
|
+
/**
|
|
1362
|
+
* Remove an email domain from an Organization
|
|
1363
|
+
* @description Removes the domain, verified or not. Logins of people already in the organization are unaffected.
|
|
1364
|
+
*/
|
|
1365
|
+
delete: operations["organization/removeDomain"];
|
|
1366
|
+
options?: never;
|
|
1367
|
+
head?: never;
|
|
1368
|
+
patch?: never;
|
|
1369
|
+
trace?: never;
|
|
1370
|
+
};
|
|
1311
1371
|
"/teammember": {
|
|
1312
1372
|
parameters: {
|
|
1313
1373
|
query?: never;
|
|
@@ -5791,6 +5851,18 @@ export interface components {
|
|
|
5791
5851
|
description: string | null;
|
|
5792
5852
|
/** @description Optional URL of the organization logo. */
|
|
5793
5853
|
logo_url: string | null;
|
|
5854
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
5855
|
+
domains: {
|
|
5856
|
+
/** @example acme.com */
|
|
5857
|
+
domain: string;
|
|
5858
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
5859
|
+
verification_token: string;
|
|
5860
|
+
/**
|
|
5861
|
+
* Format: date-time
|
|
5862
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
5863
|
+
*/
|
|
5864
|
+
verified_at: string | null;
|
|
5865
|
+
}[];
|
|
5794
5866
|
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
5795
5867
|
admins: string[];
|
|
5796
5868
|
/** @description Object is related with this account */
|
|
@@ -7256,6 +7328,12 @@ export interface components {
|
|
|
7256
7328
|
* - `already_member` (400): The user is already a member of the team.
|
|
7257
7329
|
* - `not_a_member` (404): The user is not a member of the team.
|
|
7258
7330
|
* - `registration_disabled` (403): Dynamic client registration is turned off for this tenant. Create the client from the dashboard or the Management API, or turn on `dynamic_client_registration_enabled`.
|
|
7331
|
+
* - `invalid_email_domain` (400): Not an email domain this organization can claim: it must be a plain domain name (`acme.com`), lowercase, without scheme, path or wildcard.
|
|
7332
|
+
* - `public_email_domain` (400): A public email provider (gmail.com, outlook.com…) cannot belong to an organization: anyone can have an address there.
|
|
7333
|
+
* - `organization_domain_not_found` (404): The organization has no such domain.
|
|
7334
|
+
* - `organization_domain_taken` (409): Another organization of this tenant already verified this domain. A domain belongs to one organization.
|
|
7335
|
+
* - `organization_domain_unverified` (400): The TXT record was not found or does not hold the expected value yet. `details.record` says what was expected and what resolves now; DNS can take a few minutes to propagate.
|
|
7336
|
+
* - `plan_unavailable` (503): The plan could not be checked right now, and this setting is only for paid plans. Try again in a minute.
|
|
7259
7337
|
* - `organization_not_found` (404): No organization with that id in this account.
|
|
7260
7338
|
* - `invalid_user` (400): The user does not exist in this account.
|
|
7261
7339
|
* - `not_an_organization_admin` (404): The user is not an admin of the organization.
|
|
@@ -7273,7 +7351,7 @@ export interface components {
|
|
|
7273
7351
|
* - `delivery_in_progress` (409): The delivery is being attempted right now; retry the redeliver in a minute.
|
|
7274
7352
|
* @enum {string}
|
|
7275
7353
|
*/
|
|
7276
|
-
ErrorCode: "bad_request" | "validation_error" | "unauthorized" | "payment_required" | "forbidden" | "not_found" | "method_not_allowed" | "conflict" | "payload_too_large" | "unsupported_media_type" | "unprocessable_entity" | "too_many_requests" | "internal_error" | "already_exists" | "invalid_id" | "account_not_found" | "invalid_query" | "search_not_supported" | "invalid_expand" | "access_denied" | "insufficient_scope" | "team_required" | "account_limit_reached" | "invalid_project_id" | "account_transfer_refused" | "email_sender_domain_not_allowed" | "plan_required" | "invalid_canonical_host" | "canonical_host_breaks_passkeys" | "not_logged_in" | "session_already_revoked" | "invalid_token" | "not_owner" | "user_suspended" | "invalid_credentials" | "login_denied" | "signup_denied" | "client_credentials_denied" | "m2m_quota_exceeded" | "signup_disabled" | "email_taken" | "username_taken" | "invalid_username" | "invalid_email" | "invalid_name" | "same_email" | "user_has_no_email" | "password_too_weak" | "invalid_password_hash" | "weak_password_hash" | "invalid_code" | "invalid_phone" | "phone_changed" | "phone_already_verified" | "sms_unavailable" | "sms_failed" | "invalid_state" | "state_mismatch" | "invalid_ticket" | "ticket_used" | "ticket_expired" | "ticket_not_found" | "credential_not_found" | "invalid_link" | "expired_link" | "invalid_otp" | "invalid_client" | "client_not_found" | "client_mismatch" | "invalid_client_metadata" | "invalid_connection" | "no_database_connection" | "connection_required" | "connection_misconfigured" | "passwordless_unavailable" | "ambiguous_connection" | "invalid_redirect_uri" | "origin_not_allowed" | "audience_not_found" | "system_resource" | "invalid_request" | "invalid_device_code" | "provider_error" | "identity_already_linked" | "identity_link_denied" | "identity_conflict" | "identity_orphaned" | "no_provider_token" | "no_refresh_token" | "action_unavailable" | "login_flow_misconfigured" | "mfa_required" | "step_up_required" | "interaction_required" | "passkey_login_disabled" | "mfa_pending" | "mfa_invalid_code" | "mfa_invalid_recovery_code" | "too_many_attempts" | "too_many_login_attempts" | "totp_not_allowed" | "no_usable_factor" | "factor_not_found" | "factor_already_confirmed" | "invalid_factor" | "session_missing" | "passkey_verification_failed" | "no_passkey_enrolled" | "malformed_credential" | "unknown_passkey" | "invalid_passkey" | "invalid_invite_url" | "invite_email_mismatch" | "invite_email_unverified" | "invite_not_found" | "invite_used" | "already_member" | "not_a_member" | "registration_disabled" | "organization_not_found" | "invalid_user" | "not_an_organization_admin" | "last_organization_admin" | "team_id_unavailable" | "use_team_member_route" | "role_not_found" | "invalid_role" | "flow_not_found" | "revision_not_found" | "invalid_webhook_event" | "invalid_webhook_url" | "not_a_webhook" | "delivery_not_found" | "delivery_in_progress";
|
|
7354
|
+
ErrorCode: "bad_request" | "validation_error" | "unauthorized" | "payment_required" | "forbidden" | "not_found" | "method_not_allowed" | "conflict" | "payload_too_large" | "unsupported_media_type" | "unprocessable_entity" | "too_many_requests" | "internal_error" | "already_exists" | "invalid_id" | "account_not_found" | "invalid_query" | "search_not_supported" | "invalid_expand" | "access_denied" | "insufficient_scope" | "team_required" | "account_limit_reached" | "invalid_project_id" | "account_transfer_refused" | "email_sender_domain_not_allowed" | "plan_required" | "invalid_canonical_host" | "canonical_host_breaks_passkeys" | "not_logged_in" | "session_already_revoked" | "invalid_token" | "not_owner" | "user_suspended" | "invalid_credentials" | "login_denied" | "signup_denied" | "client_credentials_denied" | "m2m_quota_exceeded" | "signup_disabled" | "email_taken" | "username_taken" | "invalid_username" | "invalid_email" | "invalid_name" | "same_email" | "user_has_no_email" | "password_too_weak" | "invalid_password_hash" | "weak_password_hash" | "invalid_code" | "invalid_phone" | "phone_changed" | "phone_already_verified" | "sms_unavailable" | "sms_failed" | "invalid_state" | "state_mismatch" | "invalid_ticket" | "ticket_used" | "ticket_expired" | "ticket_not_found" | "credential_not_found" | "invalid_link" | "expired_link" | "invalid_otp" | "invalid_client" | "client_not_found" | "client_mismatch" | "invalid_client_metadata" | "invalid_connection" | "no_database_connection" | "connection_required" | "connection_misconfigured" | "passwordless_unavailable" | "ambiguous_connection" | "invalid_redirect_uri" | "origin_not_allowed" | "audience_not_found" | "system_resource" | "invalid_request" | "invalid_device_code" | "provider_error" | "identity_already_linked" | "identity_link_denied" | "identity_conflict" | "identity_orphaned" | "no_provider_token" | "no_refresh_token" | "action_unavailable" | "login_flow_misconfigured" | "mfa_required" | "step_up_required" | "interaction_required" | "passkey_login_disabled" | "mfa_pending" | "mfa_invalid_code" | "mfa_invalid_recovery_code" | "too_many_attempts" | "too_many_login_attempts" | "totp_not_allowed" | "no_usable_factor" | "factor_not_found" | "factor_already_confirmed" | "invalid_factor" | "session_missing" | "passkey_verification_failed" | "no_passkey_enrolled" | "malformed_credential" | "unknown_passkey" | "invalid_passkey" | "invalid_invite_url" | "invite_email_mismatch" | "invite_email_unverified" | "invite_not_found" | "invite_used" | "already_member" | "not_a_member" | "registration_disabled" | "invalid_email_domain" | "public_email_domain" | "organization_domain_not_found" | "organization_domain_taken" | "organization_domain_unverified" | "plan_unavailable" | "organization_not_found" | "invalid_user" | "not_an_organization_admin" | "last_organization_admin" | "team_id_unavailable" | "use_team_member_route" | "role_not_found" | "invalid_role" | "flow_not_found" | "revision_not_found" | "invalid_webhook_event" | "invalid_webhook_url" | "not_a_webhook" | "delivery_not_found" | "delivery_in_progress";
|
|
7277
7355
|
/** @description Every error response has this shape. Branch on `error_code`, never on `message`: the message is written for a person and may change. */
|
|
7278
7356
|
ErrorResponse: {
|
|
7279
7357
|
/** @description The HTTP status, repeated. */
|
|
@@ -19015,6 +19093,18 @@ export interface operations {
|
|
|
19015
19093
|
description: string | null;
|
|
19016
19094
|
/** @description Optional URL of the organization logo. */
|
|
19017
19095
|
logo_url: string | null;
|
|
19096
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19097
|
+
domains: {
|
|
19098
|
+
/** @example acme.com */
|
|
19099
|
+
domain: string;
|
|
19100
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19101
|
+
verification_token: string;
|
|
19102
|
+
/**
|
|
19103
|
+
* Format: date-time
|
|
19104
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19105
|
+
*/
|
|
19106
|
+
verified_at: string | null;
|
|
19107
|
+
}[];
|
|
19018
19108
|
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
19019
19109
|
admins: string[];
|
|
19020
19110
|
/** @description Object is related with this account */
|
|
@@ -19151,6 +19241,18 @@ export interface operations {
|
|
|
19151
19241
|
description: string | null;
|
|
19152
19242
|
/** @description Optional URL of the organization logo. */
|
|
19153
19243
|
logo_url: string | null;
|
|
19244
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19245
|
+
domains: {
|
|
19246
|
+
/** @example acme.com */
|
|
19247
|
+
domain: string;
|
|
19248
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19249
|
+
verification_token: string;
|
|
19250
|
+
/**
|
|
19251
|
+
* Format: date-time
|
|
19252
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19253
|
+
*/
|
|
19254
|
+
verified_at: string | null;
|
|
19255
|
+
}[];
|
|
19154
19256
|
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
19155
19257
|
admins: string[];
|
|
19156
19258
|
/** @description Object is related with this account */
|
|
@@ -19312,6 +19414,18 @@ export interface operations {
|
|
|
19312
19414
|
description: string | null;
|
|
19313
19415
|
/** @description Optional URL of the organization logo. */
|
|
19314
19416
|
logo_url: string | null;
|
|
19417
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19418
|
+
domains: {
|
|
19419
|
+
/** @example acme.com */
|
|
19420
|
+
domain: string;
|
|
19421
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19422
|
+
verification_token: string;
|
|
19423
|
+
/**
|
|
19424
|
+
* Format: date-time
|
|
19425
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19426
|
+
*/
|
|
19427
|
+
verified_at: string | null;
|
|
19428
|
+
}[];
|
|
19315
19429
|
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
19316
19430
|
admins: string[];
|
|
19317
19431
|
/** @description Object is related with this account */
|
|
@@ -19454,6 +19568,18 @@ export interface operations {
|
|
|
19454
19568
|
description: string | null;
|
|
19455
19569
|
/** @description Optional URL of the organization logo. */
|
|
19456
19570
|
logo_url: string | null;
|
|
19571
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19572
|
+
domains: {
|
|
19573
|
+
/** @example acme.com */
|
|
19574
|
+
domain: string;
|
|
19575
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19576
|
+
verification_token: string;
|
|
19577
|
+
/**
|
|
19578
|
+
* Format: date-time
|
|
19579
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19580
|
+
*/
|
|
19581
|
+
verified_at: string | null;
|
|
19582
|
+
}[];
|
|
19457
19583
|
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
19458
19584
|
admins: string[];
|
|
19459
19585
|
/** @description Object is related with this account */
|
|
@@ -19604,6 +19730,18 @@ export interface operations {
|
|
|
19604
19730
|
description: string | null;
|
|
19605
19731
|
/** @description Optional URL of the organization logo. */
|
|
19606
19732
|
logo_url: string | null;
|
|
19733
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19734
|
+
domains: {
|
|
19735
|
+
/** @example acme.com */
|
|
19736
|
+
domain: string;
|
|
19737
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19738
|
+
verification_token: string;
|
|
19739
|
+
/**
|
|
19740
|
+
* Format: date-time
|
|
19741
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19742
|
+
*/
|
|
19743
|
+
verified_at: string | null;
|
|
19744
|
+
}[];
|
|
19607
19745
|
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
19608
19746
|
admins: string[];
|
|
19609
19747
|
/** @description Object is related with this account */
|
|
@@ -19745,6 +19883,18 @@ export interface operations {
|
|
|
19745
19883
|
description: string | null;
|
|
19746
19884
|
/** @description Optional URL of the organization logo. */
|
|
19747
19885
|
logo_url: string | null;
|
|
19886
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19887
|
+
domains: {
|
|
19888
|
+
/** @example acme.com */
|
|
19889
|
+
domain: string;
|
|
19890
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19891
|
+
verification_token: string;
|
|
19892
|
+
/**
|
|
19893
|
+
* Format: date-time
|
|
19894
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19895
|
+
*/
|
|
19896
|
+
verified_at: string | null;
|
|
19897
|
+
}[];
|
|
19748
19898
|
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
19749
19899
|
admins: string[];
|
|
19750
19900
|
/** @description Object is related with this account */
|
|
@@ -19861,6 +20011,528 @@ export interface operations {
|
|
|
19861
20011
|
};
|
|
19862
20012
|
};
|
|
19863
20013
|
};
|
|
20014
|
+
"organization/addDomain": {
|
|
20015
|
+
parameters: {
|
|
20016
|
+
query?: never;
|
|
20017
|
+
header?: never;
|
|
20018
|
+
path: {
|
|
20019
|
+
organization_id: string;
|
|
20020
|
+
};
|
|
20021
|
+
cookie?: never;
|
|
20022
|
+
};
|
|
20023
|
+
requestBody: {
|
|
20024
|
+
content: {
|
|
20025
|
+
"application/json": {
|
|
20026
|
+
/**
|
|
20027
|
+
* @description The email domain, as in `alice@<domain>`.
|
|
20028
|
+
* @example acme.com
|
|
20029
|
+
*/
|
|
20030
|
+
domain: string;
|
|
20031
|
+
};
|
|
20032
|
+
};
|
|
20033
|
+
};
|
|
20034
|
+
responses: {
|
|
20035
|
+
/** @description Organization */
|
|
20036
|
+
200: {
|
|
20037
|
+
headers: {
|
|
20038
|
+
[name: string]: unknown;
|
|
20039
|
+
};
|
|
20040
|
+
content: {
|
|
20041
|
+
"application/json": {
|
|
20042
|
+
/** @description Organization ID */
|
|
20043
|
+
id: string;
|
|
20044
|
+
/**
|
|
20045
|
+
* @description Human-readable name of the organization.
|
|
20046
|
+
* @example Acme Inc.
|
|
20047
|
+
*/
|
|
20048
|
+
name: string;
|
|
20049
|
+
/**
|
|
20050
|
+
* @description URL-safe identifier derived from `name`. Unique within the tenant.
|
|
20051
|
+
* @example acme-inc
|
|
20052
|
+
*/
|
|
20053
|
+
slug: string;
|
|
20054
|
+
/** @description Optional free-form description. */
|
|
20055
|
+
description: string | null;
|
|
20056
|
+
/** @description Optional URL of the organization logo. */
|
|
20057
|
+
logo_url: string | null;
|
|
20058
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
20059
|
+
domains: {
|
|
20060
|
+
/** @example acme.com */
|
|
20061
|
+
domain: string;
|
|
20062
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
20063
|
+
verification_token: string;
|
|
20064
|
+
/**
|
|
20065
|
+
* Format: date-time
|
|
20066
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
20067
|
+
*/
|
|
20068
|
+
verified_at: string | null;
|
|
20069
|
+
}[];
|
|
20070
|
+
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
20071
|
+
admins: string[];
|
|
20072
|
+
/** @description Object is related with this account */
|
|
20073
|
+
account: string;
|
|
20074
|
+
/**
|
|
20075
|
+
* @description OrganizationMetadata
|
|
20076
|
+
* @default {}
|
|
20077
|
+
*/
|
|
20078
|
+
metadata: {
|
|
20079
|
+
[key: string]: unknown;
|
|
20080
|
+
};
|
|
20081
|
+
/** @description Organization creation date */
|
|
20082
|
+
createdAt: string;
|
|
20083
|
+
/** @description Organization updated date */
|
|
20084
|
+
updatedAt?: string;
|
|
20085
|
+
};
|
|
20086
|
+
};
|
|
20087
|
+
};
|
|
20088
|
+
/**
|
|
20089
|
+
* @description `invalid_email_domain` — Not an email domain this organization can claim: it must be a plain domain name (`acme.com`), lowercase, without scheme, path or wildcard.
|
|
20090
|
+
*
|
|
20091
|
+
* `public_email_domain` — A public email provider (gmail.com, outlook.com…) cannot belong to an organization: anyone can have an address there.
|
|
20092
|
+
*
|
|
20093
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
20094
|
+
*/
|
|
20095
|
+
400: {
|
|
20096
|
+
headers: {
|
|
20097
|
+
[name: string]: unknown;
|
|
20098
|
+
};
|
|
20099
|
+
content: {
|
|
20100
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20101
|
+
/** @enum {string} */
|
|
20102
|
+
error_code?: "invalid_email_domain" | "public_email_domain" | "validation_error";
|
|
20103
|
+
};
|
|
20104
|
+
};
|
|
20105
|
+
};
|
|
20106
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
20107
|
+
401: {
|
|
20108
|
+
headers: {
|
|
20109
|
+
[name: string]: unknown;
|
|
20110
|
+
};
|
|
20111
|
+
content: {
|
|
20112
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20113
|
+
/** @enum {string} */
|
|
20114
|
+
error_code?: "unauthorized";
|
|
20115
|
+
};
|
|
20116
|
+
};
|
|
20117
|
+
};
|
|
20118
|
+
/**
|
|
20119
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
20120
|
+
*
|
|
20121
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
20122
|
+
*
|
|
20123
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
20124
|
+
*/
|
|
20125
|
+
403: {
|
|
20126
|
+
headers: {
|
|
20127
|
+
[name: string]: unknown;
|
|
20128
|
+
};
|
|
20129
|
+
content: {
|
|
20130
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20131
|
+
/** @enum {string} */
|
|
20132
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
20133
|
+
};
|
|
20134
|
+
};
|
|
20135
|
+
};
|
|
20136
|
+
/**
|
|
20137
|
+
* @description `organization_not_found` — No organization with that id in this account.
|
|
20138
|
+
*
|
|
20139
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
20140
|
+
*/
|
|
20141
|
+
404: {
|
|
20142
|
+
headers: {
|
|
20143
|
+
[name: string]: unknown;
|
|
20144
|
+
};
|
|
20145
|
+
content: {
|
|
20146
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20147
|
+
/** @enum {string} */
|
|
20148
|
+
error_code?: "organization_not_found" | "account_not_found";
|
|
20149
|
+
};
|
|
20150
|
+
};
|
|
20151
|
+
};
|
|
20152
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
20153
|
+
429: {
|
|
20154
|
+
headers: {
|
|
20155
|
+
[name: string]: unknown;
|
|
20156
|
+
};
|
|
20157
|
+
content: {
|
|
20158
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20159
|
+
/** @enum {string} */
|
|
20160
|
+
error_code?: "too_many_requests";
|
|
20161
|
+
};
|
|
20162
|
+
};
|
|
20163
|
+
};
|
|
20164
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
20165
|
+
500: {
|
|
20166
|
+
headers: {
|
|
20167
|
+
[name: string]: unknown;
|
|
20168
|
+
};
|
|
20169
|
+
content: {
|
|
20170
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20171
|
+
/** @enum {string} */
|
|
20172
|
+
error_code?: "internal_error";
|
|
20173
|
+
};
|
|
20174
|
+
};
|
|
20175
|
+
};
|
|
20176
|
+
};
|
|
20177
|
+
};
|
|
20178
|
+
"organization/verifyDomain": {
|
|
20179
|
+
parameters: {
|
|
20180
|
+
query?: never;
|
|
20181
|
+
header?: never;
|
|
20182
|
+
path: {
|
|
20183
|
+
organization_id: string;
|
|
20184
|
+
domain: string;
|
|
20185
|
+
};
|
|
20186
|
+
cookie?: never;
|
|
20187
|
+
};
|
|
20188
|
+
requestBody?: never;
|
|
20189
|
+
responses: {
|
|
20190
|
+
/** @description Default Response */
|
|
20191
|
+
200: {
|
|
20192
|
+
headers: {
|
|
20193
|
+
[name: string]: unknown;
|
|
20194
|
+
};
|
|
20195
|
+
content: {
|
|
20196
|
+
"application/json": {
|
|
20197
|
+
/** @description Organization */
|
|
20198
|
+
organization: {
|
|
20199
|
+
/** @description Organization ID */
|
|
20200
|
+
id: string;
|
|
20201
|
+
/**
|
|
20202
|
+
* @description Human-readable name of the organization.
|
|
20203
|
+
* @example Acme Inc.
|
|
20204
|
+
*/
|
|
20205
|
+
name: string;
|
|
20206
|
+
/**
|
|
20207
|
+
* @description URL-safe identifier derived from `name`. Unique within the tenant.
|
|
20208
|
+
* @example acme-inc
|
|
20209
|
+
*/
|
|
20210
|
+
slug: string;
|
|
20211
|
+
/** @description Optional free-form description. */
|
|
20212
|
+
description: string | null;
|
|
20213
|
+
/** @description Optional URL of the organization logo. */
|
|
20214
|
+
logo_url: string | null;
|
|
20215
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
20216
|
+
domains: {
|
|
20217
|
+
/** @example acme.com */
|
|
20218
|
+
domain: string;
|
|
20219
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
20220
|
+
verification_token: string;
|
|
20221
|
+
/**
|
|
20222
|
+
* Format: date-time
|
|
20223
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
20224
|
+
*/
|
|
20225
|
+
verified_at: string | null;
|
|
20226
|
+
}[];
|
|
20227
|
+
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
20228
|
+
admins: string[];
|
|
20229
|
+
/** @description Object is related with this account */
|
|
20230
|
+
account: string;
|
|
20231
|
+
/**
|
|
20232
|
+
* @description OrganizationMetadata
|
|
20233
|
+
* @default {}
|
|
20234
|
+
*/
|
|
20235
|
+
metadata: {
|
|
20236
|
+
[key: string]: unknown;
|
|
20237
|
+
};
|
|
20238
|
+
/** @description Organization creation date */
|
|
20239
|
+
createdAt: string;
|
|
20240
|
+
/** @description Organization updated date */
|
|
20241
|
+
updatedAt?: string;
|
|
20242
|
+
};
|
|
20243
|
+
/** @description `null` when the domain was already verified. */
|
|
20244
|
+
record: {
|
|
20245
|
+
/** @enum {string} */
|
|
20246
|
+
type: "TXT";
|
|
20247
|
+
host: string;
|
|
20248
|
+
expected: string;
|
|
20249
|
+
observed: string[];
|
|
20250
|
+
ok: boolean;
|
|
20251
|
+
} | null;
|
|
20252
|
+
};
|
|
20253
|
+
};
|
|
20254
|
+
};
|
|
20255
|
+
/**
|
|
20256
|
+
* @description `organization_domain_unverified` — The TXT record was not found or does not hold the expected value yet. `details.record` says what was expected and what resolves now; DNS can take a few minutes to propagate.
|
|
20257
|
+
*
|
|
20258
|
+
* `invalid_email_domain` — Not an email domain this organization can claim: it must be a plain domain name (`acme.com`), lowercase, without scheme, path or wildcard.
|
|
20259
|
+
*
|
|
20260
|
+
* `public_email_domain` — A public email provider (gmail.com, outlook.com…) cannot belong to an organization: anyone can have an address there.
|
|
20261
|
+
*
|
|
20262
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
20263
|
+
*/
|
|
20264
|
+
400: {
|
|
20265
|
+
headers: {
|
|
20266
|
+
[name: string]: unknown;
|
|
20267
|
+
};
|
|
20268
|
+
content: {
|
|
20269
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20270
|
+
/** @enum {string} */
|
|
20271
|
+
error_code?: "organization_domain_unverified" | "invalid_email_domain" | "public_email_domain" | "validation_error";
|
|
20272
|
+
};
|
|
20273
|
+
};
|
|
20274
|
+
};
|
|
20275
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
20276
|
+
401: {
|
|
20277
|
+
headers: {
|
|
20278
|
+
[name: string]: unknown;
|
|
20279
|
+
};
|
|
20280
|
+
content: {
|
|
20281
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20282
|
+
/** @enum {string} */
|
|
20283
|
+
error_code?: "unauthorized";
|
|
20284
|
+
};
|
|
20285
|
+
};
|
|
20286
|
+
};
|
|
20287
|
+
/** @description `plan_required` — The setting requires a higher plan. `message` says which. */
|
|
20288
|
+
402: {
|
|
20289
|
+
headers: {
|
|
20290
|
+
[name: string]: unknown;
|
|
20291
|
+
};
|
|
20292
|
+
content: {
|
|
20293
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20294
|
+
/** @enum {string} */
|
|
20295
|
+
error_code?: "plan_required";
|
|
20296
|
+
};
|
|
20297
|
+
};
|
|
20298
|
+
};
|
|
20299
|
+
/**
|
|
20300
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
20301
|
+
*
|
|
20302
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
20303
|
+
*
|
|
20304
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
20305
|
+
*/
|
|
20306
|
+
403: {
|
|
20307
|
+
headers: {
|
|
20308
|
+
[name: string]: unknown;
|
|
20309
|
+
};
|
|
20310
|
+
content: {
|
|
20311
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20312
|
+
/** @enum {string} */
|
|
20313
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
20314
|
+
};
|
|
20315
|
+
};
|
|
20316
|
+
};
|
|
20317
|
+
/**
|
|
20318
|
+
* @description `organization_not_found` — No organization with that id in this account.
|
|
20319
|
+
*
|
|
20320
|
+
* `organization_domain_not_found` — The organization has no such domain.
|
|
20321
|
+
*
|
|
20322
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
20323
|
+
*/
|
|
20324
|
+
404: {
|
|
20325
|
+
headers: {
|
|
20326
|
+
[name: string]: unknown;
|
|
20327
|
+
};
|
|
20328
|
+
content: {
|
|
20329
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20330
|
+
/** @enum {string} */
|
|
20331
|
+
error_code?: "organization_not_found" | "organization_domain_not_found" | "account_not_found";
|
|
20332
|
+
};
|
|
20333
|
+
};
|
|
20334
|
+
};
|
|
20335
|
+
/** @description `organization_domain_taken` — Another organization of this tenant already verified this domain. A domain belongs to one organization. */
|
|
20336
|
+
409: {
|
|
20337
|
+
headers: {
|
|
20338
|
+
[name: string]: unknown;
|
|
20339
|
+
};
|
|
20340
|
+
content: {
|
|
20341
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20342
|
+
/** @enum {string} */
|
|
20343
|
+
error_code?: "organization_domain_taken";
|
|
20344
|
+
};
|
|
20345
|
+
};
|
|
20346
|
+
};
|
|
20347
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
20348
|
+
429: {
|
|
20349
|
+
headers: {
|
|
20350
|
+
[name: string]: unknown;
|
|
20351
|
+
};
|
|
20352
|
+
content: {
|
|
20353
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20354
|
+
/** @enum {string} */
|
|
20355
|
+
error_code?: "too_many_requests";
|
|
20356
|
+
};
|
|
20357
|
+
};
|
|
20358
|
+
};
|
|
20359
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
20360
|
+
500: {
|
|
20361
|
+
headers: {
|
|
20362
|
+
[name: string]: unknown;
|
|
20363
|
+
};
|
|
20364
|
+
content: {
|
|
20365
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20366
|
+
/** @enum {string} */
|
|
20367
|
+
error_code?: "internal_error";
|
|
20368
|
+
};
|
|
20369
|
+
};
|
|
20370
|
+
};
|
|
20371
|
+
/** @description `plan_unavailable` — The plan could not be checked right now, and this setting is only for paid plans. Try again in a minute. */
|
|
20372
|
+
503: {
|
|
20373
|
+
headers: {
|
|
20374
|
+
[name: string]: unknown;
|
|
20375
|
+
};
|
|
20376
|
+
content: {
|
|
20377
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20378
|
+
/** @enum {string} */
|
|
20379
|
+
error_code?: "plan_unavailable";
|
|
20380
|
+
};
|
|
20381
|
+
};
|
|
20382
|
+
};
|
|
20383
|
+
};
|
|
20384
|
+
};
|
|
20385
|
+
"organization/removeDomain": {
|
|
20386
|
+
parameters: {
|
|
20387
|
+
query?: never;
|
|
20388
|
+
header?: never;
|
|
20389
|
+
path: {
|
|
20390
|
+
organization_id: string;
|
|
20391
|
+
domain: string;
|
|
20392
|
+
};
|
|
20393
|
+
cookie?: never;
|
|
20394
|
+
};
|
|
20395
|
+
requestBody?: never;
|
|
20396
|
+
responses: {
|
|
20397
|
+
/** @description Organization */
|
|
20398
|
+
200: {
|
|
20399
|
+
headers: {
|
|
20400
|
+
[name: string]: unknown;
|
|
20401
|
+
};
|
|
20402
|
+
content: {
|
|
20403
|
+
"application/json": {
|
|
20404
|
+
/** @description Organization ID */
|
|
20405
|
+
id: string;
|
|
20406
|
+
/**
|
|
20407
|
+
* @description Human-readable name of the organization.
|
|
20408
|
+
* @example Acme Inc.
|
|
20409
|
+
*/
|
|
20410
|
+
name: string;
|
|
20411
|
+
/**
|
|
20412
|
+
* @description URL-safe identifier derived from `name`. Unique within the tenant.
|
|
20413
|
+
* @example acme-inc
|
|
20414
|
+
*/
|
|
20415
|
+
slug: string;
|
|
20416
|
+
/** @description Optional free-form description. */
|
|
20417
|
+
description: string | null;
|
|
20418
|
+
/** @description Optional URL of the organization logo. */
|
|
20419
|
+
logo_url: string | null;
|
|
20420
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
20421
|
+
domains: {
|
|
20422
|
+
/** @example acme.com */
|
|
20423
|
+
domain: string;
|
|
20424
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
20425
|
+
verification_token: string;
|
|
20426
|
+
/**
|
|
20427
|
+
* Format: date-time
|
|
20428
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
20429
|
+
*/
|
|
20430
|
+
verified_at: string | null;
|
|
20431
|
+
}[];
|
|
20432
|
+
/** @description Ids of the users who manage the organization: its teams and its identity settings. Being an admin does not grant access to any team; team access is team membership. */
|
|
20433
|
+
admins: string[];
|
|
20434
|
+
/** @description Object is related with this account */
|
|
20435
|
+
account: string;
|
|
20436
|
+
/**
|
|
20437
|
+
* @description OrganizationMetadata
|
|
20438
|
+
* @default {}
|
|
20439
|
+
*/
|
|
20440
|
+
metadata: {
|
|
20441
|
+
[key: string]: unknown;
|
|
20442
|
+
};
|
|
20443
|
+
/** @description Organization creation date */
|
|
20444
|
+
createdAt: string;
|
|
20445
|
+
/** @description Organization updated date */
|
|
20446
|
+
updatedAt?: string;
|
|
20447
|
+
};
|
|
20448
|
+
};
|
|
20449
|
+
};
|
|
20450
|
+
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
20451
|
+
400: {
|
|
20452
|
+
headers: {
|
|
20453
|
+
[name: string]: unknown;
|
|
20454
|
+
};
|
|
20455
|
+
content: {
|
|
20456
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20457
|
+
/** @enum {string} */
|
|
20458
|
+
error_code?: "validation_error";
|
|
20459
|
+
};
|
|
20460
|
+
};
|
|
20461
|
+
};
|
|
20462
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
20463
|
+
401: {
|
|
20464
|
+
headers: {
|
|
20465
|
+
[name: string]: unknown;
|
|
20466
|
+
};
|
|
20467
|
+
content: {
|
|
20468
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20469
|
+
/** @enum {string} */
|
|
20470
|
+
error_code?: "unauthorized";
|
|
20471
|
+
};
|
|
20472
|
+
};
|
|
20473
|
+
};
|
|
20474
|
+
/**
|
|
20475
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
20476
|
+
*
|
|
20477
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
20478
|
+
*
|
|
20479
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
20480
|
+
*/
|
|
20481
|
+
403: {
|
|
20482
|
+
headers: {
|
|
20483
|
+
[name: string]: unknown;
|
|
20484
|
+
};
|
|
20485
|
+
content: {
|
|
20486
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20487
|
+
/** @enum {string} */
|
|
20488
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
20489
|
+
};
|
|
20490
|
+
};
|
|
20491
|
+
};
|
|
20492
|
+
/**
|
|
20493
|
+
* @description `organization_not_found` — No organization with that id in this account.
|
|
20494
|
+
*
|
|
20495
|
+
* `organization_domain_not_found` — The organization has no such domain.
|
|
20496
|
+
*
|
|
20497
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
20498
|
+
*/
|
|
20499
|
+
404: {
|
|
20500
|
+
headers: {
|
|
20501
|
+
[name: string]: unknown;
|
|
20502
|
+
};
|
|
20503
|
+
content: {
|
|
20504
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20505
|
+
/** @enum {string} */
|
|
20506
|
+
error_code?: "organization_not_found" | "organization_domain_not_found" | "account_not_found";
|
|
20507
|
+
};
|
|
20508
|
+
};
|
|
20509
|
+
};
|
|
20510
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
20511
|
+
429: {
|
|
20512
|
+
headers: {
|
|
20513
|
+
[name: string]: unknown;
|
|
20514
|
+
};
|
|
20515
|
+
content: {
|
|
20516
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20517
|
+
/** @enum {string} */
|
|
20518
|
+
error_code?: "too_many_requests";
|
|
20519
|
+
};
|
|
20520
|
+
};
|
|
20521
|
+
};
|
|
20522
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
20523
|
+
500: {
|
|
20524
|
+
headers: {
|
|
20525
|
+
[name: string]: unknown;
|
|
20526
|
+
};
|
|
20527
|
+
content: {
|
|
20528
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20529
|
+
/** @enum {string} */
|
|
20530
|
+
error_code?: "internal_error";
|
|
20531
|
+
};
|
|
20532
|
+
};
|
|
20533
|
+
};
|
|
20534
|
+
};
|
|
20535
|
+
};
|
|
19864
20536
|
"teammember/list": {
|
|
19865
20537
|
parameters: {
|
|
19866
20538
|
query?: {
|