@workos/openapi-spec 0.89.0 → 0.91.0

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/types.d.ts CHANGED
@@ -1418,7 +1418,7 @@ export interface paths {
1418
1418
  };
1419
1419
  /**
1420
1420
  * List data integrations
1421
- * @description Lists the environment's data integrations configured with `custom` or `organization` credentials, including custom providers and API key integrations.
1421
+ * @description Lists the environment's data integrations configured with `custom` or `organization` credentials, including custom providers and API key integrations. Both user-owned and organization-owned roots are returned, each as its own row with an `ownership`; filter with `ownership` to return only one kind.
1422
1422
  */
1423
1423
  get: operations["DataIntegrationsManagementController_listDataIntegrations"];
1424
1424
  put?: never;
@@ -1442,18 +1442,18 @@ export interface paths {
1442
1442
  };
1443
1443
  /**
1444
1444
  * Get a data integration
1445
- * @description Retrieves a data integration by its slug.
1445
+ * @description Retrieves the user-owned data integration by its slug.
1446
1446
  */
1447
1447
  get: operations["DataIntegrationsManagementController_getDataIntegration"];
1448
1448
  /**
1449
1449
  * Update a data integration
1450
- * @description Updates the description, enabled state, or custom credentials of a data integration. For custom providers, `custom_provider` updates the OAuth definition.
1450
+ * @description Updates the description, enabled state, or custom credentials of the user-owned data integration. For custom providers, `custom_provider` updates the OAuth definition.
1451
1451
  */
1452
1452
  put: operations["DataIntegrationsManagementController_updateDataIntegration"];
1453
1453
  post?: never;
1454
1454
  /**
1455
1455
  * Delete a data integration
1456
- * @description Deletes a data integration and all of its connected installations. For a custom provider, also deletes the custom provider definition.
1456
+ * @description Deletes the user-owned data integration and all of its connected installations. For a custom provider, the provider definition is deleted once no organization-owned root references it either.
1457
1457
  */
1458
1458
  delete: operations["DataIntegrationsManagementController_deleteDataIntegration"];
1459
1459
  options?: never;
@@ -1541,6 +1541,34 @@ export interface paths {
1541
1541
  patch?: never;
1542
1542
  trace?: never;
1543
1543
  };
1544
+ "/data-integrations/{slug}/organization": {
1545
+ parameters: {
1546
+ query?: never;
1547
+ header?: never;
1548
+ path?: never;
1549
+ cookie?: never;
1550
+ };
1551
+ /**
1552
+ * Get an organization-owned data integration
1553
+ * @description Retrieves the organization-owned data integration for a provider by its slug. The `/organization` suffix selects the environment-level organization-owned root for the provider; it does not name a particular organization.
1554
+ */
1555
+ get: operations["DataIntegrationsManagementController_getOrganizationDataIntegration"];
1556
+ /**
1557
+ * Update an organization-owned data integration
1558
+ * @description Updates the description, enabled state, or custom credentials of the organization-owned data integration for a provider. For custom providers, `custom_provider` updates the OAuth definition, which is shared with the user-owned root. The `/organization` suffix selects the environment-level organization-owned root for the provider; it does not name a particular organization.
1559
+ */
1560
+ put: operations["DataIntegrationsManagementController_updateOrganizationDataIntegration"];
1561
+ post?: never;
1562
+ /**
1563
+ * Delete an organization-owned data integration
1564
+ * @description Deletes the organization-owned data integration for a provider and all of its connected installations. For a custom provider, the provider definition is deleted once no user-owned root references it either. The `/organization` suffix selects the environment-level organization-owned root for the provider; it does not name a particular organization.
1565
+ */
1566
+ delete: operations["DataIntegrationsManagementController_deleteOrganizationDataIntegration"];
1567
+ options?: never;
1568
+ head?: never;
1569
+ patch?: never;
1570
+ trace?: never;
1571
+ };
1544
1572
  "/data-integrations/{slug}/token": {
1545
1573
  parameters: {
1546
1574
  query?: never;
@@ -2539,6 +2567,50 @@ export interface paths {
2539
2567
  patch?: never;
2540
2568
  trace?: never;
2541
2569
  };
2570
+ "/user_management/authkit_oauth_resources": {
2571
+ parameters: {
2572
+ query?: never;
2573
+ header?: never;
2574
+ path?: never;
2575
+ cookie?: never;
2576
+ };
2577
+ /**
2578
+ * List MCP resource indicators
2579
+ * @description Lists the MCP resource indicators configured for an environment.
2580
+ */
2581
+ get: operations["AuthkitOauthResourcesController_list"];
2582
+ put?: never;
2583
+ /**
2584
+ * Create an MCP resource indicator
2585
+ * @description Adds an MCP resource indicator (RFC 8707) to an environment, leaving any others in place.
2586
+ */
2587
+ post: operations["AuthkitOauthResourcesController_create"];
2588
+ delete?: never;
2589
+ options?: never;
2590
+ head?: never;
2591
+ patch?: never;
2592
+ trace?: never;
2593
+ };
2594
+ "/user_management/authkit_oauth_resources/{id}": {
2595
+ parameters: {
2596
+ query?: never;
2597
+ header?: never;
2598
+ path?: never;
2599
+ cookie?: never;
2600
+ };
2601
+ get?: never;
2602
+ put?: never;
2603
+ post?: never;
2604
+ /**
2605
+ * Delete an MCP resource indicator
2606
+ * @description Removes an MCP resource indicator from an environment. Any application consents granted against it are removed too.
2607
+ */
2608
+ delete: operations["AuthkitOauthResourcesController_delete"];
2609
+ options?: never;
2610
+ head?: never;
2611
+ patch?: never;
2612
+ trace?: never;
2613
+ };
2542
2614
  "/user_management/authorize": {
2543
2615
  parameters: {
2544
2616
  query?: never;
@@ -3419,7 +3491,7 @@ export interface paths {
3419
3491
  post: operations["DataIntegrationsUserManagementController_createUserDataInstallation"];
3420
3492
  /**
3421
3493
  * Delete a connected account
3422
- * @description Disconnects WorkOS's account for the user, including removing any stored access and refresh tokens. The user will need to reauthorize if they want to reconnect. This does not revoke access on the provider side.
3494
+ * @description Disconnects WorkOS's account for the user, including removing any stored access and refresh tokens. The user will need to reauthorize if they want to reconnect. Access is not revoked on the provider side, except for the WorkOS OAuth provider, whose underlying AuthKit grant is revoked.
3423
3495
  */
3424
3496
  delete: operations["DataIntegrationsUserManagementController_deleteUserDataInstallation"];
3425
3497
  options?: never;
@@ -5268,11 +5340,11 @@ export interface components {
5268
5340
  */
5269
5341
  provider: string;
5270
5342
  /**
5271
- * @description Who owns the Data Integration. `userland_user` (the default) creates the integration users connect their own accounts to; `organization` creates the root organizations connect to. Ownership is fixed at creation, and one integration of each ownership may exist per provider. Independent of `credentials.type`.
5272
- * @example userland_user
5343
+ * @description Who owns the Data Integration. `user` (the default) creates the integration users connect their own accounts to; `organization` creates the root organizations connect to. Ownership is fixed at creation, and one integration of each ownership may exist per provider. Independent of `credentials.type`.
5344
+ * @example user
5273
5345
  * @enum {string}
5274
5346
  */
5275
- ownership?: "userland_user" | "organization";
5347
+ ownership?: "user" | "organization";
5276
5348
  /**
5277
5349
  * @description An optional description of the Data Integration.
5278
5350
  * @example Production GitHub app
@@ -5501,6 +5573,18 @@ export interface components {
5501
5573
  */
5502
5574
  user_agent?: string;
5503
5575
  };
5576
+ CreateAuthkitOauthResourceDto: {
5577
+ /**
5578
+ * @description The resource URI. May be a wildcard pattern with a single `*` in the leftmost hostname label, where enabled for the environment.
5579
+ * @example https://api.example.com
5580
+ */
5581
+ uri: string;
5582
+ /**
5583
+ * @description Whether the resource being created becomes the environment default, clearing any previous default. Applies at creation only — this API has no update endpoint yet, so changing the default on an existing resource is done from the dashboard. A wildcard pattern cannot be the default.
5584
+ * @example false
5585
+ */
5586
+ default?: boolean;
5587
+ };
5504
5588
  CreateRedirectUriDto: {
5505
5589
  /**
5506
5590
  * @description The redirect URI to create.
@@ -17343,11 +17427,11 @@ export interface components {
17343
17427
  */
17344
17428
  integration_type: string;
17345
17429
  /**
17346
- * @description Who owns the Data Integration: `userland_user` when users connect their own accounts, `organization` when organizations connect. Fixed at creation.
17347
- * @example userland_user
17430
+ * @description Who owns the Data Integration: `user` when users connect their own accounts, `organization` when organizations connect. Fixed at creation.
17431
+ * @example user
17348
17432
  * @enum {string}
17349
17433
  */
17350
- ownership: "userland_user" | "organization";
17434
+ ownership: "user" | "organization";
17351
17435
  /**
17352
17436
  * @description An optional description of the Data Integration.
17353
17437
  * @example Production GitHub app
@@ -17926,7 +18010,7 @@ export interface components {
17926
18010
  * @description Use updated_at instead.
17927
18011
  */
17928
18012
  updatedAt: string;
17929
- /** @description The user's [connected account](/reference/pipes/connected-account) for this provider, or `null` if the user has not connected. */
18013
+ /** @description The user's compatibility [connected account](/reference/pipes/connected-account) for this provider, or `null` when the compatibility slot is empty. This legacy field never selects a standard connection. */
17930
18014
  connected_account: {
17931
18015
  /**
17932
18016
  * @description Distinguishes the connected account object.
@@ -18026,7 +18110,7 @@ export interface components {
18026
18110
  */
18027
18111
  updatedAt: string;
18028
18112
  } | null;
18029
- /** @description The user's connected accounts for this provider in the requested ownership context. */
18113
+ /** @description The user's connected accounts for this provider in the requested ownership context. This contains only the compatibility connection unless `supports_multiple_connections` is `true`. */
18030
18114
  connected_accounts: {
18031
18115
  /**
18032
18116
  * @description Distinguishes the connected account object.
@@ -18237,6 +18321,38 @@ export interface components {
18237
18321
  */
18238
18322
  message: string;
18239
18323
  };
18324
+ AuthkitOauthResource: {
18325
+ /**
18326
+ * @description The object type.
18327
+ * @constant
18328
+ */
18329
+ object: "authkit_oauth_resource";
18330
+ /**
18331
+ * @description The ID of the MCP resource indicator.
18332
+ * @example authkit_oauth_resource_01EHZNVPK3SFK441A1RGBFSHRT
18333
+ */
18334
+ id: string;
18335
+ /**
18336
+ * @description The resource URI.
18337
+ * @example https://api.example.com
18338
+ */
18339
+ uri: string;
18340
+ /**
18341
+ * @description Whether this is the default MCP resource indicator for the environment.
18342
+ * @example false
18343
+ */
18344
+ default: boolean;
18345
+ /**
18346
+ * @description The timestamp when the MCP resource indicator was created.
18347
+ * @example 2026-01-15T12:00:00.000Z
18348
+ */
18349
+ created_at: string;
18350
+ /**
18351
+ * @description The timestamp when the MCP resource indicator was last updated.
18352
+ * @example 2026-01-15T12:00:00.000Z
18353
+ */
18354
+ updated_at: string;
18355
+ };
18240
18356
  RedirectUri: {
18241
18357
  /**
18242
18358
  * @description The object type.
@@ -19122,7 +19238,7 @@ export interface components {
19122
19238
  */
19123
19239
  verification_uri: string;
19124
19240
  /**
19125
- * Format: password
19241
+ * Format: uri
19126
19242
  * @description Verification URI that includes the user code.
19127
19243
  * @example https://authkit_domain/device?user_code=BCDF-GHJK
19128
19244
  */
@@ -20920,6 +21036,8 @@ export interface operations {
20920
21036
  limit?: number;
20921
21037
  /** @description Order the results by the creation time. Supported values are `"asc"` (ascending), `"desc"` (descending), and `"normal"` (descending with reversed cursor semantics where `before` fetches older records and `after` fetches newer records). Defaults to `normal`. */
20922
21038
  order?: components["schemas"]["PaginationOrder"];
21039
+ /** @description Only return sessions of instances acting within this organization. */
21040
+ organization_id?: string;
20923
21041
  /** @description Only return sessions of instances minted from this blueprint. */
20924
21042
  agent_blueprint_id?: string;
20925
21043
  /** @description Only return sessions belonging to this agent instance. */
@@ -28519,6 +28637,8 @@ export interface operations {
28519
28637
  limit?: number;
28520
28638
  /** @description Order the results by the creation time. Supported values are `"asc"` (ascending), `"desc"` (descending), and `"normal"` (descending with reversed cursor semantics where `before` fetches older records and `after` fetches newer records). Defaults to `normal`. */
28521
28639
  order?: components["schemas"]["PaginationOrder"];
28640
+ /** @description Only return Data Integrations with this ownership: `user` for the integrations users connect their own accounts to, or `organization` for the roots organizations connect to. Omit to return both. */
28641
+ ownership?: "user" | "organization";
28522
28642
  };
28523
28643
  header?: never;
28524
28644
  path?: never;
@@ -28542,6 +28662,36 @@ export interface operations {
28542
28662
  };
28543
28663
  content?: never;
28544
28664
  };
28665
+ /** @description Organization-owned data integrations are not available for this environment. */
28666
+ 404: {
28667
+ headers: {
28668
+ [name: string]: unknown;
28669
+ };
28670
+ content: {
28671
+ "application/json": {
28672
+ /**
28673
+ * @description A human-readable description of the error.
28674
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
28675
+ */
28676
+ message: string;
28677
+ };
28678
+ };
28679
+ };
28680
+ /** @description Unprocessable Entity */
28681
+ 422: {
28682
+ headers: {
28683
+ [name: string]: unknown;
28684
+ };
28685
+ content: {
28686
+ "application/json": {
28687
+ /**
28688
+ * @description A human-readable description of the error.
28689
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
28690
+ */
28691
+ message: string;
28692
+ };
28693
+ };
28694
+ };
28545
28695
  };
28546
28696
  };
28547
28697
  DataIntegrationsManagementController_createDataIntegration: {
@@ -29275,6 +29425,11 @@ export interface operations {
29275
29425
  * @enum {string}
29276
29426
  */
29277
29427
  connection_owner?: "user" | "organization";
29428
+ /**
29429
+ * @description Set to `true` to use the plural connection contract. If no `connected_account_id` is supplied and several connections match, the request returns `account_selection_required`. When omitted or `false`, only the compatibility connection is considered.
29430
+ * @example true
29431
+ */
29432
+ supports_multiple_connections?: boolean;
29278
29433
  };
29279
29434
  };
29280
29435
  };
@@ -29382,41 +29537,110 @@ export interface operations {
29382
29537
  };
29383
29538
  };
29384
29539
  };
29385
- DataIntegrationsController_getUserlandUserToken: {
29540
+ DataIntegrationsManagementController_getOrganizationDataIntegration: {
29386
29541
  parameters: {
29387
29542
  query?: never;
29388
29543
  header?: never;
29389
29544
  path: {
29390
- /** @description The identifier of the integration. */
29545
+ /** @description The slug identifier of the data integration. */
29391
29546
  slug: string;
29392
29547
  };
29393
29548
  cookie?: never;
29394
29549
  };
29395
- requestBody: {
29396
- content: {
29397
- "application/json": {
29398
- /**
29399
- * @description A [User](/reference/authkit/user) identifier. When `connection_owner` is `organization`, this is the user the credentials are vended on behalf of; they must be an active member of the organization.
29400
- * @example user_01EHZNVPK3SFK441A1RGBFSHRT
29401
- */
29402
- user_id: string;
29403
- /**
29404
- * @description An [Organization](/reference/organization) identifier. Optional parameter to scope the connection to a specific organization. Required when `connection_owner` is `organization`.
29405
- * @example org_01EHZNVPK3SFK441A1RGBFSHRT
29406
- */
29407
- organization_id?: string;
29408
- /**
29409
- * @description A [connected account](/reference/pipes/connected-account) identifier. Use this to select a specific connection when the user has several for this provider.
29410
- * @example data_installation_01EHZNVPK3SFK441A1RGBFSHRT
29411
- */
29412
- connected_account_id?: string;
29550
+ requestBody?: never;
29551
+ responses: {
29552
+ /** @description OK */
29553
+ 200: {
29554
+ headers: {
29555
+ [name: string]: unknown;
29556
+ };
29557
+ content: {
29413
29558
  /**
29414
- * @description Which connection to vend from. `user` (the default) vends the user's own connection and requires `user_id`. `organization` vends the organization's shared connection and requires `organization_id`.
29415
- * @example user
29416
- * @enum {string}
29559
+ * @example {
29560
+ * "object": "data_integration",
29561
+ * "id": "data_integration_01EHZNVPK3SFK441A1RGBFSHRT",
29562
+ * "slug": "github",
29563
+ * "integration_type": "github",
29564
+ * "ownership": "organization",
29565
+ * "description": "Production GitHub app",
29566
+ * "enabled": true,
29567
+ * "state": "valid",
29568
+ * "scopes": [
29569
+ * "repo",
29570
+ * "read:org"
29571
+ * ],
29572
+ * "redirect_uri": "https://api.workos.com/data-integrations/github/dik_01EHZNVPK3SFK441A1RGBFSHRT/callback",
29573
+ * "auth_methods": [
29574
+ * "oauth"
29575
+ * ],
29576
+ * "credentials": {
29577
+ * "type": "custom",
29578
+ * "client_id": "Iv1.abc123",
29579
+ * "redacted_client_secret": "6789"
29580
+ * },
29581
+ * "installation": null,
29582
+ * "config": {
29583
+ * "account": "myorg-myaccount"
29584
+ * },
29585
+ * "custom_provider": {
29586
+ * "name": "My OAuth App",
29587
+ * "authorization_url": "https://provider.example.com/oauth/authorize",
29588
+ * "token_url": "https://provider.example.com/oauth/token",
29589
+ * "refresh_token_url": "https://provider.example.com/oauth/token",
29590
+ * "pkce_enabled": true,
29591
+ * "request_scope_separator": " ",
29592
+ * "scopes_required": false,
29593
+ * "client_secret_required": true,
29594
+ * "additional_authorization_parameters": {
29595
+ * "prompt": "consent"
29596
+ * },
29597
+ * "token_body_content_type": "application/x-www-form-urlencoded",
29598
+ * "authenticate_via": "request_body"
29599
+ * },
29600
+ * "created_at": "2026-01-15T12:00:00.000Z",
29601
+ * "updated_at": "2026-01-15T12:00:00.000Z"
29602
+ * }
29417
29603
  */
29418
- connection_owner?: "user" | "organization";
29604
+ "application/json": components["schemas"]["DataIntegration"];
29605
+ };
29606
+ };
29607
+ /** @description Unauthorized */
29608
+ 401: {
29609
+ headers: {
29610
+ [name: string]: unknown;
29611
+ };
29612
+ content?: never;
29613
+ };
29614
+ /** @description Not Found */
29615
+ 404: {
29616
+ headers: {
29617
+ [name: string]: unknown;
29419
29618
  };
29619
+ content: {
29620
+ "application/json": {
29621
+ /**
29622
+ * @description A human-readable description of the error.
29623
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
29624
+ */
29625
+ message: string;
29626
+ };
29627
+ };
29628
+ };
29629
+ };
29630
+ };
29631
+ DataIntegrationsManagementController_updateOrganizationDataIntegration: {
29632
+ parameters: {
29633
+ query?: never;
29634
+ header?: never;
29635
+ path: {
29636
+ /** @description The slug identifier of the data integration. */
29637
+ slug: string;
29638
+ };
29639
+ cookie?: never;
29640
+ };
29641
+ requestBody: {
29642
+ content: {
29643
+ "application/json": components["schemas"]["UpdateDataIntegrationDto"];
29420
29644
  };
29421
29645
  };
29422
29646
  responses: {
@@ -29426,7 +29650,53 @@ export interface operations {
29426
29650
  [name: string]: unknown;
29427
29651
  };
29428
29652
  content: {
29429
- "application/json": components["schemas"]["DataIntegrationAccessTokenResponse"];
29653
+ /**
29654
+ * @example {
29655
+ * "object": "data_integration",
29656
+ * "id": "data_integration_01EHZNVPK3SFK441A1RGBFSHRT",
29657
+ * "slug": "github",
29658
+ * "integration_type": "github",
29659
+ * "ownership": "organization",
29660
+ * "description": "Production GitHub app",
29661
+ * "enabled": true,
29662
+ * "state": "valid",
29663
+ * "scopes": [
29664
+ * "repo",
29665
+ * "read:org"
29666
+ * ],
29667
+ * "redirect_uri": "https://api.workos.com/data-integrations/github/dik_01EHZNVPK3SFK441A1RGBFSHRT/callback",
29668
+ * "auth_methods": [
29669
+ * "oauth"
29670
+ * ],
29671
+ * "credentials": {
29672
+ * "type": "custom",
29673
+ * "client_id": "Iv1.abc123",
29674
+ * "redacted_client_secret": "6789"
29675
+ * },
29676
+ * "installation": null,
29677
+ * "config": {
29678
+ * "account": "myorg-myaccount"
29679
+ * },
29680
+ * "custom_provider": {
29681
+ * "name": "My OAuth App",
29682
+ * "authorization_url": "https://provider.example.com/oauth/authorize",
29683
+ * "token_url": "https://provider.example.com/oauth/token",
29684
+ * "refresh_token_url": "https://provider.example.com/oauth/token",
29685
+ * "pkce_enabled": true,
29686
+ * "request_scope_separator": " ",
29687
+ * "scopes_required": false,
29688
+ * "client_secret_required": true,
29689
+ * "additional_authorization_parameters": {
29690
+ * "prompt": "consent"
29691
+ * },
29692
+ * "token_body_content_type": "application/x-www-form-urlencoded",
29693
+ * "authenticate_via": "request_body"
29694
+ * },
29695
+ * "created_at": "2026-01-15T12:00:00.000Z",
29696
+ * "updated_at": "2026-01-15T12:00:00.000Z"
29697
+ * }
29698
+ */
29699
+ "application/json": components["schemas"]["DataIntegration"];
29430
29700
  };
29431
29701
  };
29432
29702
  /** @description Bad Request */
@@ -29451,7 +29721,7 @@ export interface operations {
29451
29721
  };
29452
29722
  content?: never;
29453
29723
  };
29454
- /** @description The user is not an active member of the organization named for an organization connection. */
29724
+ /** @description Forbidden */
29455
29725
  403: {
29456
29726
  headers: {
29457
29727
  [name: string]: unknown;
@@ -29466,7 +29736,7 @@ export interface operations {
29466
29736
  };
29467
29737
  };
29468
29738
  };
29469
- /** @description The data integration or selected connected account was not found. */
29739
+ /** @description Not Found */
29470
29740
  404: {
29471
29741
  headers: {
29472
29742
  [name: string]: unknown;
@@ -29481,64 +29751,242 @@ export interface operations {
29481
29751
  };
29482
29752
  };
29483
29753
  };
29484
- /** @description Several connected accounts match this user for the provider; one must be named. */
29485
29754
  409: {
29486
- headers: {
29487
- [name: string]: unknown;
29488
- };
29489
- content: {
29490
- "application/json": components["schemas"]["AccountSelectionRequiredError"];
29491
- };
29492
- };
29493
- /** @description The matched installation uses a different auth method than this endpoint expects. */
29494
- 422: {
29495
- headers: {
29496
- [name: string]: unknown;
29497
- };
29498
- content: {
29499
- "application/json": components["schemas"]["AuthMethodMismatchError"];
29500
- };
29501
- };
29502
- };
29503
- };
29504
- DirectoriesController_list: {
29505
- parameters: {
29506
- query?: {
29507
- /** @description An object ID that defines your place in the list. When the ID is not present, you are at the end of the list. */
29508
- before?: string;
29509
- /** @description An object ID that defines your place in the list. When the ID is not present, you are at the end of the list. */
29510
- after?: string;
29511
- /** @description Upper limit on the number of objects to return, between `1` and `100`. */
29512
- limit?: number;
29513
- /** @description Order the results by the creation time. Defaults to `normal`. */
29514
- order?: components["schemas"]["PaginationOrder"];
29515
- /** @description Filter Directories by their associated organization. */
29516
- organization_id?: string;
29517
- /** @description Searchable text to match against Directory names. */
29518
- search?: string;
29519
- /**
29520
- * @deprecated
29521
- * @description Filter Directories by their associated domain.
29522
- */
29523
- domain?: string;
29524
- };
29525
- header?: never;
29526
- path?: never;
29527
- cookie?: never;
29528
- };
29529
- requestBody?: never;
29530
- responses: {
29531
- /** @description OK */
29532
- 200: {
29533
- headers: {
29534
- [name: string]: unknown;
29535
- };
29536
- content: {
29537
- "application/json": components["schemas"]["DirectoryList"];
29538
- };
29539
- };
29540
- /** @description Forbidden */
29541
- 403: {
29755
+ headers: {
29756
+ [name: string]: unknown;
29757
+ };
29758
+ content: {
29759
+ "application/json": {
29760
+ /**
29761
+ * @description A human-readable description of the error.
29762
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
29763
+ */
29764
+ message: string;
29765
+ };
29766
+ };
29767
+ };
29768
+ /** @description Unprocessable Entity */
29769
+ 422: {
29770
+ headers: {
29771
+ [name: string]: unknown;
29772
+ };
29773
+ content: {
29774
+ "application/json": {
29775
+ /**
29776
+ * @description A human-readable description of the error.
29777
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
29778
+ */
29779
+ message: string;
29780
+ };
29781
+ };
29782
+ };
29783
+ };
29784
+ };
29785
+ DataIntegrationsManagementController_deleteOrganizationDataIntegration: {
29786
+ parameters: {
29787
+ query?: never;
29788
+ header?: never;
29789
+ path: {
29790
+ /** @description The slug identifier of the data integration. */
29791
+ slug: string;
29792
+ };
29793
+ cookie?: never;
29794
+ };
29795
+ requestBody?: never;
29796
+ responses: {
29797
+ /** @description No Content */
29798
+ 204: {
29799
+ headers: {
29800
+ [name: string]: unknown;
29801
+ };
29802
+ content?: never;
29803
+ };
29804
+ /** @description Unauthorized */
29805
+ 401: {
29806
+ headers: {
29807
+ [name: string]: unknown;
29808
+ };
29809
+ content?: never;
29810
+ };
29811
+ /** @description Not Found */
29812
+ 404: {
29813
+ headers: {
29814
+ [name: string]: unknown;
29815
+ };
29816
+ content: {
29817
+ "application/json": {
29818
+ /**
29819
+ * @description A human-readable description of the error.
29820
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
29821
+ */
29822
+ message: string;
29823
+ };
29824
+ };
29825
+ };
29826
+ };
29827
+ };
29828
+ DataIntegrationsController_getUserlandUserToken: {
29829
+ parameters: {
29830
+ query?: never;
29831
+ header?: never;
29832
+ path: {
29833
+ /** @description The identifier of the integration. */
29834
+ slug: string;
29835
+ };
29836
+ cookie?: never;
29837
+ };
29838
+ requestBody: {
29839
+ content: {
29840
+ "application/json": {
29841
+ /**
29842
+ * @description A [User](/reference/authkit/user) identifier. When `connection_owner` is `organization`, this is the user the credentials are vended on behalf of; they must be an active member of the organization.
29843
+ * @example user_01EHZNVPK3SFK441A1RGBFSHRT
29844
+ */
29845
+ user_id: string;
29846
+ /**
29847
+ * @description An [Organization](/reference/organization) identifier. Optional parameter to scope the connection to a specific organization. Required when `connection_owner` is `organization`.
29848
+ * @example org_01EHZNVPK3SFK441A1RGBFSHRT
29849
+ */
29850
+ organization_id?: string;
29851
+ /**
29852
+ * @description A [connected account](/reference/pipes/connected-account) identifier. Use this to select a specific connection when the user has several for this provider.
29853
+ * @example data_installation_01EHZNVPK3SFK441A1RGBFSHRT
29854
+ */
29855
+ connected_account_id?: string;
29856
+ /**
29857
+ * @description Which connection to vend from. `user` (the default) vends the user's own connection and requires `user_id`. `organization` vends the organization's shared connection and requires `organization_id`.
29858
+ * @example user
29859
+ * @enum {string}
29860
+ */
29861
+ connection_owner?: "user" | "organization";
29862
+ /**
29863
+ * @description Set to `true` to use the plural connection contract. If no `connected_account_id` is supplied and several connections match, the request returns `account_selection_required`. When omitted or `false`, only the compatibility connection is considered.
29864
+ * @example true
29865
+ */
29866
+ supports_multiple_connections?: boolean;
29867
+ };
29868
+ };
29869
+ };
29870
+ responses: {
29871
+ /** @description OK */
29872
+ 200: {
29873
+ headers: {
29874
+ [name: string]: unknown;
29875
+ };
29876
+ content: {
29877
+ "application/json": components["schemas"]["DataIntegrationAccessTokenResponse"];
29878
+ };
29879
+ };
29880
+ /** @description Bad Request */
29881
+ 400: {
29882
+ headers: {
29883
+ [name: string]: unknown;
29884
+ };
29885
+ content: {
29886
+ "application/json": {
29887
+ /**
29888
+ * @description A human-readable description of the error.
29889
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
29890
+ */
29891
+ message: string;
29892
+ };
29893
+ };
29894
+ };
29895
+ /** @description Unauthorized */
29896
+ 401: {
29897
+ headers: {
29898
+ [name: string]: unknown;
29899
+ };
29900
+ content?: never;
29901
+ };
29902
+ /** @description The user is not an active member of the organization named for an organization connection. */
29903
+ 403: {
29904
+ headers: {
29905
+ [name: string]: unknown;
29906
+ };
29907
+ content: {
29908
+ "application/json": {
29909
+ /**
29910
+ * @description A human-readable description of the error.
29911
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
29912
+ */
29913
+ message: string;
29914
+ };
29915
+ };
29916
+ };
29917
+ /** @description The data integration or selected connected account was not found. */
29918
+ 404: {
29919
+ headers: {
29920
+ [name: string]: unknown;
29921
+ };
29922
+ content: {
29923
+ "application/json": {
29924
+ /**
29925
+ * @description A human-readable description of the error.
29926
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
29927
+ */
29928
+ message: string;
29929
+ };
29930
+ };
29931
+ };
29932
+ /** @description Several connected accounts match this user for the provider; one must be named. */
29933
+ 409: {
29934
+ headers: {
29935
+ [name: string]: unknown;
29936
+ };
29937
+ content: {
29938
+ "application/json": components["schemas"]["AccountSelectionRequiredError"];
29939
+ };
29940
+ };
29941
+ /** @description The matched installation uses a different auth method than this endpoint expects. */
29942
+ 422: {
29943
+ headers: {
29944
+ [name: string]: unknown;
29945
+ };
29946
+ content: {
29947
+ "application/json": components["schemas"]["AuthMethodMismatchError"];
29948
+ };
29949
+ };
29950
+ };
29951
+ };
29952
+ DirectoriesController_list: {
29953
+ parameters: {
29954
+ query?: {
29955
+ /** @description An object ID that defines your place in the list. When the ID is not present, you are at the end of the list. */
29956
+ before?: string;
29957
+ /** @description An object ID that defines your place in the list. When the ID is not present, you are at the end of the list. */
29958
+ after?: string;
29959
+ /** @description Upper limit on the number of objects to return, between `1` and `100`. */
29960
+ limit?: number;
29961
+ /** @description Order the results by the creation time. Defaults to `normal`. */
29962
+ order?: components["schemas"]["PaginationOrder"];
29963
+ /** @description Filter Directories by their associated organization. */
29964
+ organization_id?: string;
29965
+ /** @description Searchable text to match against Directory names. */
29966
+ search?: string;
29967
+ /**
29968
+ * @deprecated
29969
+ * @description Filter Directories by their associated domain.
29970
+ */
29971
+ domain?: string;
29972
+ };
29973
+ header?: never;
29974
+ path?: never;
29975
+ cookie?: never;
29976
+ };
29977
+ requestBody?: never;
29978
+ responses: {
29979
+ /** @description OK */
29980
+ 200: {
29981
+ headers: {
29982
+ [name: string]: unknown;
29983
+ };
29984
+ content: {
29985
+ "application/json": components["schemas"]["DirectoryList"];
29986
+ };
29987
+ };
29988
+ /** @description Forbidden */
29989
+ 403: {
29542
29990
  headers: {
29543
29991
  [name: string]: unknown;
29544
29992
  };
@@ -34659,6 +35107,212 @@ export interface operations {
34659
35107
  };
34660
35108
  };
34661
35109
  };
35110
+ AuthkitOauthResourcesController_list: {
35111
+ parameters: {
35112
+ query?: {
35113
+ /** @description An object ID that defines your place in the list. When the ID is not present, you are at the end of the list. For example, if you make a list request and receive 100 objects, ending with `"obj_123"`, your subsequent call can include `before="obj_123"` to fetch a new batch of objects before `"obj_123"`. */
35114
+ before?: string;
35115
+ /** @description An object ID that defines your place in the list. When the ID is not present, you are at the end of the list. For example, if you make a list request and receive 100 objects, ending with `"obj_123"`, your subsequent call can include `after="obj_123"` to fetch a new batch of objects after `"obj_123"`. */
35116
+ after?: string;
35117
+ /** @description Upper limit on the number of objects to return, between `1` and `100`. */
35118
+ limit?: number;
35119
+ /** @description Order the results by the creation time. Supported values are `"asc"` (ascending), `"desc"` (descending), and `"normal"` (descending with reversed cursor semantics where `before` fetches older records and `after` fetches newer records). Defaults to `normal`. */
35120
+ order?: components["schemas"]["PaginationOrder"];
35121
+ };
35122
+ header?: never;
35123
+ path?: never;
35124
+ cookie?: never;
35125
+ };
35126
+ requestBody?: never;
35127
+ responses: {
35128
+ /** @description MCP resource indicators listed successfully. */
35129
+ 200: {
35130
+ headers: {
35131
+ [name: string]: unknown;
35132
+ };
35133
+ content: {
35134
+ "application/json": {
35135
+ /**
35136
+ * @description Indicates this is a list response.
35137
+ * @constant
35138
+ */
35139
+ object?: "list";
35140
+ /** @description Pagination cursors for navigating between pages of results. */
35141
+ list_metadata?: {
35142
+ /**
35143
+ * @description An object ID that defines your place in the list. When the ID is not present, you are at the start of the list.
35144
+ * @example authkit_oauth_resource_01HXYZ123456789ABCDEFGHIJ
35145
+ */
35146
+ before: string | null;
35147
+ /**
35148
+ * @description An object ID that defines your place in the list. When the ID is not present, you are at the end of the list.
35149
+ * @example authkit_oauth_resource_01HXYZ987654321KJIHGFEDCBA
35150
+ */
35151
+ after: string | null;
35152
+ };
35153
+ } & {
35154
+ /** @description The list of records for the current page. */
35155
+ data?: components["schemas"]["AuthkitOauthResource"][];
35156
+ };
35157
+ };
35158
+ };
35159
+ /** @description Unauthorized */
35160
+ 401: {
35161
+ headers: {
35162
+ [name: string]: unknown;
35163
+ };
35164
+ content: {
35165
+ /**
35166
+ * @example {
35167
+ * "message": "Unauthorized"
35168
+ * }
35169
+ */
35170
+ "application/json": {
35171
+ /**
35172
+ * @description A human-readable description of the error.
35173
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
35174
+ */
35175
+ message: string;
35176
+ };
35177
+ };
35178
+ };
35179
+ };
35180
+ };
35181
+ AuthkitOauthResourcesController_create: {
35182
+ parameters: {
35183
+ query?: never;
35184
+ header?: never;
35185
+ path?: never;
35186
+ cookie?: never;
35187
+ };
35188
+ requestBody: {
35189
+ content: {
35190
+ "application/json": components["schemas"]["CreateAuthkitOauthResourceDto"];
35191
+ };
35192
+ };
35193
+ responses: {
35194
+ /** @description MCP resource indicator created successfully. */
35195
+ 201: {
35196
+ headers: {
35197
+ [name: string]: unknown;
35198
+ };
35199
+ content: {
35200
+ /**
35201
+ * @example {
35202
+ * "object": "authkit_oauth_resource",
35203
+ * "id": "authkit_oauth_resource_01EHZNVPK3SFK441A1RGBFSHRT",
35204
+ * "uri": "https://api.example.com",
35205
+ * "default": false,
35206
+ * "created_at": "2026-01-15T12:00:00.000Z",
35207
+ * "updated_at": "2026-01-15T12:00:00.000Z"
35208
+ * }
35209
+ */
35210
+ "application/json": components["schemas"]["AuthkitOauthResource"];
35211
+ };
35212
+ };
35213
+ /** @description Unauthorized */
35214
+ 401: {
35215
+ headers: {
35216
+ [name: string]: unknown;
35217
+ };
35218
+ content: {
35219
+ /**
35220
+ * @example {
35221
+ * "message": "Unauthorized"
35222
+ * }
35223
+ */
35224
+ "application/json": {
35225
+ /**
35226
+ * @description A human-readable description of the error.
35227
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
35228
+ */
35229
+ message: string;
35230
+ };
35231
+ };
35232
+ };
35233
+ /** @description Validation failed. */
35234
+ 422: {
35235
+ headers: {
35236
+ [name: string]: unknown;
35237
+ };
35238
+ content: {
35239
+ /**
35240
+ * @example {
35241
+ * "message": "AuthKit OAuth resource 'https://api.example.com' already exists."
35242
+ * }
35243
+ */
35244
+ "application/json": {
35245
+ /**
35246
+ * @description A human-readable description of the error.
35247
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
35248
+ */
35249
+ message: string;
35250
+ };
35251
+ };
35252
+ };
35253
+ };
35254
+ };
35255
+ AuthkitOauthResourcesController_delete: {
35256
+ parameters: {
35257
+ query?: never;
35258
+ header?: never;
35259
+ path: {
35260
+ /** @description The ID of the MCP resource indicator to delete. */
35261
+ id: string;
35262
+ };
35263
+ cookie?: never;
35264
+ };
35265
+ requestBody?: never;
35266
+ responses: {
35267
+ /** @description MCP resource indicator deleted successfully. */
35268
+ 204: {
35269
+ headers: {
35270
+ [name: string]: unknown;
35271
+ };
35272
+ content?: never;
35273
+ };
35274
+ /** @description Unauthorized */
35275
+ 401: {
35276
+ headers: {
35277
+ [name: string]: unknown;
35278
+ };
35279
+ content: {
35280
+ /**
35281
+ * @example {
35282
+ * "message": "Unauthorized"
35283
+ * }
35284
+ */
35285
+ "application/json": {
35286
+ /**
35287
+ * @description A human-readable description of the error.
35288
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
35289
+ */
35290
+ message: string;
35291
+ };
35292
+ };
35293
+ };
35294
+ /** @description MCP resource indicator not found. */
35295
+ 404: {
35296
+ headers: {
35297
+ [name: string]: unknown;
35298
+ };
35299
+ content: {
35300
+ /**
35301
+ * @example {
35302
+ * "message": "AuthKit OAuth resource not found: 'authkit_oauth_resource_01EHZNVPK3SFK441A1RGBFSHRT'."
35303
+ * }
35304
+ */
35305
+ "application/json": {
35306
+ /**
35307
+ * @description A human-readable description of the error.
35308
+ * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
35309
+ */
35310
+ message: string;
35311
+ };
35312
+ };
35313
+ };
35314
+ };
35315
+ };
34662
35316
  UserlandSsoController_authorize: {
34663
35317
  parameters: {
34664
35318
  query: {
@@ -38961,6 +39615,8 @@ export interface operations {
38961
39615
  query?: {
38962
39616
  /** @description An [Organization](/reference/organization) identifier. Optional parameter if the connection is scoped to an organization. */
38963
39617
  organization_id?: string;
39618
+ /** @description Set to `true` to use the plural connection contract. When omitted or `false`, only the compatibility connection is considered. */
39619
+ supports_multiple_connections?: boolean;
38964
39620
  /** @description A [connected account](/reference/pipes/connected-account) identifier. Use this to select a specific connection when the user has several for this provider. */
38965
39621
  connected_account_id?: string;
38966
39622
  };
@@ -39037,6 +39693,8 @@ export interface operations {
39037
39693
  query?: {
39038
39694
  /** @description An [Organization](/reference/organization) identifier. Optional parameter if the connection is scoped to an organization. */
39039
39695
  organization_id?: string;
39696
+ /** @description Set to `true` to use the plural connection contract. When omitted or `false`, only the compatibility connection is considered. */
39697
+ supports_multiple_connections?: boolean;
39040
39698
  /** @description A [connected account](/reference/pipes/connected-account) identifier. Use this to select the connection to update. */
39041
39699
  connected_account_id?: string;
39042
39700
  };
@@ -39110,6 +39768,73 @@ export interface operations {
39110
39768
  "application/json": components["schemas"]["AccountSelectionRequiredError"];
39111
39769
  };
39112
39770
  };
39771
+ /** @description The request body is malformed (`invalid_request_parameters`), or `refresh_token` is not an active WorkOS OAuth grant of this user (`invalid_refresh_token`). */
39772
+ 422: {
39773
+ headers: {
39774
+ [name: string]: unknown;
39775
+ };
39776
+ content: {
39777
+ "application/json": {
39778
+ /**
39779
+ * @description The error code identifying the type of error.
39780
+ * @example invalid_refresh_token
39781
+ * @constant
39782
+ */
39783
+ code: "invalid_refresh_token";
39784
+ /**
39785
+ * @description A human-readable description of the error.
39786
+ * @example Request could not be processed.
39787
+ */
39788
+ message: string;
39789
+ } | {
39790
+ /**
39791
+ * @description The error code identifying the type of error.
39792
+ * @example invalid_request_parameters
39793
+ * @constant
39794
+ */
39795
+ code: "invalid_request_parameters";
39796
+ /**
39797
+ * @description A human-readable description of the error.
39798
+ * @example Validation failed.
39799
+ */
39800
+ message: string;
39801
+ /** @description The list of validation errors. */
39802
+ errors: {
39803
+ /**
39804
+ * @description The validation error code.
39805
+ * @example unknown_event_type
39806
+ */
39807
+ code: string;
39808
+ /**
39809
+ * @description A human-readable description of the validation error.
39810
+ * @example Invalid enum value.
39811
+ */
39812
+ message: string;
39813
+ }[];
39814
+ };
39815
+ };
39816
+ };
39817
+ /** @description The WorkOS OAuth grant behind `refresh_token` is being changed by another request. Retry the request. */
39818
+ 503: {
39819
+ headers: {
39820
+ [name: string]: unknown;
39821
+ };
39822
+ content: {
39823
+ "application/json": {
39824
+ /**
39825
+ * @description The error code identifying the type of error.
39826
+ * @example concurrent_request
39827
+ * @constant
39828
+ */
39829
+ code: "concurrent_request";
39830
+ /**
39831
+ * @description A human-readable description of the error.
39832
+ * @example Request could not be processed.
39833
+ */
39834
+ message: string;
39835
+ };
39836
+ };
39837
+ };
39113
39838
  };
39114
39839
  };
39115
39840
  DataIntegrationsUserManagementController_createUserDataInstallation: {
@@ -39179,16 +39904,68 @@ export interface operations {
39179
39904
  };
39180
39905
  };
39181
39906
  };
39182
- /** @description The data integration is not in a valid state or the token combination is invalid. */
39907
+ /** @description The request body is malformed (`invalid_request_parameters`), the data integration is not in a valid state (`invalid_data_integration_state`), the token combination is invalid (`invalid_token_combination`), or `refresh_token` is not an active WorkOS OAuth grant of this user (`invalid_refresh_token`). */
39183
39908
  422: {
39184
39909
  headers: {
39185
39910
  [name: string]: unknown;
39186
39911
  };
39187
39912
  content: {
39188
39913
  "application/json": {
39914
+ /**
39915
+ * @description The error code identifying the type of error.
39916
+ * @example invalid_refresh_token
39917
+ * @enum {string}
39918
+ */
39919
+ code: "invalid_refresh_token" | "invalid_token_combination" | "invalid_data_integration_state";
39189
39920
  /**
39190
39921
  * @description A human-readable description of the error.
39191
- * @example Organization not found: 'org_01EHQMYV6MBK39QC5PZXHY59C3'.
39922
+ * @example Request could not be processed.
39923
+ */
39924
+ message: string;
39925
+ } | {
39926
+ /**
39927
+ * @description The error code identifying the type of error.
39928
+ * @example invalid_request_parameters
39929
+ * @constant
39930
+ */
39931
+ code: "invalid_request_parameters";
39932
+ /**
39933
+ * @description A human-readable description of the error.
39934
+ * @example Validation failed.
39935
+ */
39936
+ message: string;
39937
+ /** @description The list of validation errors. */
39938
+ errors: {
39939
+ /**
39940
+ * @description The validation error code.
39941
+ * @example unknown_event_type
39942
+ */
39943
+ code: string;
39944
+ /**
39945
+ * @description A human-readable description of the validation error.
39946
+ * @example Invalid enum value.
39947
+ */
39948
+ message: string;
39949
+ }[];
39950
+ };
39951
+ };
39952
+ };
39953
+ /** @description The WorkOS OAuth grant behind `refresh_token` is being changed by another request. Retry the request. */
39954
+ 503: {
39955
+ headers: {
39956
+ [name: string]: unknown;
39957
+ };
39958
+ content: {
39959
+ "application/json": {
39960
+ /**
39961
+ * @description The error code identifying the type of error.
39962
+ * @example concurrent_request
39963
+ * @constant
39964
+ */
39965
+ code: "concurrent_request";
39966
+ /**
39967
+ * @description A human-readable description of the error.
39968
+ * @example Request could not be processed.
39192
39969
  */
39193
39970
  message: string;
39194
39971
  };
@@ -39201,6 +39978,8 @@ export interface operations {
39201
39978
  query?: {
39202
39979
  /** @description An [Organization](/reference/organization) identifier. Optional parameter if the connection is scoped to an organization. */
39203
39980
  organization_id?: string;
39981
+ /** @description Set to `true` to use the plural connection contract. When omitted or `false`, only the compatibility connection is considered. */
39982
+ supports_multiple_connections?: boolean;
39204
39983
  /** @description A [connected account](/reference/pipes/connected-account) identifier. Use this to select the connection to delete. */
39205
39984
  connected_account_id?: string;
39206
39985
  };
@@ -39268,6 +40047,27 @@ export interface operations {
39268
40047
  "application/json": components["schemas"]["AccountSelectionRequiredError"];
39269
40048
  };
39270
40049
  };
40050
+ /** @description The connected account or its WorkOS OAuth grant is being changed by another request. Retry the request. */
40051
+ 503: {
40052
+ headers: {
40053
+ [name: string]: unknown;
40054
+ };
40055
+ content: {
40056
+ "application/json": {
40057
+ /**
40058
+ * @description The error code identifying the type of error.
40059
+ * @example concurrent_request
40060
+ * @constant
40061
+ */
40062
+ code: "concurrent_request";
40063
+ /**
40064
+ * @description A human-readable description of the error.
40065
+ * @example Request could not be processed.
40066
+ */
40067
+ message: string;
40068
+ };
40069
+ };
40070
+ };
39271
40071
  };
39272
40072
  };
39273
40073
  DataIntegrationsUserManagementController_getUserDataIntegrations: {
@@ -39275,6 +40075,8 @@ export interface operations {
39275
40075
  query?: {
39276
40076
  /** @description An [Organization](/reference/organization) identifier. Optional parameter to filter connections for a specific organization. */
39277
40077
  organization_id?: string;
40078
+ /** @description Set to `true` to use the plural connection contract. When omitted or `false`, only the compatibility connection is considered. */
40079
+ supports_multiple_connections?: boolean;
39278
40080
  };
39279
40081
  header?: never;
39280
40082
  path: {