@faable/auth-sdk 2.7.82 → 2.7.84
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/FaableAuthApi.d.ts +4 -0
- package/dist/api/generated-client.d.ts +227 -0
- package/dist/api/generated-client.js +75 -0
- package/dist/api/types.d.ts +992 -1
- package/dist/version.js +2 -2
- package/package.json +1 -1
- package/spec/openapi.json +2863 -894
package/dist/api/types.d.ts
CHANGED
|
@@ -1308,6 +1308,86 @@ 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
|
+
};
|
|
1371
|
+
"/organization/{organization_id}/auto-join": {
|
|
1372
|
+
parameters: {
|
|
1373
|
+
query?: never;
|
|
1374
|
+
header?: never;
|
|
1375
|
+
path?: never;
|
|
1376
|
+
cookie?: never;
|
|
1377
|
+
};
|
|
1378
|
+
get?: never;
|
|
1379
|
+
/**
|
|
1380
|
+
* Set an Organization's auto-join rules
|
|
1381
|
+
* @description Replaces the auto-join rules: whoever signs in with a verified email of one of the verified domains joins these teams (of this organization) with these roles. Nobody already a member is changed. Pro plan to turn it on; an empty list turns it off and is always allowed.
|
|
1382
|
+
*/
|
|
1383
|
+
put: operations["organization/setAutoJoin"];
|
|
1384
|
+
post?: never;
|
|
1385
|
+
delete?: never;
|
|
1386
|
+
options?: never;
|
|
1387
|
+
head?: never;
|
|
1388
|
+
patch?: never;
|
|
1389
|
+
trace?: never;
|
|
1390
|
+
};
|
|
1311
1391
|
"/teammember": {
|
|
1312
1392
|
parameters: {
|
|
1313
1393
|
query?: never;
|
|
@@ -4886,6 +4966,8 @@ export interface components {
|
|
|
4886
4966
|
/** @default null */
|
|
4887
4967
|
response_type: string;
|
|
4888
4968
|
enabled: boolean;
|
|
4969
|
+
/** @description The Organization whose identity provider this is (`organization_…`), or `null`. Only `oidc` connections. Reached by home realm discovery from the organization's verified email domains, and only accepts emails of those domains. Pro plan. */
|
|
4970
|
+
organization?: string | null;
|
|
4889
4971
|
/** @default null */
|
|
4890
4972
|
enabled_clients: string[] | null;
|
|
4891
4973
|
/** @default [] */
|
|
@@ -4948,6 +5030,10 @@ export interface components {
|
|
|
4948
5030
|
client_secret?: string;
|
|
4949
5031
|
issuer?: string;
|
|
4950
5032
|
jwks_url?: string;
|
|
5033
|
+
token_url?: string;
|
|
5034
|
+
userinfo_url?: string;
|
|
5035
|
+
/** @description The Organization whose identity provider this is (`organization_…`), or `null`. Only `oidc` connections. Reached by home realm discovery from the organization's verified email domains, and only accepts emails of those domains. Pro plan. */
|
|
5036
|
+
organization?: string;
|
|
4951
5037
|
scope?: string[];
|
|
4952
5038
|
enabled?: boolean;
|
|
4953
5039
|
claims_mapping?: {
|
|
@@ -5024,6 +5110,7 @@ export interface components {
|
|
|
5024
5110
|
disable_signup?: boolean;
|
|
5025
5111
|
/** @description What users of this database connection sign in with: `email`, `username`, or `email_or_username` (email first, then username). The login looks up only the matching field, and the hosted login screen asks for it — validating the address format under `email`. New database connections default to `email`; a connection created before this setting existed behaves as `email_or_username`. Only meaningful on `database` connections. */
|
|
5026
5112
|
login_identifier?: "email" | "username" | "email_or_username";
|
|
5113
|
+
organization?: string | null;
|
|
5027
5114
|
};
|
|
5028
5115
|
/** @description Presentation metadata for one connection type. Contains no endpoint URLs and no credentials. */
|
|
5029
5116
|
ConnectionTypeInfo: {
|
|
@@ -5791,6 +5878,25 @@ export interface components {
|
|
|
5791
5878
|
description: string | null;
|
|
5792
5879
|
/** @description Optional URL of the organization logo. */
|
|
5793
5880
|
logo_url: string | null;
|
|
5881
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
5882
|
+
domains: {
|
|
5883
|
+
/** @example acme.com */
|
|
5884
|
+
domain: string;
|
|
5885
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
5886
|
+
verification_token: string;
|
|
5887
|
+
/**
|
|
5888
|
+
* Format: date-time
|
|
5889
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
5890
|
+
*/
|
|
5891
|
+
verified_at: string | null;
|
|
5892
|
+
}[];
|
|
5893
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
5894
|
+
auto_join: {
|
|
5895
|
+
/** @description A team of this organization. */
|
|
5896
|
+
team: string;
|
|
5897
|
+
/** @description Role ids the member gets in that team. */
|
|
5898
|
+
roles: string[];
|
|
5899
|
+
}[];
|
|
5794
5900
|
/** @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
5901
|
admins: string[];
|
|
5796
5902
|
/** @description Object is related with this account */
|
|
@@ -7256,6 +7362,14 @@ export interface components {
|
|
|
7256
7362
|
* - `already_member` (400): The user is already a member of the team.
|
|
7257
7363
|
* - `not_a_member` (404): The user is not a member of the team.
|
|
7258
7364
|
* - `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`.
|
|
7365
|
+
* - `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.
|
|
7366
|
+
* - `public_email_domain` (400): A public email provider (gmail.com, outlook.com…) cannot belong to an organization: anyone can have an address there.
|
|
7367
|
+
* - `organization_domain_not_found` (404): The organization has no such domain.
|
|
7368
|
+
* - `organization_domain_taken` (409): Another organization of this tenant already verified this domain. A domain belongs to one organization.
|
|
7369
|
+
* - `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.
|
|
7370
|
+
* - `plan_unavailable` (503): The plan could not be checked right now, and this setting is only for paid plans. Try again in a minute.
|
|
7371
|
+
* - `organization_domain_mismatch` (403): This organization's identity provider can only sign in addresses of the organization's verified email domains.
|
|
7372
|
+
* - `team_not_in_organization` (400): Auto-join can only put people in teams of the same organization. `details.teams` lists the others.
|
|
7259
7373
|
* - `organization_not_found` (404): No organization with that id in this account.
|
|
7260
7374
|
* - `invalid_user` (400): The user does not exist in this account.
|
|
7261
7375
|
* - `not_an_organization_admin` (404): The user is not an admin of the organization.
|
|
@@ -7273,7 +7387,7 @@ export interface components {
|
|
|
7273
7387
|
* - `delivery_in_progress` (409): The delivery is being attempted right now; retry the redeliver in a minute.
|
|
7274
7388
|
* @enum {string}
|
|
7275
7389
|
*/
|
|
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";
|
|
7390
|
+
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_domain_mismatch" | "team_not_in_organization" | "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
7391
|
/** @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
7392
|
ErrorResponse: {
|
|
7279
7393
|
/** @description The HTTP status, repeated. */
|
|
@@ -9860,6 +9974,10 @@ export interface operations {
|
|
|
9860
9974
|
client_secret?: string;
|
|
9861
9975
|
issuer?: string;
|
|
9862
9976
|
jwks_url?: string;
|
|
9977
|
+
token_url?: string;
|
|
9978
|
+
userinfo_url?: string;
|
|
9979
|
+
/** @description The Organization whose identity provider this is (`organization_…`), or `null`. Only `oidc` connections. Reached by home realm discovery from the organization's verified email domains, and only accepts emails of those domains. Pro plan. */
|
|
9980
|
+
organization?: string;
|
|
9863
9981
|
scope?: string[];
|
|
9864
9982
|
enabled?: boolean;
|
|
9865
9983
|
claims_mapping?: {
|
|
@@ -9928,6 +10046,8 @@ export interface operations {
|
|
|
9928
10046
|
/** @default null */
|
|
9929
10047
|
response_type: string;
|
|
9930
10048
|
enabled: boolean;
|
|
10049
|
+
/** @description The Organization whose identity provider this is (`organization_…`), or `null`. Only `oidc` connections. Reached by home realm discovery from the organization's verified email domains, and only accepts emails of those domains. Pro plan. */
|
|
10050
|
+
organization?: string | null;
|
|
9931
10051
|
/** @default null */
|
|
9932
10052
|
enabled_clients: string[] | null;
|
|
9933
10053
|
/** @default [] */
|
|
@@ -10099,6 +10219,8 @@ export interface operations {
|
|
|
10099
10219
|
/** @default null */
|
|
10100
10220
|
response_type: string;
|
|
10101
10221
|
enabled: boolean;
|
|
10222
|
+
/** @description The Organization whose identity provider this is (`organization_…`), or `null`. Only `oidc` connections. Reached by home realm discovery from the organization's verified email domains, and only accepts emails of those domains. Pro plan. */
|
|
10223
|
+
organization?: string | null;
|
|
10102
10224
|
/** @default null */
|
|
10103
10225
|
enabled_clients: string[] | null;
|
|
10104
10226
|
/** @default [] */
|
|
@@ -10283,6 +10405,7 @@ export interface operations {
|
|
|
10283
10405
|
disable_signup?: boolean;
|
|
10284
10406
|
/** @description What users of this database connection sign in with: `email`, `username`, or `email_or_username` (email first, then username). The login looks up only the matching field, and the hosted login screen asks for it — validating the address format under `email`. New database connections default to `email`; a connection created before this setting existed behaves as `email_or_username`. Only meaningful on `database` connections. */
|
|
10285
10407
|
login_identifier?: "email" | "username" | "email_or_username";
|
|
10408
|
+
organization?: string | null;
|
|
10286
10409
|
};
|
|
10287
10410
|
};
|
|
10288
10411
|
};
|
|
@@ -10316,6 +10439,8 @@ export interface operations {
|
|
|
10316
10439
|
/** @default null */
|
|
10317
10440
|
response_type: string;
|
|
10318
10441
|
enabled: boolean;
|
|
10442
|
+
/** @description The Organization whose identity provider this is (`organization_…`), or `null`. Only `oidc` connections. Reached by home realm discovery from the organization's verified email domains, and only accepts emails of those domains. Pro plan. */
|
|
10443
|
+
organization?: string | null;
|
|
10319
10444
|
/** @default null */
|
|
10320
10445
|
enabled_clients: string[] | null;
|
|
10321
10446
|
/** @default [] */
|
|
@@ -10493,6 +10618,8 @@ export interface operations {
|
|
|
10493
10618
|
/** @default null */
|
|
10494
10619
|
response_type: string;
|
|
10495
10620
|
enabled: boolean;
|
|
10621
|
+
/** @description The Organization whose identity provider this is (`organization_…`), or `null`. Only `oidc` connections. Reached by home realm discovery from the organization's verified email domains, and only accepts emails of those domains. Pro plan. */
|
|
10622
|
+
organization?: string | null;
|
|
10496
10623
|
/** @default null */
|
|
10497
10624
|
enabled_clients: string[] | null;
|
|
10498
10625
|
/** @default [] */
|
|
@@ -10814,6 +10941,15 @@ export interface operations {
|
|
|
10814
10941
|
content: {
|
|
10815
10942
|
"application/json": {
|
|
10816
10943
|
ok: boolean;
|
|
10944
|
+
/** @description The identifier is an email of an organization's verified domain, and that organization has its own identity provider: continue with `/authorize?resume_state=<state>&connection=<connection_id>` instead of the method chooser (arch/auth/sso.md F3). */
|
|
10945
|
+
home_realm?: {
|
|
10946
|
+
connection_id: string;
|
|
10947
|
+
organization: {
|
|
10948
|
+
id: string;
|
|
10949
|
+
name: string;
|
|
10950
|
+
logo_url: string | null;
|
|
10951
|
+
};
|
|
10952
|
+
};
|
|
10817
10953
|
};
|
|
10818
10954
|
};
|
|
10819
10955
|
};
|
|
@@ -19015,6 +19151,25 @@ export interface operations {
|
|
|
19015
19151
|
description: string | null;
|
|
19016
19152
|
/** @description Optional URL of the organization logo. */
|
|
19017
19153
|
logo_url: string | null;
|
|
19154
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19155
|
+
domains: {
|
|
19156
|
+
/** @example acme.com */
|
|
19157
|
+
domain: string;
|
|
19158
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19159
|
+
verification_token: string;
|
|
19160
|
+
/**
|
|
19161
|
+
* Format: date-time
|
|
19162
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19163
|
+
*/
|
|
19164
|
+
verified_at: string | null;
|
|
19165
|
+
}[];
|
|
19166
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
19167
|
+
auto_join: {
|
|
19168
|
+
/** @description A team of this organization. */
|
|
19169
|
+
team: string;
|
|
19170
|
+
/** @description Role ids the member gets in that team. */
|
|
19171
|
+
roles: string[];
|
|
19172
|
+
}[];
|
|
19018
19173
|
/** @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
19174
|
admins: string[];
|
|
19020
19175
|
/** @description Object is related with this account */
|
|
@@ -19151,6 +19306,25 @@ export interface operations {
|
|
|
19151
19306
|
description: string | null;
|
|
19152
19307
|
/** @description Optional URL of the organization logo. */
|
|
19153
19308
|
logo_url: string | null;
|
|
19309
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19310
|
+
domains: {
|
|
19311
|
+
/** @example acme.com */
|
|
19312
|
+
domain: string;
|
|
19313
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19314
|
+
verification_token: string;
|
|
19315
|
+
/**
|
|
19316
|
+
* Format: date-time
|
|
19317
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19318
|
+
*/
|
|
19319
|
+
verified_at: string | null;
|
|
19320
|
+
}[];
|
|
19321
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
19322
|
+
auto_join: {
|
|
19323
|
+
/** @description A team of this organization. */
|
|
19324
|
+
team: string;
|
|
19325
|
+
/** @description Role ids the member gets in that team. */
|
|
19326
|
+
roles: string[];
|
|
19327
|
+
}[];
|
|
19154
19328
|
/** @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
19329
|
admins: string[];
|
|
19156
19330
|
/** @description Object is related with this account */
|
|
@@ -19312,6 +19486,25 @@ export interface operations {
|
|
|
19312
19486
|
description: string | null;
|
|
19313
19487
|
/** @description Optional URL of the organization logo. */
|
|
19314
19488
|
logo_url: string | null;
|
|
19489
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19490
|
+
domains: {
|
|
19491
|
+
/** @example acme.com */
|
|
19492
|
+
domain: string;
|
|
19493
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19494
|
+
verification_token: string;
|
|
19495
|
+
/**
|
|
19496
|
+
* Format: date-time
|
|
19497
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19498
|
+
*/
|
|
19499
|
+
verified_at: string | null;
|
|
19500
|
+
}[];
|
|
19501
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
19502
|
+
auto_join: {
|
|
19503
|
+
/** @description A team of this organization. */
|
|
19504
|
+
team: string;
|
|
19505
|
+
/** @description Role ids the member gets in that team. */
|
|
19506
|
+
roles: string[];
|
|
19507
|
+
}[];
|
|
19315
19508
|
/** @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
19509
|
admins: string[];
|
|
19317
19510
|
/** @description Object is related with this account */
|
|
@@ -19454,6 +19647,25 @@ export interface operations {
|
|
|
19454
19647
|
description: string | null;
|
|
19455
19648
|
/** @description Optional URL of the organization logo. */
|
|
19456
19649
|
logo_url: string | null;
|
|
19650
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19651
|
+
domains: {
|
|
19652
|
+
/** @example acme.com */
|
|
19653
|
+
domain: string;
|
|
19654
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19655
|
+
verification_token: string;
|
|
19656
|
+
/**
|
|
19657
|
+
* Format: date-time
|
|
19658
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19659
|
+
*/
|
|
19660
|
+
verified_at: string | null;
|
|
19661
|
+
}[];
|
|
19662
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
19663
|
+
auto_join: {
|
|
19664
|
+
/** @description A team of this organization. */
|
|
19665
|
+
team: string;
|
|
19666
|
+
/** @description Role ids the member gets in that team. */
|
|
19667
|
+
roles: string[];
|
|
19668
|
+
}[];
|
|
19457
19669
|
/** @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
19670
|
admins: string[];
|
|
19459
19671
|
/** @description Object is related with this account */
|
|
@@ -19604,6 +19816,25 @@ export interface operations {
|
|
|
19604
19816
|
description: string | null;
|
|
19605
19817
|
/** @description Optional URL of the organization logo. */
|
|
19606
19818
|
logo_url: string | null;
|
|
19819
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19820
|
+
domains: {
|
|
19821
|
+
/** @example acme.com */
|
|
19822
|
+
domain: string;
|
|
19823
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19824
|
+
verification_token: string;
|
|
19825
|
+
/**
|
|
19826
|
+
* Format: date-time
|
|
19827
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19828
|
+
*/
|
|
19829
|
+
verified_at: string | null;
|
|
19830
|
+
}[];
|
|
19831
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
19832
|
+
auto_join: {
|
|
19833
|
+
/** @description A team of this organization. */
|
|
19834
|
+
team: string;
|
|
19835
|
+
/** @description Role ids the member gets in that team. */
|
|
19836
|
+
roles: string[];
|
|
19837
|
+
}[];
|
|
19607
19838
|
/** @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
19839
|
admins: string[];
|
|
19609
19840
|
/** @description Object is related with this account */
|
|
@@ -19745,6 +19976,25 @@ export interface operations {
|
|
|
19745
19976
|
description: string | null;
|
|
19746
19977
|
/** @description Optional URL of the organization logo. */
|
|
19747
19978
|
logo_url: string | null;
|
|
19979
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
19980
|
+
domains: {
|
|
19981
|
+
/** @example acme.com */
|
|
19982
|
+
domain: string;
|
|
19983
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
19984
|
+
verification_token: string;
|
|
19985
|
+
/**
|
|
19986
|
+
* Format: date-time
|
|
19987
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
19988
|
+
*/
|
|
19989
|
+
verified_at: string | null;
|
|
19990
|
+
}[];
|
|
19991
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
19992
|
+
auto_join: {
|
|
19993
|
+
/** @description A team of this organization. */
|
|
19994
|
+
team: string;
|
|
19995
|
+
/** @description Role ids the member gets in that team. */
|
|
19996
|
+
roles: string[];
|
|
19997
|
+
}[];
|
|
19748
19998
|
/** @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
19999
|
admins: string[];
|
|
19750
20000
|
/** @description Object is related with this account */
|
|
@@ -19861,6 +20111,747 @@ export interface operations {
|
|
|
19861
20111
|
};
|
|
19862
20112
|
};
|
|
19863
20113
|
};
|
|
20114
|
+
"organization/addDomain": {
|
|
20115
|
+
parameters: {
|
|
20116
|
+
query?: never;
|
|
20117
|
+
header?: never;
|
|
20118
|
+
path: {
|
|
20119
|
+
organization_id: string;
|
|
20120
|
+
};
|
|
20121
|
+
cookie?: never;
|
|
20122
|
+
};
|
|
20123
|
+
requestBody: {
|
|
20124
|
+
content: {
|
|
20125
|
+
"application/json": {
|
|
20126
|
+
/**
|
|
20127
|
+
* @description The email domain, as in `alice@<domain>`.
|
|
20128
|
+
* @example acme.com
|
|
20129
|
+
*/
|
|
20130
|
+
domain: string;
|
|
20131
|
+
};
|
|
20132
|
+
};
|
|
20133
|
+
};
|
|
20134
|
+
responses: {
|
|
20135
|
+
/** @description Organization */
|
|
20136
|
+
200: {
|
|
20137
|
+
headers: {
|
|
20138
|
+
[name: string]: unknown;
|
|
20139
|
+
};
|
|
20140
|
+
content: {
|
|
20141
|
+
"application/json": {
|
|
20142
|
+
/** @description Organization ID */
|
|
20143
|
+
id: string;
|
|
20144
|
+
/**
|
|
20145
|
+
* @description Human-readable name of the organization.
|
|
20146
|
+
* @example Acme Inc.
|
|
20147
|
+
*/
|
|
20148
|
+
name: string;
|
|
20149
|
+
/**
|
|
20150
|
+
* @description URL-safe identifier derived from `name`. Unique within the tenant.
|
|
20151
|
+
* @example acme-inc
|
|
20152
|
+
*/
|
|
20153
|
+
slug: string;
|
|
20154
|
+
/** @description Optional free-form description. */
|
|
20155
|
+
description: string | null;
|
|
20156
|
+
/** @description Optional URL of the organization logo. */
|
|
20157
|
+
logo_url: string | null;
|
|
20158
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
20159
|
+
domains: {
|
|
20160
|
+
/** @example acme.com */
|
|
20161
|
+
domain: string;
|
|
20162
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
20163
|
+
verification_token: string;
|
|
20164
|
+
/**
|
|
20165
|
+
* Format: date-time
|
|
20166
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
20167
|
+
*/
|
|
20168
|
+
verified_at: string | null;
|
|
20169
|
+
}[];
|
|
20170
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
20171
|
+
auto_join: {
|
|
20172
|
+
/** @description A team of this organization. */
|
|
20173
|
+
team: string;
|
|
20174
|
+
/** @description Role ids the member gets in that team. */
|
|
20175
|
+
roles: string[];
|
|
20176
|
+
}[];
|
|
20177
|
+
/** @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. */
|
|
20178
|
+
admins: string[];
|
|
20179
|
+
/** @description Object is related with this account */
|
|
20180
|
+
account: string;
|
|
20181
|
+
/**
|
|
20182
|
+
* @description OrganizationMetadata
|
|
20183
|
+
* @default {}
|
|
20184
|
+
*/
|
|
20185
|
+
metadata: {
|
|
20186
|
+
[key: string]: unknown;
|
|
20187
|
+
};
|
|
20188
|
+
/** @description Organization creation date */
|
|
20189
|
+
createdAt: string;
|
|
20190
|
+
/** @description Organization updated date */
|
|
20191
|
+
updatedAt?: string;
|
|
20192
|
+
};
|
|
20193
|
+
};
|
|
20194
|
+
};
|
|
20195
|
+
/**
|
|
20196
|
+
* @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.
|
|
20197
|
+
*
|
|
20198
|
+
* `public_email_domain` — A public email provider (gmail.com, outlook.com…) cannot belong to an organization: anyone can have an address there.
|
|
20199
|
+
*
|
|
20200
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
20201
|
+
*/
|
|
20202
|
+
400: {
|
|
20203
|
+
headers: {
|
|
20204
|
+
[name: string]: unknown;
|
|
20205
|
+
};
|
|
20206
|
+
content: {
|
|
20207
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20208
|
+
/** @enum {string} */
|
|
20209
|
+
error_code?: "invalid_email_domain" | "public_email_domain" | "validation_error";
|
|
20210
|
+
};
|
|
20211
|
+
};
|
|
20212
|
+
};
|
|
20213
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
20214
|
+
401: {
|
|
20215
|
+
headers: {
|
|
20216
|
+
[name: string]: unknown;
|
|
20217
|
+
};
|
|
20218
|
+
content: {
|
|
20219
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20220
|
+
/** @enum {string} */
|
|
20221
|
+
error_code?: "unauthorized";
|
|
20222
|
+
};
|
|
20223
|
+
};
|
|
20224
|
+
};
|
|
20225
|
+
/**
|
|
20226
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
20227
|
+
*
|
|
20228
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
20229
|
+
*
|
|
20230
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
20231
|
+
*/
|
|
20232
|
+
403: {
|
|
20233
|
+
headers: {
|
|
20234
|
+
[name: string]: unknown;
|
|
20235
|
+
};
|
|
20236
|
+
content: {
|
|
20237
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20238
|
+
/** @enum {string} */
|
|
20239
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
20240
|
+
};
|
|
20241
|
+
};
|
|
20242
|
+
};
|
|
20243
|
+
/**
|
|
20244
|
+
* @description `organization_not_found` — No organization with that id in this account.
|
|
20245
|
+
*
|
|
20246
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
20247
|
+
*/
|
|
20248
|
+
404: {
|
|
20249
|
+
headers: {
|
|
20250
|
+
[name: string]: unknown;
|
|
20251
|
+
};
|
|
20252
|
+
content: {
|
|
20253
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20254
|
+
/** @enum {string} */
|
|
20255
|
+
error_code?: "organization_not_found" | "account_not_found";
|
|
20256
|
+
};
|
|
20257
|
+
};
|
|
20258
|
+
};
|
|
20259
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
20260
|
+
429: {
|
|
20261
|
+
headers: {
|
|
20262
|
+
[name: string]: unknown;
|
|
20263
|
+
};
|
|
20264
|
+
content: {
|
|
20265
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20266
|
+
/** @enum {string} */
|
|
20267
|
+
error_code?: "too_many_requests";
|
|
20268
|
+
};
|
|
20269
|
+
};
|
|
20270
|
+
};
|
|
20271
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
20272
|
+
500: {
|
|
20273
|
+
headers: {
|
|
20274
|
+
[name: string]: unknown;
|
|
20275
|
+
};
|
|
20276
|
+
content: {
|
|
20277
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20278
|
+
/** @enum {string} */
|
|
20279
|
+
error_code?: "internal_error";
|
|
20280
|
+
};
|
|
20281
|
+
};
|
|
20282
|
+
};
|
|
20283
|
+
};
|
|
20284
|
+
};
|
|
20285
|
+
"organization/verifyDomain": {
|
|
20286
|
+
parameters: {
|
|
20287
|
+
query?: never;
|
|
20288
|
+
header?: never;
|
|
20289
|
+
path: {
|
|
20290
|
+
organization_id: string;
|
|
20291
|
+
domain: string;
|
|
20292
|
+
};
|
|
20293
|
+
cookie?: never;
|
|
20294
|
+
};
|
|
20295
|
+
requestBody?: never;
|
|
20296
|
+
responses: {
|
|
20297
|
+
/** @description Default Response */
|
|
20298
|
+
200: {
|
|
20299
|
+
headers: {
|
|
20300
|
+
[name: string]: unknown;
|
|
20301
|
+
};
|
|
20302
|
+
content: {
|
|
20303
|
+
"application/json": {
|
|
20304
|
+
/** @description Organization */
|
|
20305
|
+
organization: {
|
|
20306
|
+
/** @description Organization ID */
|
|
20307
|
+
id: string;
|
|
20308
|
+
/**
|
|
20309
|
+
* @description Human-readable name of the organization.
|
|
20310
|
+
* @example Acme Inc.
|
|
20311
|
+
*/
|
|
20312
|
+
name: string;
|
|
20313
|
+
/**
|
|
20314
|
+
* @description URL-safe identifier derived from `name`. Unique within the tenant.
|
|
20315
|
+
* @example acme-inc
|
|
20316
|
+
*/
|
|
20317
|
+
slug: string;
|
|
20318
|
+
/** @description Optional free-form description. */
|
|
20319
|
+
description: string | null;
|
|
20320
|
+
/** @description Optional URL of the organization logo. */
|
|
20321
|
+
logo_url: string | null;
|
|
20322
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
20323
|
+
domains: {
|
|
20324
|
+
/** @example acme.com */
|
|
20325
|
+
domain: string;
|
|
20326
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
20327
|
+
verification_token: string;
|
|
20328
|
+
/**
|
|
20329
|
+
* Format: date-time
|
|
20330
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
20331
|
+
*/
|
|
20332
|
+
verified_at: string | null;
|
|
20333
|
+
}[];
|
|
20334
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
20335
|
+
auto_join: {
|
|
20336
|
+
/** @description A team of this organization. */
|
|
20337
|
+
team: string;
|
|
20338
|
+
/** @description Role ids the member gets in that team. */
|
|
20339
|
+
roles: string[];
|
|
20340
|
+
}[];
|
|
20341
|
+
/** @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. */
|
|
20342
|
+
admins: string[];
|
|
20343
|
+
/** @description Object is related with this account */
|
|
20344
|
+
account: string;
|
|
20345
|
+
/**
|
|
20346
|
+
* @description OrganizationMetadata
|
|
20347
|
+
* @default {}
|
|
20348
|
+
*/
|
|
20349
|
+
metadata: {
|
|
20350
|
+
[key: string]: unknown;
|
|
20351
|
+
};
|
|
20352
|
+
/** @description Organization creation date */
|
|
20353
|
+
createdAt: string;
|
|
20354
|
+
/** @description Organization updated date */
|
|
20355
|
+
updatedAt?: string;
|
|
20356
|
+
};
|
|
20357
|
+
/** @description `null` when the domain was already verified. */
|
|
20358
|
+
record: {
|
|
20359
|
+
/** @enum {string} */
|
|
20360
|
+
type: "TXT";
|
|
20361
|
+
host: string;
|
|
20362
|
+
expected: string;
|
|
20363
|
+
observed: string[];
|
|
20364
|
+
ok: boolean;
|
|
20365
|
+
} | null;
|
|
20366
|
+
};
|
|
20367
|
+
};
|
|
20368
|
+
};
|
|
20369
|
+
/**
|
|
20370
|
+
* @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.
|
|
20371
|
+
*
|
|
20372
|
+
* `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.
|
|
20373
|
+
*
|
|
20374
|
+
* `public_email_domain` — A public email provider (gmail.com, outlook.com…) cannot belong to an organization: anyone can have an address there.
|
|
20375
|
+
*
|
|
20376
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
20377
|
+
*/
|
|
20378
|
+
400: {
|
|
20379
|
+
headers: {
|
|
20380
|
+
[name: string]: unknown;
|
|
20381
|
+
};
|
|
20382
|
+
content: {
|
|
20383
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20384
|
+
/** @enum {string} */
|
|
20385
|
+
error_code?: "organization_domain_unverified" | "invalid_email_domain" | "public_email_domain" | "validation_error";
|
|
20386
|
+
};
|
|
20387
|
+
};
|
|
20388
|
+
};
|
|
20389
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
20390
|
+
401: {
|
|
20391
|
+
headers: {
|
|
20392
|
+
[name: string]: unknown;
|
|
20393
|
+
};
|
|
20394
|
+
content: {
|
|
20395
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20396
|
+
/** @enum {string} */
|
|
20397
|
+
error_code?: "unauthorized";
|
|
20398
|
+
};
|
|
20399
|
+
};
|
|
20400
|
+
};
|
|
20401
|
+
/** @description `plan_required` — The setting requires a higher plan. `message` says which. */
|
|
20402
|
+
402: {
|
|
20403
|
+
headers: {
|
|
20404
|
+
[name: string]: unknown;
|
|
20405
|
+
};
|
|
20406
|
+
content: {
|
|
20407
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20408
|
+
/** @enum {string} */
|
|
20409
|
+
error_code?: "plan_required";
|
|
20410
|
+
};
|
|
20411
|
+
};
|
|
20412
|
+
};
|
|
20413
|
+
/**
|
|
20414
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
20415
|
+
*
|
|
20416
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
20417
|
+
*
|
|
20418
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
20419
|
+
*/
|
|
20420
|
+
403: {
|
|
20421
|
+
headers: {
|
|
20422
|
+
[name: string]: unknown;
|
|
20423
|
+
};
|
|
20424
|
+
content: {
|
|
20425
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20426
|
+
/** @enum {string} */
|
|
20427
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
20428
|
+
};
|
|
20429
|
+
};
|
|
20430
|
+
};
|
|
20431
|
+
/**
|
|
20432
|
+
* @description `organization_not_found` — No organization with that id in this account.
|
|
20433
|
+
*
|
|
20434
|
+
* `organization_domain_not_found` — The organization has no such domain.
|
|
20435
|
+
*
|
|
20436
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
20437
|
+
*/
|
|
20438
|
+
404: {
|
|
20439
|
+
headers: {
|
|
20440
|
+
[name: string]: unknown;
|
|
20441
|
+
};
|
|
20442
|
+
content: {
|
|
20443
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20444
|
+
/** @enum {string} */
|
|
20445
|
+
error_code?: "organization_not_found" | "organization_domain_not_found" | "account_not_found";
|
|
20446
|
+
};
|
|
20447
|
+
};
|
|
20448
|
+
};
|
|
20449
|
+
/** @description `organization_domain_taken` — Another organization of this tenant already verified this domain. A domain belongs to one organization. */
|
|
20450
|
+
409: {
|
|
20451
|
+
headers: {
|
|
20452
|
+
[name: string]: unknown;
|
|
20453
|
+
};
|
|
20454
|
+
content: {
|
|
20455
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20456
|
+
/** @enum {string} */
|
|
20457
|
+
error_code?: "organization_domain_taken";
|
|
20458
|
+
};
|
|
20459
|
+
};
|
|
20460
|
+
};
|
|
20461
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
20462
|
+
429: {
|
|
20463
|
+
headers: {
|
|
20464
|
+
[name: string]: unknown;
|
|
20465
|
+
};
|
|
20466
|
+
content: {
|
|
20467
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20468
|
+
/** @enum {string} */
|
|
20469
|
+
error_code?: "too_many_requests";
|
|
20470
|
+
};
|
|
20471
|
+
};
|
|
20472
|
+
};
|
|
20473
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
20474
|
+
500: {
|
|
20475
|
+
headers: {
|
|
20476
|
+
[name: string]: unknown;
|
|
20477
|
+
};
|
|
20478
|
+
content: {
|
|
20479
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20480
|
+
/** @enum {string} */
|
|
20481
|
+
error_code?: "internal_error";
|
|
20482
|
+
};
|
|
20483
|
+
};
|
|
20484
|
+
};
|
|
20485
|
+
/** @description `plan_unavailable` — The plan could not be checked right now, and this setting is only for paid plans. Try again in a minute. */
|
|
20486
|
+
503: {
|
|
20487
|
+
headers: {
|
|
20488
|
+
[name: string]: unknown;
|
|
20489
|
+
};
|
|
20490
|
+
content: {
|
|
20491
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20492
|
+
/** @enum {string} */
|
|
20493
|
+
error_code?: "plan_unavailable";
|
|
20494
|
+
};
|
|
20495
|
+
};
|
|
20496
|
+
};
|
|
20497
|
+
};
|
|
20498
|
+
};
|
|
20499
|
+
"organization/removeDomain": {
|
|
20500
|
+
parameters: {
|
|
20501
|
+
query?: never;
|
|
20502
|
+
header?: never;
|
|
20503
|
+
path: {
|
|
20504
|
+
organization_id: string;
|
|
20505
|
+
domain: string;
|
|
20506
|
+
};
|
|
20507
|
+
cookie?: never;
|
|
20508
|
+
};
|
|
20509
|
+
requestBody?: never;
|
|
20510
|
+
responses: {
|
|
20511
|
+
/** @description Organization */
|
|
20512
|
+
200: {
|
|
20513
|
+
headers: {
|
|
20514
|
+
[name: string]: unknown;
|
|
20515
|
+
};
|
|
20516
|
+
content: {
|
|
20517
|
+
"application/json": {
|
|
20518
|
+
/** @description Organization ID */
|
|
20519
|
+
id: string;
|
|
20520
|
+
/**
|
|
20521
|
+
* @description Human-readable name of the organization.
|
|
20522
|
+
* @example Acme Inc.
|
|
20523
|
+
*/
|
|
20524
|
+
name: string;
|
|
20525
|
+
/**
|
|
20526
|
+
* @description URL-safe identifier derived from `name`. Unique within the tenant.
|
|
20527
|
+
* @example acme-inc
|
|
20528
|
+
*/
|
|
20529
|
+
slug: string;
|
|
20530
|
+
/** @description Optional free-form description. */
|
|
20531
|
+
description: string | null;
|
|
20532
|
+
/** @description Optional URL of the organization logo. */
|
|
20533
|
+
logo_url: string | null;
|
|
20534
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
20535
|
+
domains: {
|
|
20536
|
+
/** @example acme.com */
|
|
20537
|
+
domain: string;
|
|
20538
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
20539
|
+
verification_token: string;
|
|
20540
|
+
/**
|
|
20541
|
+
* Format: date-time
|
|
20542
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
20543
|
+
*/
|
|
20544
|
+
verified_at: string | null;
|
|
20545
|
+
}[];
|
|
20546
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
20547
|
+
auto_join: {
|
|
20548
|
+
/** @description A team of this organization. */
|
|
20549
|
+
team: string;
|
|
20550
|
+
/** @description Role ids the member gets in that team. */
|
|
20551
|
+
roles: string[];
|
|
20552
|
+
}[];
|
|
20553
|
+
/** @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. */
|
|
20554
|
+
admins: string[];
|
|
20555
|
+
/** @description Object is related with this account */
|
|
20556
|
+
account: string;
|
|
20557
|
+
/**
|
|
20558
|
+
* @description OrganizationMetadata
|
|
20559
|
+
* @default {}
|
|
20560
|
+
*/
|
|
20561
|
+
metadata: {
|
|
20562
|
+
[key: string]: unknown;
|
|
20563
|
+
};
|
|
20564
|
+
/** @description Organization creation date */
|
|
20565
|
+
createdAt: string;
|
|
20566
|
+
/** @description Organization updated date */
|
|
20567
|
+
updatedAt?: string;
|
|
20568
|
+
};
|
|
20569
|
+
};
|
|
20570
|
+
};
|
|
20571
|
+
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
20572
|
+
400: {
|
|
20573
|
+
headers: {
|
|
20574
|
+
[name: string]: unknown;
|
|
20575
|
+
};
|
|
20576
|
+
content: {
|
|
20577
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20578
|
+
/** @enum {string} */
|
|
20579
|
+
error_code?: "validation_error";
|
|
20580
|
+
};
|
|
20581
|
+
};
|
|
20582
|
+
};
|
|
20583
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
20584
|
+
401: {
|
|
20585
|
+
headers: {
|
|
20586
|
+
[name: string]: unknown;
|
|
20587
|
+
};
|
|
20588
|
+
content: {
|
|
20589
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20590
|
+
/** @enum {string} */
|
|
20591
|
+
error_code?: "unauthorized";
|
|
20592
|
+
};
|
|
20593
|
+
};
|
|
20594
|
+
};
|
|
20595
|
+
/**
|
|
20596
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
20597
|
+
*
|
|
20598
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
20599
|
+
*
|
|
20600
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
20601
|
+
*/
|
|
20602
|
+
403: {
|
|
20603
|
+
headers: {
|
|
20604
|
+
[name: string]: unknown;
|
|
20605
|
+
};
|
|
20606
|
+
content: {
|
|
20607
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20608
|
+
/** @enum {string} */
|
|
20609
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
20610
|
+
};
|
|
20611
|
+
};
|
|
20612
|
+
};
|
|
20613
|
+
/**
|
|
20614
|
+
* @description `organization_not_found` — No organization with that id in this account.
|
|
20615
|
+
*
|
|
20616
|
+
* `organization_domain_not_found` — The organization has no such domain.
|
|
20617
|
+
*
|
|
20618
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
20619
|
+
*/
|
|
20620
|
+
404: {
|
|
20621
|
+
headers: {
|
|
20622
|
+
[name: string]: unknown;
|
|
20623
|
+
};
|
|
20624
|
+
content: {
|
|
20625
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20626
|
+
/** @enum {string} */
|
|
20627
|
+
error_code?: "organization_not_found" | "organization_domain_not_found" | "account_not_found";
|
|
20628
|
+
};
|
|
20629
|
+
};
|
|
20630
|
+
};
|
|
20631
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
20632
|
+
429: {
|
|
20633
|
+
headers: {
|
|
20634
|
+
[name: string]: unknown;
|
|
20635
|
+
};
|
|
20636
|
+
content: {
|
|
20637
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20638
|
+
/** @enum {string} */
|
|
20639
|
+
error_code?: "too_many_requests";
|
|
20640
|
+
};
|
|
20641
|
+
};
|
|
20642
|
+
};
|
|
20643
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
20644
|
+
500: {
|
|
20645
|
+
headers: {
|
|
20646
|
+
[name: string]: unknown;
|
|
20647
|
+
};
|
|
20648
|
+
content: {
|
|
20649
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20650
|
+
/** @enum {string} */
|
|
20651
|
+
error_code?: "internal_error";
|
|
20652
|
+
};
|
|
20653
|
+
};
|
|
20654
|
+
};
|
|
20655
|
+
};
|
|
20656
|
+
};
|
|
20657
|
+
"organization/setAutoJoin": {
|
|
20658
|
+
parameters: {
|
|
20659
|
+
query?: never;
|
|
20660
|
+
header?: never;
|
|
20661
|
+
path: {
|
|
20662
|
+
organization_id: string;
|
|
20663
|
+
};
|
|
20664
|
+
cookie?: never;
|
|
20665
|
+
};
|
|
20666
|
+
requestBody: {
|
|
20667
|
+
content: {
|
|
20668
|
+
"application/json": {
|
|
20669
|
+
auto_join: {
|
|
20670
|
+
/** @description A team of this organization. */
|
|
20671
|
+
team: string;
|
|
20672
|
+
/** @description Role ids of this tenant. */
|
|
20673
|
+
roles: string[];
|
|
20674
|
+
}[];
|
|
20675
|
+
};
|
|
20676
|
+
};
|
|
20677
|
+
};
|
|
20678
|
+
responses: {
|
|
20679
|
+
/** @description Organization */
|
|
20680
|
+
200: {
|
|
20681
|
+
headers: {
|
|
20682
|
+
[name: string]: unknown;
|
|
20683
|
+
};
|
|
20684
|
+
content: {
|
|
20685
|
+
"application/json": {
|
|
20686
|
+
/** @description Organization ID */
|
|
20687
|
+
id: string;
|
|
20688
|
+
/**
|
|
20689
|
+
* @description Human-readable name of the organization.
|
|
20690
|
+
* @example Acme Inc.
|
|
20691
|
+
*/
|
|
20692
|
+
name: string;
|
|
20693
|
+
/**
|
|
20694
|
+
* @description URL-safe identifier derived from `name`. Unique within the tenant.
|
|
20695
|
+
* @example acme-inc
|
|
20696
|
+
*/
|
|
20697
|
+
slug: string;
|
|
20698
|
+
/** @description Optional free-form description. */
|
|
20699
|
+
description: string | null;
|
|
20700
|
+
/** @description Optional URL of the organization logo. */
|
|
20701
|
+
logo_url: string | null;
|
|
20702
|
+
/** @description Email domains the organization claims. Only a verified one counts: it is how the organization's people are recognized. */
|
|
20703
|
+
domains: {
|
|
20704
|
+
/** @example acme.com */
|
|
20705
|
+
domain: string;
|
|
20706
|
+
/** @description Put `faable-verification=<verification_token>` in a TXT record at `_faable-challenge.<domain>`, then call `POST /organization/{organization_id}/domain/{domain}/verify`. */
|
|
20707
|
+
verification_token: string;
|
|
20708
|
+
/**
|
|
20709
|
+
* Format: date-time
|
|
20710
|
+
* @description When the TXT record was found. `null` = not verified.
|
|
20711
|
+
*/
|
|
20712
|
+
verified_at: string | null;
|
|
20713
|
+
}[];
|
|
20714
|
+
/** @description Whoever signs in with a verified email of one of the verified domains joins these teams. Empty = nobody joins by domain. */
|
|
20715
|
+
auto_join: {
|
|
20716
|
+
/** @description A team of this organization. */
|
|
20717
|
+
team: string;
|
|
20718
|
+
/** @description Role ids the member gets in that team. */
|
|
20719
|
+
roles: string[];
|
|
20720
|
+
}[];
|
|
20721
|
+
/** @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. */
|
|
20722
|
+
admins: string[];
|
|
20723
|
+
/** @description Object is related with this account */
|
|
20724
|
+
account: string;
|
|
20725
|
+
/**
|
|
20726
|
+
* @description OrganizationMetadata
|
|
20727
|
+
* @default {}
|
|
20728
|
+
*/
|
|
20729
|
+
metadata: {
|
|
20730
|
+
[key: string]: unknown;
|
|
20731
|
+
};
|
|
20732
|
+
/** @description Organization creation date */
|
|
20733
|
+
createdAt: string;
|
|
20734
|
+
/** @description Organization updated date */
|
|
20735
|
+
updatedAt?: string;
|
|
20736
|
+
};
|
|
20737
|
+
};
|
|
20738
|
+
};
|
|
20739
|
+
/**
|
|
20740
|
+
* @description `team_not_in_organization` — Auto-join can only put people in teams of the same organization. `details.teams` lists the others.
|
|
20741
|
+
*
|
|
20742
|
+
* `invalid_role` — The role belongs to another account.
|
|
20743
|
+
*
|
|
20744
|
+
* `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
20745
|
+
*/
|
|
20746
|
+
400: {
|
|
20747
|
+
headers: {
|
|
20748
|
+
[name: string]: unknown;
|
|
20749
|
+
};
|
|
20750
|
+
content: {
|
|
20751
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20752
|
+
/** @enum {string} */
|
|
20753
|
+
error_code?: "team_not_in_organization" | "invalid_role" | "validation_error";
|
|
20754
|
+
};
|
|
20755
|
+
};
|
|
20756
|
+
};
|
|
20757
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
20758
|
+
401: {
|
|
20759
|
+
headers: {
|
|
20760
|
+
[name: string]: unknown;
|
|
20761
|
+
};
|
|
20762
|
+
content: {
|
|
20763
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20764
|
+
/** @enum {string} */
|
|
20765
|
+
error_code?: "unauthorized";
|
|
20766
|
+
};
|
|
20767
|
+
};
|
|
20768
|
+
};
|
|
20769
|
+
/** @description `plan_required` — The setting requires a higher plan. `message` says which. */
|
|
20770
|
+
402: {
|
|
20771
|
+
headers: {
|
|
20772
|
+
[name: string]: unknown;
|
|
20773
|
+
};
|
|
20774
|
+
content: {
|
|
20775
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20776
|
+
/** @enum {string} */
|
|
20777
|
+
error_code?: "plan_required";
|
|
20778
|
+
};
|
|
20779
|
+
};
|
|
20780
|
+
};
|
|
20781
|
+
/**
|
|
20782
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
20783
|
+
*
|
|
20784
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
20785
|
+
*
|
|
20786
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
20787
|
+
*/
|
|
20788
|
+
403: {
|
|
20789
|
+
headers: {
|
|
20790
|
+
[name: string]: unknown;
|
|
20791
|
+
};
|
|
20792
|
+
content: {
|
|
20793
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20794
|
+
/** @enum {string} */
|
|
20795
|
+
error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
|
|
20796
|
+
};
|
|
20797
|
+
};
|
|
20798
|
+
};
|
|
20799
|
+
/**
|
|
20800
|
+
* @description `organization_not_found` — No organization with that id in this account.
|
|
20801
|
+
*
|
|
20802
|
+
* `role_not_found` — No role with that id in this account.
|
|
20803
|
+
*
|
|
20804
|
+
* `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
20805
|
+
*/
|
|
20806
|
+
404: {
|
|
20807
|
+
headers: {
|
|
20808
|
+
[name: string]: unknown;
|
|
20809
|
+
};
|
|
20810
|
+
content: {
|
|
20811
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20812
|
+
/** @enum {string} */
|
|
20813
|
+
error_code?: "organization_not_found" | "role_not_found" | "account_not_found";
|
|
20814
|
+
};
|
|
20815
|
+
};
|
|
20816
|
+
};
|
|
20817
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
20818
|
+
429: {
|
|
20819
|
+
headers: {
|
|
20820
|
+
[name: string]: unknown;
|
|
20821
|
+
};
|
|
20822
|
+
content: {
|
|
20823
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20824
|
+
/** @enum {string} */
|
|
20825
|
+
error_code?: "too_many_requests";
|
|
20826
|
+
};
|
|
20827
|
+
};
|
|
20828
|
+
};
|
|
20829
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
20830
|
+
500: {
|
|
20831
|
+
headers: {
|
|
20832
|
+
[name: string]: unknown;
|
|
20833
|
+
};
|
|
20834
|
+
content: {
|
|
20835
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20836
|
+
/** @enum {string} */
|
|
20837
|
+
error_code?: "internal_error";
|
|
20838
|
+
};
|
|
20839
|
+
};
|
|
20840
|
+
};
|
|
20841
|
+
/** @description `plan_unavailable` — The plan could not be checked right now, and this setting is only for paid plans. Try again in a minute. */
|
|
20842
|
+
503: {
|
|
20843
|
+
headers: {
|
|
20844
|
+
[name: string]: unknown;
|
|
20845
|
+
};
|
|
20846
|
+
content: {
|
|
20847
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
20848
|
+
/** @enum {string} */
|
|
20849
|
+
error_code?: "plan_unavailable";
|
|
20850
|
+
};
|
|
20851
|
+
};
|
|
20852
|
+
};
|
|
20853
|
+
};
|
|
20854
|
+
};
|
|
19864
20855
|
"teammember/list": {
|
|
19865
20856
|
parameters: {
|
|
19866
20857
|
query?: {
|