@faable/auth-sdk 2.7.40 → 2.7.42

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.
@@ -1717,6 +1717,66 @@ export interface paths {
1717
1717
  patch?: never;
1718
1718
  trace?: never;
1719
1719
  };
1720
+ "/session": {
1721
+ parameters: {
1722
+ query?: never;
1723
+ header?: never;
1724
+ path?: never;
1725
+ cookie?: never;
1726
+ };
1727
+ /**
1728
+ * List Sessions
1729
+ * @description List Sessions
1730
+ */
1731
+ get: operations["session/list"];
1732
+ put?: never;
1733
+ post?: never;
1734
+ delete?: never;
1735
+ options?: never;
1736
+ head?: never;
1737
+ patch?: never;
1738
+ trace?: never;
1739
+ };
1740
+ "/session/{session_id}": {
1741
+ parameters: {
1742
+ query?: never;
1743
+ header?: never;
1744
+ path?: never;
1745
+ cookie?: never;
1746
+ };
1747
+ /**
1748
+ * Get Session
1749
+ * @description Get Session
1750
+ */
1751
+ get: operations["session/get"];
1752
+ put?: never;
1753
+ post?: never;
1754
+ delete?: never;
1755
+ options?: never;
1756
+ head?: never;
1757
+ patch?: never;
1758
+ trace?: never;
1759
+ };
1760
+ "/session/{session_id}/revoke": {
1761
+ parameters: {
1762
+ query?: never;
1763
+ header?: never;
1764
+ path?: never;
1765
+ cookie?: never;
1766
+ };
1767
+ get?: never;
1768
+ put?: never;
1769
+ /**
1770
+ * Revoke a session
1771
+ * @description Ends the session for good: the browser cookie behind it stops working, every refresh token issued through it is refused on its next use (`invalid_grant`), and the relying parties that took part in it are notified. Access and id tokens already issued keep working until they expire. The row stays, marked `revoked`, for the device history.
1772
+ */
1773
+ post: operations["session/revoke"];
1774
+ delete?: never;
1775
+ options?: never;
1776
+ head?: never;
1777
+ patch?: never;
1778
+ trace?: never;
1779
+ };
1720
1780
  "/customdomain/{customdomain_id}/retry": {
1721
1781
  parameters: {
1722
1782
  query?: never;
@@ -3776,6 +3836,46 @@ export interface paths {
3776
3836
  patch: operations["session/me_update"];
3777
3837
  trace?: never;
3778
3838
  };
3839
+ "/me/sessions": {
3840
+ parameters: {
3841
+ query?: never;
3842
+ header?: never;
3843
+ path?: never;
3844
+ cookie?: never;
3845
+ };
3846
+ /**
3847
+ * List the current user's active sessions
3848
+ * @description Every active session of the user behind the request (cookie or bearer), newest first; `current_session_id` names the one this request came through.
3849
+ */
3850
+ get: operations["session/meSessions"];
3851
+ put?: never;
3852
+ post?: never;
3853
+ delete?: never;
3854
+ options?: never;
3855
+ head?: never;
3856
+ patch?: never;
3857
+ trace?: never;
3858
+ };
3859
+ "/me/sessions/revoke-others": {
3860
+ parameters: {
3861
+ query?: never;
3862
+ header?: never;
3863
+ path?: never;
3864
+ cookie?: never;
3865
+ };
3866
+ get?: never;
3867
+ put?: never;
3868
+ /**
3869
+ * Sign the current user out everywhere else
3870
+ * @description Revokes every active session of the user except the one this request came through. Refresh tokens issued in the revoked sessions are refused on their next use; access and id tokens already issued keep working until they expire.
3871
+ */
3872
+ post: operations["session/meRevokeOtherSessions"];
3873
+ delete?: never;
3874
+ options?: never;
3875
+ head?: never;
3876
+ patch?: never;
3877
+ trace?: never;
3878
+ };
3779
3879
  "/logout": {
3780
3880
  parameters: {
3781
3881
  query?: never;
@@ -6020,6 +6120,58 @@ export interface components {
6020
6120
  LogMetadata: {
6021
6121
  [key: string]: unknown;
6022
6122
  };
6123
+ /** @description Session */
6124
+ Session: {
6125
+ /** @description Session ID */
6126
+ id: string;
6127
+ user: components["schemas"]["User"] | string | unknown;
6128
+ /** @description OIDC session id. Every id_token minted for this session carries it as the `sid` claim; a back-channel or front-channel logout names the session with it. */
6129
+ sid: string;
6130
+ /** @description `active` or `revoked`. An active session whose `expires_at` is in the past has expired: nothing can refresh it any more, but the row stays for the history. */
6131
+ status: "active" | "revoked";
6132
+ /** @description Client IP at the last authentication. */
6133
+ ip?: string;
6134
+ /** @description Raw `User-Agent` header at the last authentication. */
6135
+ user_agent?: string;
6136
+ client?: components["schemas"]["Client"] | string | unknown;
6137
+ connection?: components["schemas"]["Connection"] | string | unknown;
6138
+ /** @description Issuer URL the session was minted on. */
6139
+ issuer?: string;
6140
+ /**
6141
+ * Format: date-time
6142
+ * @description Last authentication or token refresh through this session. Each refresh slides `expires_at` 30 days from here.
6143
+ */
6144
+ last_seen_at: string;
6145
+ /**
6146
+ * Format: date-time
6147
+ * @description When the session stops being usable unless something refreshes it first.
6148
+ */
6149
+ expires_at: string;
6150
+ /** Format: date-time */
6151
+ revoked_at?: string;
6152
+ /** @description `admin`: revoked through the Management API. `logout`: the user signed out. `user`: the user revoked it from another device. */
6153
+ revoked_reason?: "admin" | "logout" | "user";
6154
+ /** @description Object is related with this account */
6155
+ account: string;
6156
+ /**
6157
+ * @description SessionMetadata
6158
+ * @default {}
6159
+ */
6160
+ metadata: {
6161
+ [key: string]: unknown;
6162
+ };
6163
+ /** @description Session creation date */
6164
+ createdAt: string;
6165
+ /** @description Session updated date */
6166
+ updatedAt?: string;
6167
+ };
6168
+ /**
6169
+ * @description SessionMetadata
6170
+ * @default {}
6171
+ */
6172
+ SessionMetadata: {
6173
+ [key: string]: unknown;
6174
+ };
6023
6175
  /** @description Customdomain */
6024
6176
  Customdomain: {
6025
6177
  /** @description Customdomain ID */
@@ -6383,6 +6535,7 @@ export interface components {
6383
6535
  * - `account_transfer_refused` (409): The Auth Account cannot be moved to that project. `details.blockers` lists why.
6384
6536
  * - `plan_required` (402): The setting requires a higher plan. `message` says which.
6385
6537
  * - `not_logged_in` (401): There is no signed-in session for this request.
6538
+ * - `session_already_revoked` (409): The session was already revoked.
6386
6539
  * - `invalid_token` (401): The bearer token is missing, malformed, expired or has no subject.
6387
6540
  * - `not_owner` (403): The caller may only perform this operation on their own user.
6388
6541
  * - `user_suspended` (403): The user is suspended and cannot sign in or be modified.
@@ -6469,7 +6622,7 @@ export interface components {
6469
6622
  * - `revision_not_found` (404): The revision is not in the flow history.
6470
6623
  * @enum {string}
6471
6624
  */
6472
- 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" | "plan_required" | "not_logged_in" | "invalid_token" | "not_owner" | "user_suspended" | "invalid_credentials" | "login_denied" | "signup_denied" | "client_credentials_denied" | "m2m_quota_exceeded" | "signup_disabled" | "email_taken" | "invalid_email" | "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" | "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" | "invite_not_found" | "invite_used" | "already_member" | "not_a_member" | "role_not_found" | "invalid_role" | "flow_not_found" | "revision_not_found";
6625
+ 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" | "plan_required" | "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" | "invalid_email" | "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" | "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" | "invite_not_found" | "invite_used" | "already_member" | "not_a_member" | "role_not_found" | "invalid_role" | "flow_not_found" | "revision_not_found";
6473
6626
  /** @description Every error response has this shape. Branch on `error_code`, never on `message`: the message is written for a person and may change. */
6474
6627
  ErrorResponse: {
6475
6628
  /** @description The HTTP status, repeated. */
@@ -13536,6 +13689,8 @@ export interface operations {
13536
13689
  email: string;
13537
13690
  status: "created" | "updated" | "skipped" | "error";
13538
13691
  user_id?: string;
13692
+ /** @description Connections named in `identities` that this tenant does not have (e.g. Apple from a Firebase export). The user was imported without them. */
13693
+ skipped_identities?: string[];
13539
13694
  error?: {
13540
13695
  code: string;
13541
13696
  message: string;
@@ -23578,13 +23733,36 @@ export interface operations {
23578
23733
  };
23579
23734
  };
23580
23735
  };
23581
- "customdomain/retry": {
23736
+ "session/list": {
23582
23737
  parameters: {
23583
- query?: never;
23584
- header?: never;
23585
- path: {
23586
- customdomain_id: string;
23738
+ query?: {
23739
+ /** @description Number of items per page (max 200) */
23740
+ pageSize?: number;
23741
+ /** @description Cursor for next page */
23742
+ cursor?: string;
23743
+ /** @description Cursor returned by the previous page */
23744
+ next?: string;
23745
+ /** @description Exact match on `user`. Equivalent to `?query=user:<value>`. */
23746
+ user?: string;
23747
+ /** @description Exact match on `client`. Equivalent to `?query=client:<value>`. */
23748
+ client?: string;
23749
+ /** @description Exact match on `connection`. Equivalent to `?query=connection:<value>`. */
23750
+ connection?: string;
23751
+ /** @description Exact match on `status`. Equivalent to `?query=status:<value>`. */
23752
+ status?: string;
23753
+ /** @description Exact match on `sid`. Equivalent to `?query=sid:<value>`. */
23754
+ sid?: string;
23755
+ /** @description Exact match on `since`. Equivalent to `?query=since:<value>`. */
23756
+ since?: string;
23757
+ /** @description Exact match on `until`. Equivalent to `?query=until:<value>`. */
23758
+ until?: string;
23759
+ /** @description Filter using a FaableQL query */
23760
+ query?: string;
23761
+ /** @description Expand id-only fields in the response. Pass one path per entry (e.g. `?expand=user`). */
23762
+ expand?: ("user" | "client" | "connection")[];
23587
23763
  };
23764
+ header?: never;
23765
+ path?: never;
23588
23766
  cookie?: never;
23589
23767
  };
23590
23768
  requestBody?: never;
@@ -23594,9 +23772,22 @@ export interface operations {
23594
23772
  headers: {
23595
23773
  [name: string]: unknown;
23596
23774
  };
23597
- content?: never;
23775
+ content: {
23776
+ "application/json": {
23777
+ next: string | null;
23778
+ results: components["schemas"]["Session"][];
23779
+ };
23780
+ };
23598
23781
  };
23599
- /** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
23782
+ /**
23783
+ * @description `invalid_query` — The `?query=` FaableQL expression could not be parsed.
23784
+ *
23785
+ * `invalid_expand` — An `?expand=` path is not allowed on this resource.
23786
+ *
23787
+ * `search_not_supported` — This resource does not support `?search=`.
23788
+ *
23789
+ * `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
23790
+ */
23600
23791
  400: {
23601
23792
  headers: {
23602
23793
  [name: string]: unknown;
@@ -23604,7 +23795,7 @@ export interface operations {
23604
23795
  content: {
23605
23796
  "application/json": components["schemas"]["ErrorResponse"] & {
23606
23797
  /** @enum {string} */
23607
- error_code?: "validation_error";
23798
+ error_code?: "invalid_query" | "invalid_expand" | "search_not_supported" | "validation_error";
23608
23799
  };
23609
23800
  };
23610
23801
  };
@@ -23676,45 +23867,77 @@ export interface operations {
23676
23867
  };
23677
23868
  };
23678
23869
  };
23679
- "customdomain/list": {
23870
+ "session/get": {
23680
23871
  parameters: {
23681
23872
  query?: {
23682
- /** @description Number of items per page (max 200) */
23683
- pageSize?: number;
23684
- /** @description Cursor for next page */
23685
- cursor?: string;
23686
- /** @description Cursor returned by the previous page */
23687
- next?: string;
23688
- /** @description Filter using a FaableQL query */
23689
- query?: string;
23690
- /** @description Full-text search across: `domain`. */
23691
- q?: string;
23873
+ /** @description Expand id-only fields in the response. Pass one path per entry (e.g. `?expand=user`). */
23874
+ expand?: ("user" | "client" | "connection")[];
23692
23875
  };
23693
23876
  header?: never;
23694
- path?: never;
23877
+ path: {
23878
+ session_id: string;
23879
+ };
23695
23880
  cookie?: never;
23696
23881
  };
23697
23882
  requestBody?: never;
23698
23883
  responses: {
23699
- /** @description Default Response */
23884
+ /** @description Session */
23700
23885
  200: {
23701
23886
  headers: {
23702
23887
  [name: string]: unknown;
23703
23888
  };
23704
23889
  content: {
23705
23890
  "application/json": {
23706
- next: string | null;
23707
- results: components["schemas"]["Customdomain"][];
23891
+ /** @description Session ID */
23892
+ id: string;
23893
+ user: components["schemas"]["User"] | string | unknown;
23894
+ /** @description OIDC session id. Every id_token minted for this session carries it as the `sid` claim; a back-channel or front-channel logout names the session with it. */
23895
+ sid: string;
23896
+ /** @description `active` or `revoked`. An active session whose `expires_at` is in the past has expired: nothing can refresh it any more, but the row stays for the history. */
23897
+ status: "active" | "revoked";
23898
+ /** @description Client IP at the last authentication. */
23899
+ ip?: string;
23900
+ /** @description Raw `User-Agent` header at the last authentication. */
23901
+ user_agent?: string;
23902
+ client?: components["schemas"]["Client"] | string | unknown;
23903
+ connection?: components["schemas"]["Connection"] | string | unknown;
23904
+ /** @description Issuer URL the session was minted on. */
23905
+ issuer?: string;
23906
+ /**
23907
+ * Format: date-time
23908
+ * @description Last authentication or token refresh through this session. Each refresh slides `expires_at` 30 days from here.
23909
+ */
23910
+ last_seen_at: string;
23911
+ /**
23912
+ * Format: date-time
23913
+ * @description When the session stops being usable unless something refreshes it first.
23914
+ */
23915
+ expires_at: string;
23916
+ /** Format: date-time */
23917
+ revoked_at?: string;
23918
+ /** @description `admin`: revoked through the Management API. `logout`: the user signed out. `user`: the user revoked it from another device. */
23919
+ revoked_reason?: "admin" | "logout" | "user";
23920
+ /** @description Object is related with this account */
23921
+ account: string;
23922
+ /**
23923
+ * @description SessionMetadata
23924
+ * @default {}
23925
+ */
23926
+ metadata: {
23927
+ [key: string]: unknown;
23928
+ };
23929
+ /** @description Session creation date */
23930
+ createdAt: string;
23931
+ /** @description Session updated date */
23932
+ updatedAt?: string;
23708
23933
  };
23709
23934
  };
23710
23935
  };
23711
23936
  /**
23712
- * @description `invalid_query` — The `?query=` FaableQL expression could not be parsed.
23937
+ * @description `invalid_id` — The id in the path is not a valid id for this resource.
23713
23938
  *
23714
23939
  * `invalid_expand` — An `?expand=` path is not allowed on this resource.
23715
23940
  *
23716
- * `search_not_supported` — This resource does not support `?search=`.
23717
- *
23718
23941
  * `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
23719
23942
  */
23720
23943
  400: {
@@ -23724,7 +23947,7 @@ export interface operations {
23724
23947
  content: {
23725
23948
  "application/json": components["schemas"]["ErrorResponse"] & {
23726
23949
  /** @enum {string} */
23727
- error_code?: "invalid_query" | "invalid_expand" | "search_not_supported" | "validation_error";
23950
+ error_code?: "invalid_id" | "invalid_expand" | "validation_error";
23728
23951
  };
23729
23952
  };
23730
23953
  };
@@ -23758,7 +23981,11 @@ export interface operations {
23758
23981
  };
23759
23982
  };
23760
23983
  };
23761
- /** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
23984
+ /**
23985
+ * @description `not_found` — The resource does not exist in this account.
23986
+ *
23987
+ * `account_not_found` — No Auth Account matches the request (domain, header or token).
23988
+ */
23762
23989
  404: {
23763
23990
  headers: {
23764
23991
  [name: string]: unknown;
@@ -23766,7 +23993,7 @@ export interface operations {
23766
23993
  content: {
23767
23994
  "application/json": components["schemas"]["ErrorResponse"] & {
23768
23995
  /** @enum {string} */
23769
- error_code?: "account_not_found";
23996
+ error_code?: "not_found" | "account_not_found";
23770
23997
  };
23771
23998
  };
23772
23999
  };
@@ -23796,56 +24023,433 @@ export interface operations {
23796
24023
  };
23797
24024
  };
23798
24025
  };
23799
- "customdomain/create": {
24026
+ "session/revoke": {
23800
24027
  parameters: {
23801
24028
  query?: never;
23802
24029
  header?: never;
23803
- path?: never;
23804
- cookie?: never;
23805
- };
23806
- /** @description CustomdomainCreate */
23807
- requestBody: {
23808
- content: {
23809
- "application/json": {
23810
- domain: string;
23811
- /** @description Add Metadata */
23812
- metadata?: {
23813
- [key: string]: unknown;
23814
- };
23815
- };
24030
+ path: {
24031
+ session_id: string;
23816
24032
  };
24033
+ cookie?: never;
23817
24034
  };
24035
+ requestBody?: never;
23818
24036
  responses: {
23819
- /** @description Customdomain */
24037
+ /** @description Session */
23820
24038
  200: {
23821
24039
  headers: {
23822
24040
  [name: string]: unknown;
23823
24041
  };
23824
24042
  content: {
23825
24043
  "application/json": {
23826
- /** @description Customdomain ID */
24044
+ /** @description Session ID */
23827
24045
  id: string;
23828
- domain: string;
23829
- token: string;
23830
- /** @enum {unknown} */
23831
- status: "PENDING" | "VERIFYING" | "ACTIVE" | "FAILED" | "DEGRADED";
23832
- attempts: number;
23833
- /** Format: date-time */
23834
- nextCheck?: string;
23835
- /** Format: date-time */
23836
- lastCheck?: string;
23837
- /** @description User feedback error from last check */
23838
- errorLog?: string;
24046
+ user: components["schemas"]["User"] | string | unknown;
24047
+ /** @description OIDC session id. Every id_token minted for this session carries it as the `sid` claim; a back-channel or front-channel logout names the session with it. */
24048
+ sid: string;
24049
+ /** @description `active` or `revoked`. An active session whose `expires_at` is in the past has expired: nothing can refresh it any more, but the row stays for the history. */
24050
+ status: "active" | "revoked";
24051
+ /** @description Client IP at the last authentication. */
24052
+ ip?: string;
24053
+ /** @description Raw `User-Agent` header at the last authentication. */
24054
+ user_agent?: string;
24055
+ client?: components["schemas"]["Client"] | string | unknown;
24056
+ connection?: components["schemas"]["Connection"] | string | unknown;
24057
+ /** @description Issuer URL the session was minted on. */
24058
+ issuer?: string;
24059
+ /**
24060
+ * Format: date-time
24061
+ * @description Last authentication or token refresh through this session. Each refresh slides `expires_at` 30 days from here.
24062
+ */
24063
+ last_seen_at: string;
24064
+ /**
24065
+ * Format: date-time
24066
+ * @description When the session stops being usable unless something refreshes it first.
24067
+ */
24068
+ expires_at: string;
23839
24069
  /** Format: date-time */
23840
- verifiedAt?: string;
23841
- /** @description Per-record DNS status from the last check: what each record points to now vs. expected */
23842
- records?: {
23843
- type: string;
23844
- host: string;
23845
- expected: string;
23846
- observed: string[];
23847
- ok: boolean;
23848
- }[];
24070
+ revoked_at?: string;
24071
+ /** @description `admin`: revoked through the Management API. `logout`: the user signed out. `user`: the user revoked it from another device. */
24072
+ revoked_reason?: "admin" | "logout" | "user";
24073
+ /** @description Object is related with this account */
24074
+ account: string;
24075
+ /**
24076
+ * @description SessionMetadata
24077
+ * @default {}
24078
+ */
24079
+ metadata: {
24080
+ [key: string]: unknown;
24081
+ };
24082
+ /** @description Session creation date */
24083
+ createdAt: string;
24084
+ /** @description Session updated date */
24085
+ updatedAt?: string;
24086
+ };
24087
+ };
24088
+ };
24089
+ /** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
24090
+ 400: {
24091
+ headers: {
24092
+ [name: string]: unknown;
24093
+ };
24094
+ content: {
24095
+ "application/json": components["schemas"]["ErrorResponse"] & {
24096
+ /** @enum {string} */
24097
+ error_code?: "validation_error";
24098
+ };
24099
+ };
24100
+ };
24101
+ /** @description `unauthorized` — The request carries no valid credentials. */
24102
+ 401: {
24103
+ headers: {
24104
+ [name: string]: unknown;
24105
+ };
24106
+ content: {
24107
+ "application/json": components["schemas"]["ErrorResponse"] & {
24108
+ /** @enum {string} */
24109
+ error_code?: "unauthorized";
24110
+ };
24111
+ };
24112
+ };
24113
+ /**
24114
+ * @description `forbidden` — The credentials are valid but do not allow this operation.
24115
+ *
24116
+ * `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
24117
+ *
24118
+ * `user_suspended` — The user is suspended and cannot sign in or be modified.
24119
+ */
24120
+ 403: {
24121
+ headers: {
24122
+ [name: string]: unknown;
24123
+ };
24124
+ content: {
24125
+ "application/json": components["schemas"]["ErrorResponse"] & {
24126
+ /** @enum {string} */
24127
+ error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
24128
+ };
24129
+ };
24130
+ };
24131
+ /**
24132
+ * @description `not_found` — The resource does not exist in this account.
24133
+ *
24134
+ * `account_not_found` — No Auth Account matches the request (domain, header or token).
24135
+ */
24136
+ 404: {
24137
+ headers: {
24138
+ [name: string]: unknown;
24139
+ };
24140
+ content: {
24141
+ "application/json": components["schemas"]["ErrorResponse"] & {
24142
+ /** @enum {string} */
24143
+ error_code?: "not_found" | "account_not_found";
24144
+ };
24145
+ };
24146
+ };
24147
+ /** @description `session_already_revoked` — The session was already revoked. */
24148
+ 409: {
24149
+ headers: {
24150
+ [name: string]: unknown;
24151
+ };
24152
+ content: {
24153
+ "application/json": components["schemas"]["ErrorResponse"] & {
24154
+ /** @enum {string} */
24155
+ error_code?: "session_already_revoked";
24156
+ };
24157
+ };
24158
+ };
24159
+ /** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
24160
+ 429: {
24161
+ headers: {
24162
+ [name: string]: unknown;
24163
+ };
24164
+ content: {
24165
+ "application/json": components["schemas"]["ErrorResponse"] & {
24166
+ /** @enum {string} */
24167
+ error_code?: "too_many_requests";
24168
+ };
24169
+ };
24170
+ };
24171
+ /** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
24172
+ 500: {
24173
+ headers: {
24174
+ [name: string]: unknown;
24175
+ };
24176
+ content: {
24177
+ "application/json": components["schemas"]["ErrorResponse"] & {
24178
+ /** @enum {string} */
24179
+ error_code?: "internal_error";
24180
+ };
24181
+ };
24182
+ };
24183
+ };
24184
+ };
24185
+ "customdomain/retry": {
24186
+ parameters: {
24187
+ query?: never;
24188
+ header?: never;
24189
+ path: {
24190
+ customdomain_id: string;
24191
+ };
24192
+ cookie?: never;
24193
+ };
24194
+ requestBody?: never;
24195
+ responses: {
24196
+ /** @description Default Response */
24197
+ 200: {
24198
+ headers: {
24199
+ [name: string]: unknown;
24200
+ };
24201
+ content?: never;
24202
+ };
24203
+ /** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
24204
+ 400: {
24205
+ headers: {
24206
+ [name: string]: unknown;
24207
+ };
24208
+ content: {
24209
+ "application/json": components["schemas"]["ErrorResponse"] & {
24210
+ /** @enum {string} */
24211
+ error_code?: "validation_error";
24212
+ };
24213
+ };
24214
+ };
24215
+ /** @description `unauthorized` — The request carries no valid credentials. */
24216
+ 401: {
24217
+ headers: {
24218
+ [name: string]: unknown;
24219
+ };
24220
+ content: {
24221
+ "application/json": components["schemas"]["ErrorResponse"] & {
24222
+ /** @enum {string} */
24223
+ error_code?: "unauthorized";
24224
+ };
24225
+ };
24226
+ };
24227
+ /**
24228
+ * @description `forbidden` — The credentials are valid but do not allow this operation.
24229
+ *
24230
+ * `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
24231
+ *
24232
+ * `user_suspended` — The user is suspended and cannot sign in or be modified.
24233
+ */
24234
+ 403: {
24235
+ headers: {
24236
+ [name: string]: unknown;
24237
+ };
24238
+ content: {
24239
+ "application/json": components["schemas"]["ErrorResponse"] & {
24240
+ /** @enum {string} */
24241
+ error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
24242
+ };
24243
+ };
24244
+ };
24245
+ /** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
24246
+ 404: {
24247
+ headers: {
24248
+ [name: string]: unknown;
24249
+ };
24250
+ content: {
24251
+ "application/json": components["schemas"]["ErrorResponse"] & {
24252
+ /** @enum {string} */
24253
+ error_code?: "account_not_found";
24254
+ };
24255
+ };
24256
+ };
24257
+ /** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
24258
+ 429: {
24259
+ headers: {
24260
+ [name: string]: unknown;
24261
+ };
24262
+ content: {
24263
+ "application/json": components["schemas"]["ErrorResponse"] & {
24264
+ /** @enum {string} */
24265
+ error_code?: "too_many_requests";
24266
+ };
24267
+ };
24268
+ };
24269
+ /** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
24270
+ 500: {
24271
+ headers: {
24272
+ [name: string]: unknown;
24273
+ };
24274
+ content: {
24275
+ "application/json": components["schemas"]["ErrorResponse"] & {
24276
+ /** @enum {string} */
24277
+ error_code?: "internal_error";
24278
+ };
24279
+ };
24280
+ };
24281
+ };
24282
+ };
24283
+ "customdomain/list": {
24284
+ parameters: {
24285
+ query?: {
24286
+ /** @description Number of items per page (max 200) */
24287
+ pageSize?: number;
24288
+ /** @description Cursor for next page */
24289
+ cursor?: string;
24290
+ /** @description Cursor returned by the previous page */
24291
+ next?: string;
24292
+ /** @description Filter using a FaableQL query */
24293
+ query?: string;
24294
+ /** @description Full-text search across: `domain`. */
24295
+ q?: string;
24296
+ };
24297
+ header?: never;
24298
+ path?: never;
24299
+ cookie?: never;
24300
+ };
24301
+ requestBody?: never;
24302
+ responses: {
24303
+ /** @description Default Response */
24304
+ 200: {
24305
+ headers: {
24306
+ [name: string]: unknown;
24307
+ };
24308
+ content: {
24309
+ "application/json": {
24310
+ next: string | null;
24311
+ results: components["schemas"]["Customdomain"][];
24312
+ };
24313
+ };
24314
+ };
24315
+ /**
24316
+ * @description `invalid_query` — The `?query=` FaableQL expression could not be parsed.
24317
+ *
24318
+ * `invalid_expand` — An `?expand=` path is not allowed on this resource.
24319
+ *
24320
+ * `search_not_supported` — This resource does not support `?search=`.
24321
+ *
24322
+ * `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.
24323
+ */
24324
+ 400: {
24325
+ headers: {
24326
+ [name: string]: unknown;
24327
+ };
24328
+ content: {
24329
+ "application/json": components["schemas"]["ErrorResponse"] & {
24330
+ /** @enum {string} */
24331
+ error_code?: "invalid_query" | "invalid_expand" | "search_not_supported" | "validation_error";
24332
+ };
24333
+ };
24334
+ };
24335
+ /** @description `unauthorized` — The request carries no valid credentials. */
24336
+ 401: {
24337
+ headers: {
24338
+ [name: string]: unknown;
24339
+ };
24340
+ content: {
24341
+ "application/json": components["schemas"]["ErrorResponse"] & {
24342
+ /** @enum {string} */
24343
+ error_code?: "unauthorized";
24344
+ };
24345
+ };
24346
+ };
24347
+ /**
24348
+ * @description `forbidden` — The credentials are valid but do not allow this operation.
24349
+ *
24350
+ * `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
24351
+ *
24352
+ * `user_suspended` — The user is suspended and cannot sign in or be modified.
24353
+ */
24354
+ 403: {
24355
+ headers: {
24356
+ [name: string]: unknown;
24357
+ };
24358
+ content: {
24359
+ "application/json": components["schemas"]["ErrorResponse"] & {
24360
+ /** @enum {string} */
24361
+ error_code?: "forbidden" | "insufficient_scope" | "user_suspended";
24362
+ };
24363
+ };
24364
+ };
24365
+ /** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
24366
+ 404: {
24367
+ headers: {
24368
+ [name: string]: unknown;
24369
+ };
24370
+ content: {
24371
+ "application/json": components["schemas"]["ErrorResponse"] & {
24372
+ /** @enum {string} */
24373
+ error_code?: "account_not_found";
24374
+ };
24375
+ };
24376
+ };
24377
+ /** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
24378
+ 429: {
24379
+ headers: {
24380
+ [name: string]: unknown;
24381
+ };
24382
+ content: {
24383
+ "application/json": components["schemas"]["ErrorResponse"] & {
24384
+ /** @enum {string} */
24385
+ error_code?: "too_many_requests";
24386
+ };
24387
+ };
24388
+ };
24389
+ /** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
24390
+ 500: {
24391
+ headers: {
24392
+ [name: string]: unknown;
24393
+ };
24394
+ content: {
24395
+ "application/json": components["schemas"]["ErrorResponse"] & {
24396
+ /** @enum {string} */
24397
+ error_code?: "internal_error";
24398
+ };
24399
+ };
24400
+ };
24401
+ };
24402
+ };
24403
+ "customdomain/create": {
24404
+ parameters: {
24405
+ query?: never;
24406
+ header?: never;
24407
+ path?: never;
24408
+ cookie?: never;
24409
+ };
24410
+ /** @description CustomdomainCreate */
24411
+ requestBody: {
24412
+ content: {
24413
+ "application/json": {
24414
+ domain: string;
24415
+ /** @description Add Metadata */
24416
+ metadata?: {
24417
+ [key: string]: unknown;
24418
+ };
24419
+ };
24420
+ };
24421
+ };
24422
+ responses: {
24423
+ /** @description Customdomain */
24424
+ 200: {
24425
+ headers: {
24426
+ [name: string]: unknown;
24427
+ };
24428
+ content: {
24429
+ "application/json": {
24430
+ /** @description Customdomain ID */
24431
+ id: string;
24432
+ domain: string;
24433
+ token: string;
24434
+ /** @enum {unknown} */
24435
+ status: "PENDING" | "VERIFYING" | "ACTIVE" | "FAILED" | "DEGRADED";
24436
+ attempts: number;
24437
+ /** Format: date-time */
24438
+ nextCheck?: string;
24439
+ /** Format: date-time */
24440
+ lastCheck?: string;
24441
+ /** @description User feedback error from last check */
24442
+ errorLog?: string;
24443
+ /** Format: date-time */
24444
+ verifiedAt?: string;
24445
+ /** @description Per-record DNS status from the last check: what each record points to now vs. expected */
24446
+ records?: {
24447
+ type: string;
24448
+ host: string;
24449
+ expected: string;
24450
+ observed: string[];
24451
+ ok: boolean;
24452
+ }[];
23849
24453
  /** @description Object is related with this account */
23850
24454
  account: string;
23851
24455
  /**
@@ -25196,6 +25800,157 @@ export interface operations {
25196
25800
  };
25197
25801
  };
25198
25802
  };
25803
+ "session/meSessions": {
25804
+ parameters: {
25805
+ query?: never;
25806
+ header?: never;
25807
+ path?: never;
25808
+ cookie?: never;
25809
+ };
25810
+ requestBody?: never;
25811
+ responses: {
25812
+ /** @description Default Response */
25813
+ 200: {
25814
+ headers: {
25815
+ [name: string]: unknown;
25816
+ };
25817
+ content: {
25818
+ "application/json": {
25819
+ results: components["schemas"]["Session"][];
25820
+ /** @description The id of the session this request came through: the cookie, or the session the bearer token was issued in. Null when the token predates session ids. */
25821
+ current_session_id: string | null;
25822
+ };
25823
+ };
25824
+ };
25825
+ /**
25826
+ * @description `mfa_pending` — A second-factor challenge is pending; answer it before continuing.
25827
+ *
25828
+ * `not_logged_in` — There is no signed-in session for this request.
25829
+ */
25830
+ 401: {
25831
+ headers: {
25832
+ [name: string]: unknown;
25833
+ };
25834
+ content: {
25835
+ "application/json": components["schemas"]["ErrorResponse"] & {
25836
+ /** @enum {string} */
25837
+ error_code?: "mfa_pending" | "not_logged_in";
25838
+ };
25839
+ };
25840
+ };
25841
+ /** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
25842
+ 404: {
25843
+ headers: {
25844
+ [name: string]: unknown;
25845
+ };
25846
+ content: {
25847
+ "application/json": components["schemas"]["ErrorResponse"] & {
25848
+ /** @enum {string} */
25849
+ error_code?: "account_not_found";
25850
+ };
25851
+ };
25852
+ };
25853
+ /** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
25854
+ 429: {
25855
+ headers: {
25856
+ [name: string]: unknown;
25857
+ };
25858
+ content: {
25859
+ "application/json": components["schemas"]["ErrorResponse"] & {
25860
+ /** @enum {string} */
25861
+ error_code?: "too_many_requests";
25862
+ };
25863
+ };
25864
+ };
25865
+ /** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
25866
+ 500: {
25867
+ headers: {
25868
+ [name: string]: unknown;
25869
+ };
25870
+ content: {
25871
+ "application/json": components["schemas"]["ErrorResponse"] & {
25872
+ /** @enum {string} */
25873
+ error_code?: "internal_error";
25874
+ };
25875
+ };
25876
+ };
25877
+ };
25878
+ };
25879
+ "session/meRevokeOtherSessions": {
25880
+ parameters: {
25881
+ query?: never;
25882
+ header?: never;
25883
+ path?: never;
25884
+ cookie?: never;
25885
+ };
25886
+ requestBody?: never;
25887
+ responses: {
25888
+ /** @description Default Response */
25889
+ 200: {
25890
+ headers: {
25891
+ [name: string]: unknown;
25892
+ };
25893
+ content: {
25894
+ "application/json": {
25895
+ /** @description How many sessions were ended. */
25896
+ revoked: number;
25897
+ };
25898
+ };
25899
+ };
25900
+ /**
25901
+ * @description `mfa_pending` — A second-factor challenge is pending; answer it before continuing.
25902
+ *
25903
+ * `not_logged_in` — There is no signed-in session for this request.
25904
+ */
25905
+ 401: {
25906
+ headers: {
25907
+ [name: string]: unknown;
25908
+ };
25909
+ content: {
25910
+ "application/json": components["schemas"]["ErrorResponse"] & {
25911
+ /** @enum {string} */
25912
+ error_code?: "mfa_pending" | "not_logged_in";
25913
+ };
25914
+ };
25915
+ };
25916
+ /** @description `account_not_found` — No Auth Account matches the request (domain, header or token). */
25917
+ 404: {
25918
+ headers: {
25919
+ [name: string]: unknown;
25920
+ };
25921
+ content: {
25922
+ "application/json": components["schemas"]["ErrorResponse"] & {
25923
+ /** @enum {string} */
25924
+ error_code?: "account_not_found";
25925
+ };
25926
+ };
25927
+ };
25928
+ /** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
25929
+ 429: {
25930
+ headers: {
25931
+ [name: string]: unknown;
25932
+ };
25933
+ content: {
25934
+ "application/json": components["schemas"]["ErrorResponse"] & {
25935
+ /** @enum {string} */
25936
+ error_code?: "too_many_requests";
25937
+ };
25938
+ };
25939
+ };
25940
+ /** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
25941
+ 500: {
25942
+ headers: {
25943
+ [name: string]: unknown;
25944
+ };
25945
+ content: {
25946
+ "application/json": components["schemas"]["ErrorResponse"] & {
25947
+ /** @enum {string} */
25948
+ error_code?: "internal_error";
25949
+ };
25950
+ };
25951
+ };
25952
+ };
25953
+ };
25199
25954
  "session/logout": {
25200
25955
  parameters: {
25201
25956
  query?: {