Files
workos-openapi-agent/agent.py
a2a-platform 85db61186e deploy
2026-06-27 01:05:11 +00:00

436 lines
389 KiB
Python

from __future__ import annotations
import base64
import json
import re
from pathlib import Path
from typing import Any
import httpx
from a2a_pack.deepagents import create_a2a_deep_agent
from langchain_core.messages import BaseMessage
from langchain_core.tools import StructuredTool
from pydantic import BaseModel, Field
from a2a_pack import (
A2AAgent,
ConsumerSetup,
ConsumerSetupField,
ConsumerSetupMissing,
EgressPolicy,
LLMProvisioning,
Pricing,
Resources,
RunContext,
skill,
)
DEFAULT_BASE_URL = "https://api.workos.com"
OPERATIONS = json.loads("{\n \"api_keys_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes an API key. This action cannot be undone. Once deleted, any requests using this API key will fail authentication.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"api_keys_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the API key.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"api_key_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/api_keys/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"api_keys_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an API key\",\n \"tags\": [\n \"api_keys\"\n ]\n },\n \"api_keys_controller_expire\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Expire an API key immediately, schedule a future expiration, or clear a scheduled future expiration.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"api_keys_controller_expire\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the API key.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"api_key_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/api_keys/{id}/expire\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ExpireApiKeyDto\"\n },\n \"security\": null,\n \"skill_name\": \"api_keys_controller_expire\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Expire an API key\",\n \"tags\": [\n \"api_keys\"\n ]\n },\n \"api_keys_controller_validate_api_key\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Validate an API key value and return the API key object if valid.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"api_keys_controller_validate_api_key\",\n \"parameters\": [],\n \"path\": \"/api_keys/validations\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ValidateApiKeyDto\"\n },\n \"security\": null,\n \"skill_name\": \"api_keys_controller_validate_api_key\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Validate API key\",\n \"tags\": [\n \"api_keys\"\n ]\n },\n \"application_credentials_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create new secrets for a Connect Application.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"application_credentials_controller_create\",\n \"parameters\": [\n {\n \"description\": \"The application ID or client ID of the Connect Application.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_app_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connect/applications/{id}/client_secrets\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateApplicationSecretDto\"\n },\n \"security\": null,\n \"skill_name\": \"application_credentials_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a new client secret for a Connect Application\",\n \"tags\": [\n \"application.client-secrets\"\n ]\n },\n \"application_credentials_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete (revoke) an existing client secret.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"application_credentials_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the client secret.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"secret_01J9Q2Z3X4Y5W6V7U8T9S0R1Q\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connect/client_secrets/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"application_credentials_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a Client Secret\",\n \"tags\": [\n \"application.client-secrets\"\n ]\n },\n \"application_credentials_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all client secrets associated with a Connect Application.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"application_credentials_controller_list\",\n \"parameters\": [\n {\n \"description\": \"The application ID or client ID of the Connect Application.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_app_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connect/applications/{id}/client_secrets\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"application_credentials_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Client Secrets for a Connect Application\",\n \"tags\": [\n \"application.client-secrets\"\n ]\n },\n \"applications_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new Connect Application. Supports both OAuth and Machine-to-Machine (M2M) application types.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"applications_controller_create\",\n \"parameters\": [],\n \"path\": \"/connect/applications\",\n \"request_body\": {\n \"oneOf\": [\n {\n \"$ref\": \"#/components/schemas/CreateOAuthApplicationDto\"\n },\n {\n \"$ref\": \"#/components/schemas/CreateM2MApplicationDto\"\n }\n ]\n },\n \"security\": null,\n \"skill_name\": \"applications_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a Connect Application\",\n \"tags\": [\n \"applications\"\n ]\n },\n \"applications_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an existing Connect Application.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"applications_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The application ID or client ID of the Connect Application.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_app_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connect/applications/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"applications_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a Connect Application\",\n \"tags\": [\n \"applications\"\n ]\n },\n \"applications_controller_find\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve details for a specific Connect Application by ID or client ID.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"applications_controller_find\",\n \"parameters\": [\n {\n \"description\": \"The application ID or client ID of the Connect Application.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_app_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connect/applications/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"applications_controller_find\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a Connect Application\",\n \"tags\": [\n \"applications\"\n ]\n },\n \"applications_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all Connect Applications in the current environment with optional filtering.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"applications_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter Connect Applications by organization ID.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connect/applications\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"applications_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Connect Applications\",\n \"tags\": [\n \"applications\"\n ]\n },\n \"applications_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update an existing Connect Application. For OAuth applications, you can update redirect URIs. For all applications, you can update the name, description, and scopes.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"applications_controller_update\",\n \"parameters\": [\n {\n \"description\": \"The application ID or client ID of the Connect Application.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_app_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connect/applications/{id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateOAuthApplicationDto\"\n },\n \"security\": null,\n \"skill_name\": \"applications_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a Connect Application\",\n \"tags\": [\n \"applications\"\n ]\n },\n \"audit_log_events_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create an Audit Log Event.\\n\\nThis API supports idempotency which guarantees that performing the same operation multiple times will have the same result as if the operation were performed only once. This is handy in situations where you may need to retry a request due to a failure or prevent accidental duplicate requests from creating more than one resource.\\n\\nTo achieve idempotency, you can add `Idempotency-Key` request header to a Create Event request with a unique string as the value. Each subsequent request matching this unique string will return the same response. We suggest using [v4 UUIDs](https://en.wikipedia.org/wiki/Universally_unique_identifier) for idempotency keys to avoid collisions.\\n\\nIdempotency keys expire after 24 hours. The API will generate a new response if you submit a request with an expired key.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"audit_log_events_controller_create\",\n \"parameters\": [\n {\n \"description\": \"A unique string to prevent duplicate requests. Each subsequent request matching this unique string will return the same response. We suggest using v4 UUIDs. Keys expire after 24 hours.\",\n \"in\": \"header\",\n \"name\": \"idempotency-key\",\n \"required\": false,\n \"schema\": {\n \"example\": \"884793cd-bef4-46cf-8790-e3d4957a09ce\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/audit_logs/events\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/AuditLogEventIngestionDto\"\n },\n \"security\": null,\n \"skill_name\": \"audit_log_events_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create Event\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"audit_log_exports_controller_export\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get an Audit Log Export. The URL will expire after 10 minutes. If the export is needed again at a later time, refetching the export will regenerate the URL.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"audit_log_exports_controller_export\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the Audit Log Export.\",\n \"in\": \"path\",\n \"name\": \"auditLogExportId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"audit_log_export_01GBZK5MP7TD1YCFQHFR22180V\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/audit_logs/exports/{auditLogExportId}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"audit_log_exports_controller_export\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get Export\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"audit_log_exports_controller_exports\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create an Audit Log Export. Exports are scoped to a single organization within a specified date range.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"audit_log_exports_controller_exports\",\n \"parameters\": [],\n \"path\": \"/audit_logs/exports\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/AuditLogExportCreationDto\"\n },\n \"security\": null,\n \"skill_name\": \"audit_log_exports_controller_exports\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create Export\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"audit_log_validator_versions_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a new Audit Log schema used to validate the payload of incoming Audit Log Events. If the `action` does not exist, it will also be created.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"audit_log_validator_versions_controller_create\",\n \"parameters\": [\n {\n \"description\": \"The name of the Audit Log action.\",\n \"in\": \"path\",\n \"name\": \"actionName\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user.logged_in\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/audit_logs/actions/{actionName}/schemas\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/AuditLogSchemaDto\"\n },\n \"security\": null,\n \"skill_name\": \"audit_log_validator_versions_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create Schema\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"audit_log_validator_versions_controller_schemas\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all schemas for the Audit Logs action identified by `:name`.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"audit_log_validator_versions_controller_schemas\",\n \"parameters\": [\n {\n \"description\": \"The name of the Audit Log action.\",\n \"in\": \"path\",\n \"name\": \"actionName\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user.logged_in\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/audit_logs/actions/{actionName}/schemas\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"audit_log_validator_versions_controller_schemas\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Schemas\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"audit_log_validators_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all Audit Log actions in the current environment.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"audit_log_validators_controller_list\",\n \"parameters\": [\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/audit_logs/actions\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"audit_log_validators_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Actions\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"audit_logs_retention_controller_audit_logs_retention\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the configured event retention period for the given Organization.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"audit_logs_retention_controller_audit_logs_retention\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{id}/audit_logs_retention\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"audit_logs_retention_controller_audit_logs_retention\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get Retention\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"audit_logs_retention_controller_update_audit_logs_retention\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Set the event retention period for the given Organization.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"audit_logs_retention_controller_update_audit_logs_retention\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{id}/audit_logs_retention\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateAuditLogsRetentionDto\"\n },\n \"security\": null,\n \"skill_name\": \"audit_logs_retention_controller_update_audit_logs_retention\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Set Retention\",\n \"tags\": [\n \"audit-logs\"\n ]\n },\n \"authentication_challenges_controller_verify\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Verifies an Authentication Challenge.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authentication_challenges_controller_verify\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the Authentication Challenge.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"auth_challenge_01FVYZ5QM8N98T9ME5BCB2BBMJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/auth/challenges/{id}/verify\",\n \"request_body\": {\n \"properties\": {\n \"code\": {\n \"description\": \"The one-time code to verify.\",\n \"example\": \"123456\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"code\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"authentication_challenges_controller_verify\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Verify Challenge\",\n \"tags\": [\n \"multi-factor-auth.challenges\"\n ]\n },\n \"authentication_factors_controller_challenge\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a Challenge for an Authentication Factor.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authentication_factors_controller_challenge\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the Authentication Factor to be challenged.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"auth_factor_01FVYZ5QM8N98T9ME5BCB2BBMJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/auth/factors/{id}/challenge\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ChallengeAuthenticationFactorDto\"\n },\n \"security\": null,\n \"skill_name\": \"authentication_factors_controller_challenge\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Challenge Factor\",\n \"tags\": [\n \"multi-factor-auth\"\n ]\n },\n \"authentication_factors_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Enrolls an Authentication Factor to be used as an additional factor of authentication. The returned ID should be used to create an authentication Challenge.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authentication_factors_controller_create\",\n \"parameters\": [],\n \"path\": \"/auth/factors/enroll\",\n \"request_body\": {\n \"properties\": {\n \"phone_number\": {\n \"description\": \"Required when type is 'sms'.\",\n \"example\": \"+15555555555\",\n \"type\": \"string\"\n },\n \"totp_issuer\": {\n \"description\": \"Required when type is 'totp'.\",\n \"example\": \"Foo Corp\",\n \"type\": \"string\"\n },\n \"totp_user\": {\n \"description\": \"Required when type is 'totp'.\",\n \"example\": \"alan.turing@example.com\",\n \"type\": \"string\"\n },\n \"type\": {\n \"description\": \"The type of factor to enroll.\",\n \"enum\": [\n \"generic_otp\",\n \"sms\",\n \"totp\"\n ],\n \"example\": \"totp\",\n \"type\": \"string\"\n },\n \"user_id\": {\n \"description\": \"The ID of the user to associate the factor with.\",\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"type\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"authentication_factors_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Enroll Factor\",\n \"tags\": [\n \"multi-factor-auth\"\n ]\n },\n \"authentication_factors_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes an Authentication Factor. It cannot be undone.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authentication_factors_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the Factor.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"auth_factor_01FVYZ5QM8N98T9ME5BCB2BBMJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/auth/factors/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authentication_factors_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete Factor\",\n \"tags\": [\n \"multi-factor-auth\"\n ]\n },\n \"authentication_factors_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Gets an Authentication Factor.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authentication_factors_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the Factor.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"auth_factor_01FVYZ5QM8N98T9ME5BCB2BBMJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/auth/factors/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authentication_factors_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get Factor\",\n \"tags\": [\n \"multi-factor-auth\"\n ]\n },\n \"authorization_controller_check\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Check if an organization membership has a specific permission on a resource. Supports identification by resource_id OR by resource_external_id + resource_type_slug.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_controller_check\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership to check.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/check\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CheckAuthorizationDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_controller_check\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Check authorization\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_controller_list_effective_permissions\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Returns all permissions the organization membership effectively has on a resource, including permissions inherited through roles assigned to ancestor resources.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_controller_list_effective_permissions\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the authorization resource.\",\n \"in\": \"path\",\n \"name\": \"resource_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/resources/{resource_id}/permissions\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_controller_list_effective_permissions\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List effective permissions for an organization membership on a resource\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_controller_list_effective_permissions_by_external_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Returns all permissions the organization membership effectively has on a resource identified by its external ID, including permissions inherited through roles assigned to ancestor resources.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_controller_list_effective_permissions_by_external_id\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the resource type.\",\n \"in\": \"path\",\n \"name\": \"resource_type_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"document\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An identifier you provide to reference the resource in your system.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"doc-456\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/resources/{resource_type_slug}/{external_id}/permissions\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_controller_list_effective_permissions_by_external_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List effective permissions for an organization membership on a resource by external ID\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_controller_list_resources_for_membership\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Returns all child resources of a parent resource where the organization membership has a specific permission. This is useful for resource discovery\\u2014answering \\\"What projects can this user access in this workspace?\\\"\\n\\nYou must provide either `parent_resource_id` or both `parent_resource_external_id` and `parent_resource_type_slug` to identify the parent resource.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_controller_list_resources_for_membership\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"The permission slug to filter by. Only child resources where the organization membership has this permission are returned.\",\n \"in\": \"query\",\n \"name\": \"permission_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"project:read\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The WorkOS ID of the parent resource. Provide this or both `parent_resource_external_id` and `parent_resource_type_slug`, but not both. Mutually exclusive with `parent_resource_type_slug` and `parent_resource_external_id`.\",\n \"in\": \"query\",\n \"name\": \"parent_resource_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"authz_resource_01XYZ789\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the parent resource type. Must be provided together with `parent_resource_external_id`. Required with `parent_resource_external_id`. Mutually exclusive with `parent_resource_id`.\",\n \"in\": \"query\",\n \"name\": \"parent_resource_type_slug\",\n \"required\": false,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The application-specific external identifier of the parent resource. Must be provided together with `parent_resource_type_slug`. Required with `parent_resource_type_slug`. Mutually exclusive with `parent_resource_id`.\",\n \"in\": \"query\",\n \"name\": \"parent_resource_external_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"external_project_123\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/resources\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_controller_list_resources_for_membership\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List resources for organization membership\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_group_role_assignments_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Assign a role to a group on a specific resource.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_group_role_assignments_controller_create\",\n \"parameters\": [\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"group_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/groups/{group_id}/role_assignments\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateGroupRoleAssignmentDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_group_role_assignments_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Assign a role to a group\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_group_role_assignments_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a specific role assignment for a group by its ID.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_group_role_assignments_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"group_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the group role assignment.\",\n \"in\": \"path\",\n \"name\": \"role_assignment_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"gra_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/groups/{group_id}/role_assignments/{role_assignment_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_group_role_assignments_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a group role assignment\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_group_role_assignments_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all role assignments granted to a group. Each assignment represents a role granted to the group on a resource.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_group_role_assignments_controller_list\",\n \"parameters\": [\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"group_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/authorization/groups/{group_id}/role_assignments\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_group_role_assignments_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List role assignments for a group\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_group_role_assignments_controller_remove_group_role_assignment\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Remove a specific role assignment from a group by its ID.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_group_role_assignments_controller_remove_group_role_assignment\",\n \"parameters\": [\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"group_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the group role assignment to remove.\",\n \"in\": \"path\",\n \"name\": \"role_assignment_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"gra_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/groups/{group_id}/role_assignments/{role_assignment_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_group_role_assignments_controller_remove_group_role_assignment\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove a group role assignment\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_group_role_assignments_controller_remove_group_role_assignments\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Remove role assignments from a group that match the provided criteria. Returns 404 when no matching active assignment is found.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_group_role_assignments_controller_remove_group_role_assignments\",\n \"parameters\": [\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"group_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/groups/{group_id}/role_assignments\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/DeleteGroupRoleAssignmentsByCriteriaDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_group_role_assignments_controller_remove_group_role_assignments\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove group role assignments by criteria\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_group_role_assignments_controller_replace_group_role_assignments\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Replace all role assignments for a group with the provided list. Existing assignments not in the list will be removed.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"authorization_group_role_assignments_controller_replace_group_role_assignments\",\n \"parameters\": [\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"group_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/groups/{group_id}/role_assignments\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ReplaceGroupRoleAssignmentsDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_group_role_assignments_controller_replace_group_role_assignments\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Replace all role assignments for a group\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_role_permissions_controller_add_permission\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Add a single permission to a custom role. If the permission is already assigned to the role, this operation has no effect.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_organization_role_permissions_controller_add_permission\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org-admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles/{slug}/permissions\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/AddRolePermissionDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_organization_role_permissions_controller_add_permission\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Add a permission to a custom role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_role_permissions_controller_remove_permission\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Remove a single permission from a custom role by its slug.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_organization_role_permissions_controller_remove_permission\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org-admin\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the permission to remove.\",\n \"in\": \"path\",\n \"name\": \"permissionSlug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"documents:read\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles/{slug}/permissions/{permissionSlug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_organization_role_permissions_controller_remove_permission\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove a permission from a custom role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_role_permissions_controller_set_permissions\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Replace all permissions on a custom role with the provided list.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"authorization_organization_role_permissions_controller_set_permissions\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org-admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles/{slug}/permissions\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/SetRolePermissionsDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_organization_role_permissions_controller_set_permissions\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Set permissions for a custom role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_roles_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new custom role for this organization.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_organization_roles_controller_create\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateOrganizationRoleDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_organization_roles_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a custom role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_roles_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an existing custom role.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_organization_roles_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org-admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_organization_roles_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a custom role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_roles_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve a role that applies to an organization by its slug. This can return either an environment role or a custom role.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_organization_roles_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org-billing-admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_organization_roles_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a custom role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_roles_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all roles that apply to an organization. This includes both environment roles and custom roles, returned in priority order.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_organization_roles_controller_list\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_organization_roles_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List custom roles\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_organization_roles_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update an existing custom role. Only the fields provided in the request body will be updated.\",\n \"destructive\": true,\n \"method\": \"PATCH\",\n \"operation_id\": \"authorization_organization_roles_controller_update\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org-billing-admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organizationId}/roles/{slug}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateOrganizationRoleDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_organization_roles_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a custom role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_permissions_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new permission in your WorkOS environment. The permission can then be assigned to environment roles and custom roles.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_permissions_controller_create\",\n \"parameters\": [],\n \"path\": \"/authorization/permissions\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateAuthorizationPermissionDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_permissions_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a permission\",\n \"tags\": [\n \"permissions\"\n ]\n },\n \"authorization_permissions_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an existing permission. System permissions cannot be deleted.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_permissions_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"A unique key to reference the permission. Must be lowercase and contain only letters, numbers, hyphens, underscores, colons, periods, and asterisks.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"documents:read\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/permissions/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_permissions_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a permission\",\n \"tags\": [\n \"permissions\"\n ]\n },\n \"authorization_permissions_controller_find\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve a permission by its unique slug.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_permissions_controller_find\",\n \"parameters\": [\n {\n \"description\": \"A unique key to reference the permission. Must be lowercase and contain only letters, numbers, hyphens, underscores, colons, periods, and asterisks.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"documents:read\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/permissions/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_permissions_controller_find\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a permission\",\n \"tags\": [\n \"permissions\"\n ]\n },\n \"authorization_permissions_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all permissions in your WorkOS environment.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_permissions_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/authorization/permissions\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_permissions_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List permissions\",\n \"tags\": [\n \"permissions\"\n ]\n },\n \"authorization_permissions_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update an existing permission. Only the fields provided in the request body will be updated.\",\n \"destructive\": true,\n \"method\": \"PATCH\",\n \"operation_id\": \"authorization_permissions_controller_update\",\n \"parameters\": [\n {\n \"description\": \"A unique key to reference the permission. Must be lowercase and contain only letters, numbers, hyphens, underscores, colons, periods, and asterisks.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"documents:read\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/permissions/{slug}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateAuthorizationPermissionDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_permissions_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a permission\",\n \"tags\": [\n \"permissions\"\n ]\n },\n \"authorization_resources_by_external_id_controller_delete_by_external_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an authorization resource by organization, resource type, and external ID. This also deletes all descendant resources.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_resources_by_external_id_controller_delete_by_external_id\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization that owns the resource.\",\n \"in\": \"path\",\n \"name\": \"organization_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the resource type.\",\n \"in\": \"path\",\n \"name\": \"resource_type_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An identifier you provide to reference the resource in your system.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"proj-456\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"If true, deletes all descendant resources and role assignments. If not set and the resource has children or assignments, the request will fail.\",\n \"in\": \"query\",\n \"name\": \"cascade_delete\",\n \"required\": false,\n \"schema\": {\n \"default\": false,\n \"example\": false,\n \"type\": \"boolean\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_resources_by_external_id_controller_delete_by_external_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an authorization resource by external ID\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_by_external_id_controller_get_by_external_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve the details of an authorization resource by its external ID, organization, and resource type. This is useful when you only have the external ID from your system and need to fetch the full resource details.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_resources_by_external_id_controller_get_by_external_id\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization that owns the resource.\",\n \"in\": \"path\",\n \"name\": \"organization_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the resource type.\",\n \"in\": \"path\",\n \"name\": \"resource_type_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An identifier you provide to reference the resource in your system.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"proj-456\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_resources_by_external_id_controller_get_by_external_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a resource by external ID\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_by_external_id_controller_list_organization_memberships_\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Returns all organization memberships that have a specific permission on a resource, using the resource's external ID. This is useful for answering \\\"Who can access this resource?\\\" when you only have the external ID.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_resources_by_external_id_controller_list_organization_memberships_\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization that owns the resource.\",\n \"in\": \"path\",\n \"name\": \"organization_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the resource type this resource belongs to.\",\n \"in\": \"path\",\n \"name\": \"resource_type_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An identifier you provide to reference the resource in your system.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"proj-456\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"The permission slug to filter by. Only users with this permission on the resource are returned.\",\n \"in\": \"query\",\n \"name\": \"permission_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"project:read\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter by assignment type. Use \\\"direct\\\" for direct assignments only, or \\\"indirect\\\" to include inherited assignments.\",\n \"in\": \"query\",\n \"name\": \"assignment\",\n \"required\": false,\n \"schema\": {\n \"enum\": [\n \"direct\",\n \"indirect\"\n ],\n \"example\": \"direct\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}/organization_memberships\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_resources_by_external_id_controller_list_organization_memberships_\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List memberships for a resource by external ID\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_by_external_id_controller_update_by_external_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update an existing authorization resource using its external ID.\",\n \"destructive\": true,\n \"method\": \"PATCH\",\n \"operation_id\": \"authorization_resources_by_external_id_controller_update_by_external_id\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization that owns the resource.\",\n \"in\": \"path\",\n \"name\": \"organization_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the resource type.\",\n \"in\": \"path\",\n \"name\": \"resource_type_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An identifier you provide to reference the resource in your system.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"proj-456\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateAuthorizationResourceDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_resources_by_external_id_controller_update_by_external_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a resource by external ID\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new authorization resource.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_resources_controller_create\",\n \"parameters\": [],\n \"path\": \"/authorization/resources\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateAuthorizationResourceDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_resources_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an authorization resource\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an authorization resource and all its descendants.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_resources_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The ID of the authorization resource.\",\n \"in\": \"path\",\n \"name\": \"resource_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"If true, deletes all descendant resources and role assignments. If not set and the resource has children or assignments, the request will fail.\",\n \"in\": \"query\",\n \"name\": \"cascade_delete\",\n \"required\": false,\n \"schema\": {\n \"default\": false,\n \"example\": false,\n \"type\": \"boolean\"\n }\n }\n ],\n \"path\": \"/authorization/resources/{resource_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_resources_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an authorization resource\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_controller_find_by_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve the details of an authorization resource by its ID.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_resources_controller_find_by_id\",\n \"parameters\": [\n {\n \"description\": \"The ID of the authorization resource.\",\n \"in\": \"path\",\n \"name\": \"resource_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/resources/{resource_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_resources_controller_find_by_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a resource\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a paginated list of authorization resources.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_resources_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter resources by organization ID.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter resources by resource type slug.\",\n \"in\": \"query\",\n \"name\": \"resource_type_slug\",\n \"required\": false,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter resources by external ID.\",\n \"in\": \"query\",\n \"name\": \"resource_external_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"my-project-123\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter resources by parent resource ID. Mutually exclusive with `parent_resource_type_slug` and `parent_external_id`.\",\n \"in\": \"query\",\n \"name\": \"parent_resource_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter resources by parent resource type slug. Required with `parent_external_id`. Mutually exclusive with `parent_resource_id`.\",\n \"in\": \"query\",\n \"name\": \"parent_resource_type_slug\",\n \"required\": false,\n \"schema\": {\n \"example\": \"workspace\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter resources by parent external ID. Required with `parent_resource_type_slug`. Mutually exclusive with `parent_resource_id`.\",\n \"in\": \"query\",\n \"name\": \"parent_external_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"ext-workspace-123\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/resources\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_resources_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List resources\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_controller_list_organization_memberships_for_resource\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Returns all organization memberships that have a specific permission on a resource instance. This is useful for answering \\\"Who can access this resource?\\\".\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_resources_controller_list_organization_memberships_for_resource\",\n \"parameters\": [\n {\n \"description\": \"The ID of the authorization resource.\",\n \"in\": \"path\",\n \"name\": \"resource_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"The permission slug to filter by. Only users with this permission on the resource are returned.\",\n \"in\": \"query\",\n \"name\": \"permission_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"document:edit\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter by assignment type. Use `direct` for direct assignments only, or `indirect` to include inherited assignments.\",\n \"in\": \"query\",\n \"name\": \"assignment\",\n \"required\": false,\n \"schema\": {\n \"enum\": [\n \"direct\",\n \"indirect\"\n ],\n \"example\": \"direct\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/resources/{resource_id}/organization_memberships\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_resources_controller_list_organization_memberships_for_resource\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List organization memberships for resource\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_resources_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update an existing authorization resource.\",\n \"destructive\": true,\n \"method\": \"PATCH\",\n \"operation_id\": \"authorization_resources_controller_update\",\n \"parameters\": [\n {\n \"description\": \"The ID of the authorization resource.\",\n \"in\": \"path\",\n \"name\": \"resource_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/resources/{resource_id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateAuthorizationResourceDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_resources_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a resource\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_assignments_controller_assign_role\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Assign a role to an organization membership on a specific resource.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_role_assignments_controller_assign_role\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/role_assignments\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/AssignRoleDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_role_assignments_controller_assign_role\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Assign a role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_assignments_controller_list_role_assignments\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all role assignments for an organization membership. This returns all roles that have been assigned to the user on resources, including organization-level and sub-resource roles.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_role_assignments_controller_list_role_assignments\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter assignments by the ID of the resource.\",\n \"in\": \"query\",\n \"name\": \"resource_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGH\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter assignments by the external ID of the resource.\",\n \"in\": \"query\",\n \"name\": \"resource_external_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"project-ext-456\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter assignments by the slug of the resource type.\",\n \"in\": \"query\",\n \"name\": \"resource_type_slug\",\n \"required\": false,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/role_assignments\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_role_assignments_controller_list_role_assignments\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List role assignments\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_assignments_controller_list_role_assignments_for_resource\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all role assignments granted on a specific resource instance. Each assignment includes the organization membership it was granted to.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_role_assignments_controller_list_role_assignments_for_resource\",\n \"parameters\": [\n {\n \"description\": \"The ID of the authorization resource.\",\n \"in\": \"path\",\n \"name\": \"resource_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"authz_resource_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter assignments by the slug of the role.\",\n \"in\": \"query\",\n \"name\": \"role_slug\",\n \"required\": false,\n \"schema\": {\n \"example\": \"editor\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/resources/{resource_id}/role_assignments\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_role_assignments_controller_list_role_assignments_for_resource\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List role assignments for a resource\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_assignments_controller_list_role_assignments_for_resource_by_\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all role assignments granted on a resource, identified by its external ID. Each assignment includes the organization membership it was granted to.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_role_assignments_controller_list_role_assignments_for_resource_by_\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization that owns the resource.\",\n \"in\": \"path\",\n \"name\": \"organization_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug of the resource type.\",\n \"in\": \"path\",\n \"name\": \"resource_type_slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"project\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An identifier you provide to reference the resource in your system.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"proj-456\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter assignments by the slug of the role.\",\n \"in\": \"query\",\n \"name\": \"role_slug\",\n \"required\": false,\n \"schema\": {\n \"example\": \"editor\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}/role_assignments\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_role_assignments_controller_list_role_assignments_for_resource_by_\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List role assignments for a resource by external ID\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_assignments_controller_remove_role_by_criteria\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Remove a role assignment by role slug and resource.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_role_assignments_controller_remove_role_by_criteria\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/role_assignments\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/RemoveRoleDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_role_assignments_controller_remove_role_by_criteria\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove a role assignment\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_assignments_controller_remove_role_by_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Remove a role assignment using its ID.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorization_role_assignments_controller_remove_role_by_id\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"organization_membership_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the role assignment to remove.\",\n \"in\": \"path\",\n \"name\": \"role_assignment_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"role_assignment_01HXYZ123456789ABCDEFGH\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/organization_memberships/{organization_membership_id}/role_assignments/{role_assignment_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_role_assignments_controller_remove_role_by_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove a role assignment by ID\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_permissions_controller_add_permission\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Add a single permission to an environment role. If the permission is already assigned to the role, this operation has no effect.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_role_permissions_controller_add_permission\",\n \"parameters\": [\n {\n \"description\": \"The slug of the environment role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/roles/{slug}/permissions\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/AddRolePermissionDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_role_permissions_controller_add_permission\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Add a permission to an environment role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_role_permissions_controller_set_permissions\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Replace all permissions on an environment role with the provided list.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"authorization_role_permissions_controller_set_permissions\",\n \"parameters\": [\n {\n \"description\": \"The slug of the environment role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/roles/{slug}/permissions\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/SetRolePermissionsDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_role_permissions_controller_set_permissions\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Set permissions for an environment role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_roles_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new environment role.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"authorization_roles_controller_create\",\n \"parameters\": [],\n \"path\": \"/authorization/roles\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateRoleDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_roles_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an environment role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_roles_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get an environment role by its slug.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_roles_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The slug of the environment role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/roles/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_roles_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an environment role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_roles_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all environment roles in priority order.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorization_roles_controller_list\",\n \"parameters\": [],\n \"path\": \"/authorization/roles\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorization_roles_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List environment roles\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorization_roles_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update an existing environment role.\",\n \"destructive\": true,\n \"method\": \"PATCH\",\n \"operation_id\": \"authorization_roles_controller_update\",\n \"parameters\": [\n {\n \"description\": \"The slug of the environment role.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"admin\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/authorization/roles/{slug}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateRoleDto\"\n },\n \"security\": null,\n \"skill_name\": \"authorization_roles_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update an environment role\",\n \"tags\": [\n \"authorization\"\n ]\n },\n \"authorized_applications_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an existing Authorized Connect Application.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"authorized_applications_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The ID or client ID of the application.\",\n \"in\": \"path\",\n \"name\": \"application_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_app_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the user.\",\n \"in\": \"path\",\n \"name\": \"user_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{user_id}/authorized_applications/{application_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorized_applications_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an authorized application\",\n \"tags\": [\n \"user-management.users.authorized-applications\"\n ]\n },\n \"authorized_applications_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all Connect applications that the user has authorized.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"authorized_applications_controller_list\",\n \"parameters\": [\n {\n \"description\": \"The ID of the user.\",\n \"in\": \"path\",\n \"name\": \"user_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/user_management/users/{user_id}/authorized_applications\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"authorized_applications_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List authorized applications\",\n \"tags\": [\n \"user-management.users.authorized-applications\"\n ]\n },\n \"client_api_token_controller_issue_client_api_token\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Generate a short-lived, session-bound token for the Client GraphQL API, scoped to an organization and user.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"client_api_token_controller_issue_client_api_token\",\n \"parameters\": [],\n \"path\": \"/client/token\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ClientApiTokenDto\"\n },\n \"security\": null,\n \"skill_name\": \"client_api_token_controller_issue_client_api_token\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Generate a Client API token\",\n \"tags\": [\n \"client\"\n ]\n },\n \"connections_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes an existing connection. It cannot be undone.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"connections_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier for the Connection.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connections/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"connections_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a Connection\",\n \"tags\": [\n \"connections\"\n ]\n },\n \"connections_controller_find\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing connection.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"connections_controller_find\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier for the Connection.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"conn_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connections/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"connections_controller_find\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a Connection\",\n \"tags\": [\n \"connections\"\n ]\n },\n \"connections_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of your existing connections matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"connections_controller_list\",\n \"parameters\": [\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter Connections by their type.\",\n \"in\": \"query\",\n \"name\": \"connection_type\",\n \"required\": false,\n \"schema\": {\n \"enum\": [\n \"ADFSSAML\",\n \"AdpOidc\",\n \"AppleOAuth\",\n \"Auth0SAML\",\n \"AzureSAML\",\n \"BitbucketOAuth\",\n \"CasSAML\",\n \"CloudflareSAML\",\n \"ClassLinkSAML\",\n \"CleverOIDC\",\n \"CyberArkSAML\",\n \"DiscordOAuth\",\n \"DuoSAML\",\n \"EntraIdOIDC\",\n \"GenericOIDC\",\n \"GenericSAML\",\n \"GithubOAuth\",\n \"GitLabOAuth\",\n \"GoogleOAuth\",\n \"GoogleOIDC\",\n \"GoogleSAML\",\n \"IntuitOAuth\",\n \"JumpCloudSAML\",\n \"KeycloakSAML\",\n \"LastPassSAML\",\n \"LinkedInOAuth\",\n \"LoginGovOidc\",\n \"MagicLink\",\n \"MicrosoftOAuth\",\n \"MiniOrangeSAML\",\n \"NetIqSAML\",\n \"OktaOIDC\",\n \"OktaSAML\",\n \"OneLoginSAML\",\n \"OracleSAML\",\n \"PingFederateSAML\",\n \"PingOneSAML\",\n \"RipplingSAML\",\n \"SalesforceSAML\",\n \"ShibbolethGenericSAML\",\n \"ShibbolethSAML\",\n \"SimpleSamlPhpSAML\",\n \"SalesforceOAuth\",\n \"SlackOAuth\",\n \"VercelMarketplaceOAuth\",\n \"VercelOAuth\",\n \"VMwareSAML\",\n \"XeroOAuth\"\n ],\n \"example\": \"GithubOAuth\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter Connections by their associated domain.\",\n \"in\": \"query\",\n \"name\": \"domain\",\n \"required\": false,\n \"schema\": {\n \"example\": \"foo-corp.com\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter Connections by their associated organization.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Searchable text to match against Connection names.\",\n \"in\": \"query\",\n \"name\": \"search\",\n \"required\": false,\n \"schema\": {\n \"example\": \"Foo Corp\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/connections\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"connections_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Connections\",\n \"tags\": [\n \"connections\"\n ]\n },\n \"cors_origins_controller_create_cors_origin\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a new CORS origin for the current environment. CORS origins allow browser-based applications to make requests to the WorkOS API.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"cors_origins_controller_create_cors_origin\",\n \"parameters\": [],\n \"path\": \"/user_management/cors_origins\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateCorsOriginDto\"\n },\n \"security\": null,\n \"skill_name\": \"cors_origins_controller_create_cors_origin\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a CORS origin\",\n \"tags\": [\n \"user-management.cors-origins\"\n ]\n },\n \"data_integrations_controller_get_data_integration_authorize_url\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Generates an OAuth authorization URL to initiate the connection flow for a user. Redirect the user to the returned URL to begin the OAuth flow with the third-party provider.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"data_integrations_controller_get_data_integration_authorize_url\",\n \"parameters\": [\n {\n \"description\": \"The slug identifier of the provider (e.g., `github`, `slack`, `notion`).\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"github\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/data-integrations/{slug}/authorize\",\n \"request_body\": {\n \"properties\": {\n \"organization_id\": {\n \"description\": \"An organization ID to scope the authorization to a specific organization.\",\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n },\n \"return_to\": {\n \"description\": \"The URL to redirect the user to after authorization.\",\n \"example\": \"https://example.com/callback\",\n \"format\": \"uri\",\n \"type\": \"string\"\n },\n \"user_id\": {\n \"description\": \"The ID of the user to authorize.\",\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"user_id\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"data_integrations_controller_get_data_integration_authorize_url\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get authorization URL\",\n \"tags\": [\n \"pipes\"\n ]\n },\n \"data_integrations_controller_get_userland_user_token\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Fetches a valid OAuth access token for a user's connected account. WorkOS automatically handles token refresh, ensuring you always receive a valid, non-expired token.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"data_integrations_controller_get_userland_user_token\",\n \"parameters\": [\n {\n \"description\": \"The identifier of the integration.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"github\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/data-integrations/{slug}/token\",\n \"request_body\": {\n \"properties\": {\n \"organization_id\": {\n \"description\": \"An [Organization](/reference/organization) identifier. Optional parameter to scope the connection to a specific organization.\",\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n },\n \"user_id\": {\n \"description\": \"A [User](/reference/authkit/user) identifier.\",\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"user_id\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"data_integrations_controller_get_userland_user_token\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an access token for a connected account\",\n \"tags\": [\n \"pipes\"\n ]\n },\n \"data_integrations_user_management_controller_delete_user_data_installation\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"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.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"data_integrations_user_management_controller_delete_user_data_installation\",\n \"parameters\": [\n {\n \"description\": \"A [User](/reference/authkit/user) identifier.\",\n \"in\": \"path\",\n \"name\": \"user_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug identifier of the provider (e.g., `github`, `slack`, `notion`).\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"github\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An [Organization](/reference/organization) identifier. Optional parameter if the connection is scoped to an organization.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{user_id}/connected_accounts/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"data_integrations_user_management_controller_delete_user_data_installation\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a connected account\",\n \"tags\": [\n \"user-management.data-providers\"\n ]\n },\n \"data_integrations_user_management_controller_get_user_data_installation\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieves a user's [connected account](/reference/pipes/connected-account) for a specific provider.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"data_integrations_user_management_controller_get_user_data_installation\",\n \"parameters\": [\n {\n \"description\": \"A [User](/reference/authkit/user) identifier.\",\n \"in\": \"path\",\n \"name\": \"user_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug identifier of the provider (e.g., `github`, `slack`, `notion`).\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"github\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An [Organization](/reference/organization) identifier. Optional parameter if the connection is scoped to an organization.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{user_id}/connected_accounts/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"data_integrations_user_management_controller_get_user_data_installation\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a connected account\",\n \"tags\": [\n \"user-management.data-providers\"\n ]\n },\n \"data_integrations_user_management_controller_get_user_data_integrations\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieves a list of available providers and the user's connection status for each. Returns all providers configured for your environment, along with the user's [connected account](/reference/pipes/connected-account) information where applicable.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"data_integrations_user_management_controller_get_user_data_integrations\",\n \"parameters\": [\n {\n \"description\": \"A [User](/reference/authkit/user) identifier to list providers and connected accounts for.\",\n \"in\": \"path\",\n \"name\": \"user_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An [Organization](/reference/organization) identifier. Optional parameter to filter connections for a specific organization.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{user_id}/data_providers\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"data_integrations_user_management_controller_get_user_data_integrations\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List providers for a user\",\n \"tags\": [\n \"user-management.data-providers\"\n ]\n },\n \"directories_controller_delete_directory\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes an existing directory. It cannot be undone.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"directories_controller_delete_directory\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier for the Directory.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"directory_01ECAZ4NV9QMV47GW873HDCX74\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/directories/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"directories_controller_delete_directory\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a Directory\",\n \"tags\": [\n \"directories\"\n ]\n },\n \"directories_controller_find\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing directory.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"directories_controller_find\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier for the Directory.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"directory_01ECAZ4NV9QMV47GW873HDCX74\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/directories/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"directories_controller_find\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a Directory\",\n \"tags\": [\n \"directories\"\n ]\n },\n \"directories_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of your existing directories matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"directories_controller_list\",\n \"parameters\": [\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter Directories by their associated organization.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Searchable text to match against Directory names.\",\n \"in\": \"query\",\n \"name\": \"search\",\n \"required\": false,\n \"schema\": {\n \"example\": \"Foo Corp\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter Directories by their associated domain.\",\n \"in\": \"query\",\n \"name\": \"domain\",\n \"required\": false,\n \"schema\": {\n \"example\": \"foo-corp.com\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/directories\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"directories_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Directories\",\n \"tags\": [\n \"directories\"\n ]\n },\n \"directory_groups_controller_find\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing Directory Group.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"directory_groups_controller_find\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier for the Directory Group.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"directory_group_01E1JJS84MFPPQ3G655FHTKX6Z\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/directory_groups/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"directory_groups_controller_find\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a Directory Group\",\n \"tags\": [\n \"directory-groups\"\n ]\n },\n \"directory_groups_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of existing directory groups matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"directory_groups_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Unique identifier of the WorkOS Directory. This value can be obtained from the WorkOS dashboard or from the WorkOS API.\",\n \"in\": \"query\",\n \"name\": \"directory\",\n \"required\": false,\n \"schema\": {\n \"example\": \"directory_01ECAZ4NV9QMV47GW873HDCX74\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Unique identifier of the WorkOS Directory User. This value can be obtained from the WorkOS API.\",\n \"in\": \"query\",\n \"name\": \"user\",\n \"required\": false,\n \"schema\": {\n \"example\": \"directory_user_01E1JG7J09H96KYP8HM9B0G5SJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/directory_groups\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"directory_groups_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Directory Groups\",\n \"tags\": [\n \"directory-groups\"\n ]\n },\n \"directory_users_controller_find\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing Directory User.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"directory_users_controller_find\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier for the Directory User.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"directory_user_01E1JG7J09H96KYP8HM9B0G5SJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/directory_users/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"directory_users_controller_find\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a Directory User\",\n \"tags\": [\n \"directory-users\"\n ]\n },\n \"directory_users_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of existing Directory Users matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"directory_users_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Unique identifier of the WorkOS Directory. This value can be obtained from the WorkOS dashboard or from the WorkOS API.\",\n \"in\": \"query\",\n \"name\": \"directory\",\n \"required\": false,\n \"schema\": {\n \"example\": \"directory_01ECAZ4NV9QMV47GW873HDCX74\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Unique identifier of the WorkOS Directory Group. This value can be obtained from the WorkOS API.\",\n \"in\": \"query\",\n \"name\": \"group\",\n \"required\": false,\n \"schema\": {\n \"example\": \"directory_group_01E64QTDNS0EGJ0FMCVY9BWGZT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter Directory Users by the identity provider's unique identifier (`idp_id`). Requires the `directory` parameter to also be provided.\",\n \"in\": \"query\",\n \"name\": \"idp_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"2836\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter Directory Users by their primary email address. Requires the `directory` parameter to also be provided.\",\n \"in\": \"query\",\n \"name\": \"email\",\n \"required\": false,\n \"schema\": {\n \"example\": \"jane.doe@example.com\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/directory_users\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"directory_users_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Directory Users\",\n \"tags\": [\n \"directory-users\"\n ]\n },\n \"events_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List events for the current environment.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"events_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter events by one or more event types (e.g. `dsync.user.created`).\",\n \"in\": \"query\",\n \"name\": \"events\",\n \"required\": false,\n \"schema\": {\n \"example\": [\n \"dsync.user.created\",\n \"dsync.user.updated\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n {\n \"description\": \"ISO-8601 date string to filter events created after this date.\",\n \"in\": \"query\",\n \"name\": \"range_start\",\n \"required\": false,\n \"schema\": {\n \"example\": \"2025-01-01T00:00:00Z\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"ISO-8601 date string to filter events created before this date.\",\n \"in\": \"query\",\n \"name\": \"range_end\",\n \"required\": false,\n \"schema\": {\n \"example\": \"2025-12-31T23:59:59Z\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter events by the [Organization](/reference/organization) that the event is associated with.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHQMYV6MBK39QC5PZXHY59C3\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/events\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"events_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List events\",\n \"tags\": [\n \"events\"\n ]\n },\n \"external_auth_controller_complete_login\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Completes an external authentication flow and returns control to AuthKit. This endpoint is used with [Standalone Connect](/authkit/connect/standalone) to bridge your existing authentication system with the Connect OAuth API infrastructure.\\n\\nAfter successfully authenticating a user in your application, calling this endpoint will:\\n\\n- Create or update the user in AuthKit, using the given `id` as its `external_id`.\\n- Return a `redirect_uri` your application should redirect to in order for AuthKit to complete the flow\\n\\nUsers are automatically created or updated based on the `id` and `email` provided. If a user with the same `id` exists, their information is updated. Otherwise, a new user is created.\\n\\nIf you provide a new `id` with an `email` that already belongs to an existing user, the request will fail with an error as email addresses are unique to a user.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"external_auth_controller_complete_login\",\n \"parameters\": [],\n \"path\": \"/authkit/oauth2/complete\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UserManagementLoginRequest\"\n },\n \"security\": null,\n \"skill_name\": \"external_auth_controller_complete_login\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Complete external authentication\",\n \"tags\": [\n \"workos-connect\"\n ]\n },\n \"feature_flags_controller_disable_flag\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Disables a feature flag in the current environment.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"feature_flags_controller_disable_flag\",\n \"parameters\": [\n {\n \"description\": \"A unique key to reference the Feature Flag.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"advanced-analytics\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/feature-flags/{slug}/disable\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"feature_flags_controller_disable_flag\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Disable a feature flag\",\n \"tags\": [\n \"feature-flags\"\n ]\n },\n \"feature_flags_controller_enable_flag\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Enables a feature flag in the current environment.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"feature_flags_controller_enable_flag\",\n \"parameters\": [\n {\n \"description\": \"A unique key to reference the Feature Flag.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"advanced-analytics\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/feature-flags/{slug}/enable\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"feature_flags_controller_enable_flag\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Enable a feature flag\",\n \"tags\": [\n \"feature-flags\"\n ]\n },\n \"feature_flags_controller_find_by_slug\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing feature flag by its slug.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"feature_flags_controller_find_by_slug\",\n \"parameters\": [\n {\n \"description\": \"A unique key to reference the Feature Flag.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"advanced-analytics\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/feature-flags/{slug}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"feature_flags_controller_find_by_slug\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a feature flag\",\n \"tags\": [\n \"feature-flags\"\n ]\n },\n \"feature_flags_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of your existing feature flags matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"feature_flags_controller_list\",\n \"parameters\": [\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/feature-flags\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"feature_flags_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List feature flags\",\n \"tags\": [\n \"feature-flags\"\n ]\n },\n \"flag_targets_controller_create_target\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Enables a feature flag for a specific target in the current environment. Currently, supported targets include users and organizations.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"flag_targets_controller_create_target\",\n \"parameters\": [\n {\n \"description\": \"The resource ID in format \\\"user_<id>\\\" or \\\"org_<id>\\\".\",\n \"in\": \"path\",\n \"name\": \"resourceId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01234567890abcdef\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The unique slug identifier of the feature flag.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"beta-feature\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/feature-flags/{slug}/targets/{resourceId}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"flag_targets_controller_create_target\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Add a feature flag target\",\n \"tags\": [\n \"feature-flags.targets\"\n ]\n },\n \"flag_targets_controller_delete_target\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Removes a target from the feature flag's target list in the current environment. Currently, supported targets include users and organizations.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"flag_targets_controller_delete_target\",\n \"parameters\": [\n {\n \"description\": \"The resource ID in format \\\"user_<id>\\\" or \\\"org_<id>\\\".\",\n \"in\": \"path\",\n \"name\": \"resourceId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01234567890abcdef\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The unique slug identifier of the feature flag.\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"beta-feature\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/feature-flags/{slug}/targets/{resourceId}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"flag_targets_controller_delete_target\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove a feature flag target\",\n \"tags\": [\n \"feature-flags.targets\"\n ]\n },\n \"group_memberships_controller_add_member\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Add an organization membership to a group.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"group_memberships_controller_add_member\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Unique identifier of the Group.\",\n \"in\": \"path\",\n \"name\": \"groupId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups/{groupId}/organization-memberships\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateGroupMembershipDto\"\n },\n \"security\": null,\n \"skill_name\": \"group_memberships_controller_add_member\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Add a member to a Group\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"group_memberships_controller_list_members\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of organization memberships in a group.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"group_memberships_controller_list_members\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Unique identifier of the Group.\",\n \"in\": \"path\",\n \"name\": \"groupId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups/{groupId}/organization-memberships\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"group_memberships_controller_list_members\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Group members\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"group_memberships_controller_remove_member\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Remove an organization membership from a group.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"group_memberships_controller_remove_member\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Unique identifier of the Group.\",\n \"in\": \"path\",\n \"name\": \"groupId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Unique identifier of the Organization Membership.\",\n \"in\": \"path\",\n \"name\": \"omId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups/{groupId}/organization-memberships/{omId}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"group_memberships_controller_remove_member\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove a member from a Group\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"groups_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new group within an organization.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"groups_controller_create\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateGroupDto\"\n },\n \"security\": null,\n \"skill_name\": \"groups_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a group\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"groups_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete a group from an organization.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"groups_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"groupId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups/{groupId}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"groups_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a group\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"groups_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve a group by its ID within an organization.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"groups_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"groupId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups/{groupId}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"groups_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a group\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"groups_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a paginated list of groups within an organization.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"groups_controller_list\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"groups_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List groups\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"groups_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update an existing group. Only the fields provided in the request body will be updated.\",\n \"destructive\": true,\n \"method\": \"PATCH\",\n \"operation_id\": \"groups_controller_update\",\n \"parameters\": [\n {\n \"description\": \"The ID of the organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHWNCE74X7JSDV0X3SZ3KJNY\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the group.\",\n \"in\": \"path\",\n \"name\": \"groupId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"group_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/groups/{groupId}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateGroupDto\"\n },\n \"security\": null,\n \"skill_name\": \"groups_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a group\",\n \"tags\": [\n \"groups\"\n ]\n },\n \"jump_wire_web_data_vault_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Encrypt and store a new key-value object.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_create\",\n \"parameters\": [],\n \"path\": \"/vault/v1/kv\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateObjectRequest\"\n },\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an object\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_data_vault_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an encrypted object.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the object.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Expected current version for optimistic locking.\",\n \"in\": \"query\",\n \"name\": \"version_check\",\n \"required\": false,\n \"schema\": {\n \"example\": \"c3d4e5f6-7890-abcd-ef12-34567890abcd\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/vault/v1/kv/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an object\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_data_vault_controller_describe\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Fetch metadata for an object without decrypting it.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_describe\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the object.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/vault/v1/kv/{id}/metadata\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_describe\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Describe an object\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_data_vault_controller_index\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"List all encrypted objects with cursor-based pagination.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_index\",\n \"parameters\": [\n {\n \"description\": \"Upper limit on the number of objects to return.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Cursor for the previous page of results.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"b21f3a8c-7e4d-4b1a-9c5e-2d8f6a7b3c4e\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Cursor for the next page of results.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"a10e2b7d-6c3f-4a2b-8d1e-3f9a5b8c7d6e\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Sort direction for results.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"enum\": [\n \"asc\",\n \"desc\"\n ],\n \"example\": \"desc\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter results by name or structured search JSON.\",\n \"in\": \"query\",\n \"name\": \"search\",\n \"required\": false,\n \"schema\": {\n \"example\": \"my-secret\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"ISO 8601 timestamp to filter by last modified time.\",\n \"in\": \"query\",\n \"name\": \"updatedAfter\",\n \"required\": false,\n \"schema\": {\n \"example\": \"2024-01-01T00:00:00Z\",\n \"format\": \"date-time\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/vault/v1/kv\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_index\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List objects\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_data_vault_controller_show_by_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Fetch and decrypt an object by its unique identifier.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_show_by_id\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the object.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/vault/v1/kv/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_show_by_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Read an object by ID\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_data_vault_controller_show_by_name\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Fetch and decrypt an object by its unique name.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_show_by_name\",\n \"parameters\": [\n {\n \"description\": \"Unique name of the object.\",\n \"in\": \"path\",\n \"name\": \"name\",\n \"required\": true,\n \"schema\": {\n \"example\": \"my-secret\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/vault/v1/kv/name/{name}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_show_by_name\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Read an object by name\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_data_vault_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update the value of an existing encrypted object.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_update\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the object.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/vault/v1/kv/{id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateObjectRequest\"\n },\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update an object\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_data_vault_controller_versions\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve all versions for a specific object.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"jump_wire_web_data_vault_controller_versions\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the object.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/vault/v1/kv/{id}/versions\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"jump_wire_web_data_vault_controller_versions\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List object versions\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_key_controller_create_data_key\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Generate an isolated encryption key for local encryption operations.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"jump_wire_web_key_controller_create_data_key\",\n \"parameters\": [],\n \"path\": \"/vault/v1/keys/data-key\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateDataKeyRequest\"\n },\n \"security\": null,\n \"skill_name\": \"jump_wire_web_key_controller_create_data_key\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a data key\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_key_controller_decrypt\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Decrypt a previously encrypted data key from WorkOS Vault.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"jump_wire_web_key_controller_decrypt\",\n \"parameters\": [],\n \"path\": \"/vault/v1/keys/decrypt\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/DecryptRequest\"\n },\n \"security\": null,\n \"skill_name\": \"jump_wire_web_key_controller_decrypt\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Decrypt a data key\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jump_wire_web_key_controller_rekey\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Decrypt an existing data key and re-encrypt it under a new key context.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"jump_wire_web_key_controller_rekey\",\n \"parameters\": [],\n \"path\": \"/vault/v1/keys/rekey\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/RekeyRequest\"\n },\n \"security\": null,\n \"skill_name\": \"jump_wire_web_key_controller_rekey\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Re-encrypt a data key\",\n \"tags\": [\n \"vault\"\n ]\n },\n \"jwt_templates_controller_get_jwt_template\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the JWT template for the current environment.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"jwt_templates_controller_get_jwt_template\",\n \"parameters\": [],\n \"path\": \"/user_management/jwt_template\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"jwt_templates_controller_get_jwt_template\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get JWT template\",\n \"tags\": [\n \"user-management.jwt-template\"\n ]\n },\n \"jwt_templates_controller_update_jwt_template\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update the JWT template for the current environment.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"jwt_templates_controller_update_jwt_template\",\n \"parameters\": [],\n \"path\": \"/user_management/jwt_template\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateJwtTemplateDto\"\n },\n \"security\": null,\n \"skill_name\": \"jwt_templates_controller_update_jwt_template\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update JWT template\",\n \"tags\": [\n \"user-management.jwt-template\"\n ]\n },\n \"organization_api_keys_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new API key for an organization.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"organization_api_keys_controller_create\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/api_keys\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateOrganizationApiKeyDto\"\n },\n \"security\": null,\n \"skill_name\": \"organization_api_keys_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an API key for an organization\",\n \"tags\": [\n \"organizations.api_keys\"\n ]\n },\n \"organization_api_keys_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all API keys for an organization.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organization_api_keys_controller_list\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/api_keys\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organization_api_keys_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List API keys for an organization\",\n \"tags\": [\n \"organizations.api_keys\"\n ]\n },\n \"organization_domains_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a new Organization Domain.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"organization_domains_controller_create\",\n \"parameters\": [],\n \"path\": \"/organization_domains\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateOrganizationDomainDto\"\n },\n \"security\": null,\n \"skill_name\": \"organization_domains_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an Organization Domain\",\n \"tags\": [\n \"organization-domains\"\n ]\n },\n \"organization_domains_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes an organization domain. It cannot be undone.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"organization_domains_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the organization domain.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_domain_01EHZNVPK2QXHMVWCEDQEKY69A\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organization_domains/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organization_domains_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an Organization Domain\",\n \"tags\": [\n \"organization-domains\"\n ]\n },\n \"organization_domains_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing organization domain.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organization_domains_controller_get\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the organization domain.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_domain_01EHZNVPK2QXHMVWCEDQEKY69A\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organization_domains/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organization_domains_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an Organization Domain\",\n \"tags\": [\n \"organization-domains\"\n ]\n },\n \"organization_domains_controller_verify\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Initiates verification process for an Organization Domain.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"organization_domains_controller_verify\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the organization domain.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_domain_01EHZNVPK2QXHMVWCEDQEKY69A\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organization_domains/{id}/verify\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organization_domains_controller_verify\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Verify an Organization Domain\",\n \"tags\": [\n \"organization-domains\"\n ]\n },\n \"organization_feature_flags_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all enabled feature flags for an organization.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organization_feature_flags_controller_list\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/feature-flags\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organization_feature_flags_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List enabled feature flags for an organization\",\n \"tags\": [\n \"organizations.feature-flags\"\n ]\n },\n \"organization_membership_groups_controller_list_groups\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of groups that an organization membership belongs to.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organization_membership_groups_controller_list_groups\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization Membership.\",\n \"in\": \"path\",\n \"name\": \"omId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/user_management/organization_memberships/{omId}/groups\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organization_membership_groups_controller_list_groups\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List groups\",\n \"tags\": [\n \"user-management.organization-membership.groups\"\n ]\n },\n \"organizations_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a new organization in the current environment.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"organizations_controller_create\",\n \"parameters\": [],\n \"path\": \"/organizations\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/OrganizationDto\"\n },\n \"security\": null,\n \"skill_name\": \"organizations_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an Organization\",\n \"tags\": [\n \"organizations\"\n ]\n },\n \"organizations_controller_delete_organization\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes an organization in the current environment. It cannot be undone.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"organizations_controller_delete_organization\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organizations_controller_delete_organization\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an Organization\",\n \"tags\": [\n \"organizations\"\n ]\n },\n \"organizations_controller_find\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing organization.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organizations_controller_find\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organizations_controller_find\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an Organization\",\n \"tags\": [\n \"organizations\"\n ]\n },\n \"organizations_controller_get_audit_log_configuration\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the unified view of audit log trail and stream configuration for an organization.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organizations_controller_get_audit_log_configuration\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{id}/audit_log_configuration\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organizations_controller_get_audit_log_configuration\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get Audit Log Configuration\",\n \"tags\": [\n \"organizations\"\n ]\n },\n \"organizations_controller_get_by_external_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing organization by an [external identifier](/authkit/metadata/external-identifiers).\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organizations_controller_get_by_external_id\",\n \"parameters\": [\n {\n \"description\": \"The external ID of the Organization.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"2fe01467-f7ea-4dd2-8b79-c2b4f56d0191\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/external_id/{external_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organizations_controller_get_by_external_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an Organization by External ID\",\n \"tags\": [\n \"organizations\"\n ]\n },\n \"organizations_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of your existing organizations matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"organizations_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"The domains of an Organization. Any Organization with a matching domain will be returned.\",\n \"in\": \"query\",\n \"name\": \"domains\",\n \"required\": false,\n \"schema\": {\n \"example\": [\n \"foo-corp.com\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n {\n \"description\": \"Searchable text for an Organization. Matches against the organization name.\",\n \"in\": \"query\",\n \"name\": \"search\",\n \"required\": false,\n \"schema\": {\n \"example\": \"Acme Corp\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"organizations_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Organizations\",\n \"tags\": [\n \"organizations\"\n ]\n },\n \"organizations_controller_update_organization\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Updates an organization in the current environment.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"organizations_controller_update_organization\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Organization.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateOrganizationDto\"\n },\n \"security\": null,\n \"skill_name\": \"organizations_controller_update_organization\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update an Organization\",\n \"tags\": [\n \"organizations\"\n ]\n },\n \"portal_sessions_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Generate a Portal Link scoped to an Organization.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"portal_sessions_controller_create\",\n \"parameters\": [],\n \"path\": \"/portal/generate_link\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/GenerateLinkDto\"\n },\n \"security\": null,\n \"skill_name\": \"portal_sessions_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Generate a Portal Link\",\n \"tags\": [\n \"admin-portal\"\n ]\n },\n \"provider_controller_configure\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates or updates an organization's provider configuration. Use this endpoint to enable or disable a provider, set custom OAuth scopes, or supply organization-managed OAuth credentials.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"provider_controller_configure\",\n \"parameters\": [\n {\n \"description\": \"An [Organization](/reference/organization) identifier to configure the provider for.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The slug identifier of the provider to configure (e.g., `github`, `slack`, `notion`).\",\n \"in\": \"path\",\n \"name\": \"slug\",\n \"required\": true,\n \"schema\": {\n \"example\": \"github\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/data_integration_configurations/{slug}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ConfigureDataIntegrationBody\"\n },\n \"security\": null,\n \"skill_name\": \"provider_controller_configure\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Configure a provider for an organization\",\n \"tags\": [\n \"pipes.provider\"\n ]\n },\n \"provider_controller_list_for_organization\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Returns a list of all providers available to the specified organization, along with any configured custom OAuth scopes, enabled state, and organization-managed credentials where applicable.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"provider_controller_list_for_organization\",\n \"parameters\": [\n {\n \"description\": \"An [Organization](/reference/organization) identifier to list provider configurations for.\",\n \"in\": \"path\",\n \"name\": \"organizationId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/organizations/{organizationId}/data_integration_configurations\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"provider_controller_list_for_organization\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List providers for an organization\",\n \"tags\": [\n \"pipes.provider\"\n ]\n },\n \"radar_standalone_controller_assess\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Assess a request for risk using the Radar engine and receive a verdict.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"radar_standalone_controller_assess\",\n \"parameters\": [],\n \"path\": \"/radar/attempts\",\n \"request_body\": {\n \"properties\": {\n \"action\": {\n \"description\": \"The action being performed.\",\n \"enum\": [\n \"sign-up\",\n \"sign-in\"\n ],\n \"example\": \"sign-in\",\n \"type\": \"string\"\n },\n \"auth_method\": {\n \"description\": \"The authentication method being used.\",\n \"enum\": [\n \"Password\",\n \"Passkey\",\n \"Authenticator\",\n \"SMS_OTP\",\n \"Email_OTP\",\n \"Social\",\n \"SSO\",\n \"Other\"\n ],\n \"example\": \"Password\",\n \"type\": \"string\"\n },\n \"email\": {\n \"description\": \"The email address of the user making the request.\",\n \"example\": \"user@example.com\",\n \"format\": \"email\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the request to assess.\",\n \"example\": \"49.78.240.97\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string of the request to assess.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"ip_address\",\n \"user_agent\",\n \"email\",\n \"auth_method\",\n \"action\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"radar_standalone_controller_assess\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an attempt\",\n \"tags\": [\n \"radar\"\n ]\n },\n \"radar_standalone_controller_delete_radar_list_entry\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Remove an entry from a Radar list.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"radar_standalone_controller_delete_radar_list_entry\",\n \"parameters\": [\n {\n \"description\": \"The type of the Radar list (e.g. ip_address, domain, email).\",\n \"in\": \"path\",\n \"name\": \"type\",\n \"required\": true,\n \"schema\": {\n \"enum\": [\n \"ip_address\",\n \"domain\",\n \"email\",\n \"device\",\n \"user_agent\",\n \"device_fingerprint\",\n \"country\"\n ],\n \"example\": \"ip_address\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The list action indicating whether to remove the entry from the allow or block list.\",\n \"in\": \"path\",\n \"name\": \"action\",\n \"required\": true,\n \"schema\": {\n \"enum\": [\n \"block\",\n \"allow\"\n ],\n \"example\": \"block\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/radar/lists/{type}/{action}\",\n \"request_body\": {\n \"properties\": {\n \"entry\": {\n \"description\": \"The value to remove from the list. Must match an existing entry.\",\n \"example\": \"198.51.100.42\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"entry\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"radar_standalone_controller_delete_radar_list_entry\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Remove an entry from a Radar list\",\n \"tags\": [\n \"radar\"\n ]\n },\n \"radar_standalone_controller_update_radar_attempt\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"You may optionally inform Radar that an authentication attempt or challenge was successful using this endpoint. Some Radar controls depend on tracking recent successful attempts, such as impossible travel.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"radar_standalone_controller_update_radar_attempt\",\n \"parameters\": [\n {\n \"description\": \"The unique identifier of the Radar attempt to update.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"radar_att_01HZBC6N1EB1ZY7KG32X\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/radar/attempts/{id}\",\n \"request_body\": {\n \"properties\": {\n \"attempt_status\": {\n \"const\": \"success\",\n \"description\": \"Set to `\\\"success\\\"` to mark the authentication attempt as successful.\",\n \"example\": \"success\",\n \"type\": \"string\"\n },\n \"challenge_status\": {\n \"const\": \"success\",\n \"description\": \"Set to `\\\"success\\\"` to mark the challenge as completed.\",\n \"example\": \"success\",\n \"type\": \"string\"\n }\n },\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"radar_standalone_controller_update_radar_attempt\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a Radar attempt\",\n \"tags\": [\n \"radar\"\n ]\n },\n \"radar_standalone_controller_update_radar_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Add an entry to a Radar list.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"radar_standalone_controller_update_radar_list\",\n \"parameters\": [\n {\n \"description\": \"The type of the Radar list (e.g. ip_address, domain, email).\",\n \"in\": \"path\",\n \"name\": \"type\",\n \"required\": true,\n \"schema\": {\n \"enum\": [\n \"ip_address\",\n \"domain\",\n \"email\",\n \"device\",\n \"user_agent\",\n \"device_fingerprint\",\n \"country\"\n ],\n \"example\": \"ip_address\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The list action indicating whether to add the entry to the allow or block list.\",\n \"in\": \"path\",\n \"name\": \"action\",\n \"required\": true,\n \"schema\": {\n \"enum\": [\n \"block\",\n \"allow\"\n ],\n \"example\": \"block\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/radar/lists/{type}/{action}\",\n \"request_body\": {\n \"properties\": {\n \"entry\": {\n \"description\": \"The value to add to the list. Must match the format of the list type (e.g. a valid IP address for `ip_address`, a valid email for `email`).\",\n \"example\": \"198.51.100.42\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"entry\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"radar_standalone_controller_update_radar_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Add an entry to a Radar list\",\n \"tags\": [\n \"radar\"\n ]\n },\n \"redirect_uris_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a new redirect URI for an application.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"redirect_uris_controller_create\",\n \"parameters\": [],\n \"path\": \"/user_management/redirect_uris\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateRedirectUriDto\"\n },\n \"security\": null,\n \"skill_name\": \"redirect_uris_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a redirect URI\",\n \"tags\": [\n \"user-management.redirect-uris\"\n ]\n },\n \"sso_controller_authorize\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Initiates the single sign-on flow.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"sso_controller_authorize\",\n \"parameters\": [\n {\n \"description\": \"Additional scopes to request from the identity provider. Applicable when using OAuth or OpenID Connect connections.\",\n \"in\": \"query\",\n \"name\": \"provider_scopes\",\n \"required\": false,\n \"schema\": {\n \"example\": [\n \"openid\",\n \"profile\",\n \"email\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n {\n \"description\": \"Key/value pairs of query parameters to pass to the OAuth provider. Only applicable when using OAuth connections.\",\n \"in\": \"query\",\n \"name\": \"provider_query_params\",\n \"required\": false,\n \"schema\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"example\": {\n \"access_type\": \"offline\",\n \"hd\": \"example.com\"\n },\n \"type\": \"object\"\n }\n },\n {\n \"description\": \"The unique identifier of the WorkOS environment client.\",\n \"in\": \"query\",\n \"name\": \"client_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"client_01HZBC6N1EB1ZY7KG32X\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Deprecated. Use `connection` or `organization` instead. Used to initiate SSO for a connection by domain. The domain must be associated with a connection in your WorkOS environment.\",\n \"in\": \"query\",\n \"name\": \"domain\",\n \"required\": false,\n \"schema\": {\n \"example\": \"example.com\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Used to initiate OAuth authentication with various providers.\",\n \"in\": \"query\",\n \"name\": \"provider\",\n \"required\": false,\n \"schema\": {\n \"enum\": [\n \"AppleOAuth\",\n \"BitbucketOAuth\",\n \"GitHubOAuth\",\n \"GitLabOAuth\",\n \"GoogleOAuth\",\n \"IntuitOAuth\",\n \"LinkedInOAuth\",\n \"MicrosoftOAuth\",\n \"SalesforceOAuth\",\n \"SlackOAuth\",\n \"VercelMarketplaceOAuth\",\n \"VercelOAuth\",\n \"XeroOAuth\"\n ],\n \"example\": \"GoogleOAuth\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Where to redirect the user after they complete the authentication process. You must use one of the redirect URIs configured via the [Redirects](https://dashboard.workos.com/redirects) page on the dashboard.\",\n \"in\": \"query\",\n \"name\": \"redirect_uri\",\n \"required\": true,\n \"schema\": {\n \"example\": \"https://example.com/callback\",\n \"format\": \"uri\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The only valid option for the response type parameter is `\\\"code\\\"`.\\n\\nThe `\\\"code\\\"` parameter value initiates an [authorization code grant type](https://tools.ietf.org/html/rfc6749#section-4.1). This grant type allows you to exchange an authorization code for an access token during the redirect that takes place after a user has authenticated with an identity provider.\",\n \"in\": \"query\",\n \"name\": \"response_type\",\n \"required\": true,\n \"schema\": {\n \"const\": \"code\",\n \"example\": \"code\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An optional parameter that can be used to encode arbitrary information to help restore application state between redirects. If included, the redirect URI received from WorkOS will contain the exact `state` that was passed.\",\n \"in\": \"query\",\n \"name\": \"state\",\n \"required\": false,\n \"schema\": {\n \"example\": \"dj1kUXc0dzlXZ1hjUQ==\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Used to initiate SSO for a connection. The value should be a WorkOS connection ID.\\n\\nYou can persist the WorkOS connection ID with application user or team identifiers. WorkOS will use the connection indicated by the connection parameter to direct the user to the corresponding IdP for authentication.\",\n \"in\": \"query\",\n \"name\": \"connection\",\n \"required\": false,\n \"schema\": {\n \"example\": \"conn_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Used to initiate SSO for an organization. The value should be a WorkOS organization ID.\\n\\nYou can persist the WorkOS organization ID with application user or team identifiers. WorkOS will use the organization ID to determine the appropriate connection and the IdP to direct the user to for authentication.\",\n \"in\": \"query\",\n \"name\": \"organization\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHQMYV6MBK39QC5PZXHY59C3\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Can be used to pre-fill the domain field when initiating authentication with Microsoft OAuth or with a Google SAML connection type.\",\n \"in\": \"query\",\n \"name\": \"domain_hint\",\n \"required\": false,\n \"schema\": {\n \"example\": \"example.com\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Can be used to pre-fill the username/email address field of the IdP sign-in page for the user, if you know their username ahead of time. Currently supported for OAuth, OpenID Connect, Okta, Entra ID, and custom SAML connections.\",\n \"in\": \"query\",\n \"name\": \"login_hint\",\n \"required\": false,\n \"schema\": {\n \"example\": \"user@example.com\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"A random string generated by the client that is used to mitigate replay attacks.\",\n \"in\": \"query\",\n \"name\": \"nonce\",\n \"required\": false,\n \"schema\": {\n \"example\": \"abc123def456\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/sso/authorize\",\n \"request_body\": null,\n \"security\": [],\n \"skill_name\": \"sso_controller_authorize\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Initiate SSO\",\n \"tags\": [\n \"sso\"\n ]\n },\n \"sso_controller_get_profile\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Exchange an access token for a user's [Profile](/reference/sso/profile). Because this profile is returned in the [Get a Profile and Token endpoint](/reference/sso/profile/get-profile-and-token) your application usually does not need to call this endpoint. It is available for any authentication flows that require an additional endpoint to retrieve a user's profile.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"sso_controller_get_profile\",\n \"parameters\": [],\n \"path\": \"/sso/profile\",\n \"request_body\": null,\n \"security\": [\n {\n \"access_token\": []\n }\n ],\n \"skill_name\": \"sso_controller_get_profile\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a User Profile\",\n \"tags\": [\n \"sso\"\n ]\n },\n \"sso_controller_json_web_key_set\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Returns the JSON Web Key Set (JWKS) containing the public keys used for verifying access tokens.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"sso_controller_json_web_key_set\",\n \"parameters\": [\n {\n \"description\": \"Identifies the application making the request to the WorkOS server. You can obtain your client ID from the [API Keys](https://dashboard.workos.com/api-keys) page in the dashboard.\",\n \"in\": \"path\",\n \"name\": \"clientId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/sso/jwks/{clientId}\",\n \"request_body\": null,\n \"security\": [],\n \"skill_name\": \"sso_controller_json_web_key_set\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get JWKS\",\n \"tags\": [\n \"user-management.session-tokens\"\n ]\n },\n \"sso_controller_logout\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Logout allows to sign out a user from your application by triggering the identity provider sign out flow. This `GET` endpoint should be a redirection, since the identity provider user will be identified in the browser session.\\n\\nBefore redirecting to this endpoint, you need to generate a short-lived logout token using the [Logout Authorize](/reference/sso/logout/authorize) endpoint.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"sso_controller_logout\",\n \"parameters\": [\n {\n \"description\": \"The logout token returned from the [Logout Authorize](/reference/sso/logout/authorize) endpoint.\",\n \"in\": \"query\",\n \"name\": \"token\",\n \"required\": true,\n \"schema\": {\n \"example\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcm9maWxlX2lkIjoicHJvZl8wMUdXUTFHMEgyRk02QVNFRjBIUzEzSENXOS0zMDRrZzAzZyIsImV4cCI6IjE1MTYyMzkwMjIifQ.Wru9Qlnf5DpohtGCKhZU4cVOd3zpiu7QQ-XEX--5A_4\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/sso/logout\",\n \"request_body\": null,\n \"security\": [],\n \"skill_name\": \"sso_controller_logout\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Logout Redirect\",\n \"tags\": [\n \"sso\"\n ]\n },\n \"sso_controller_logout_authorize\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"You should call this endpoint from your server to generate a logout token which is required for the [Logout Redirect](/reference/sso/logout) endpoint.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"sso_controller_logout_authorize\",\n \"parameters\": [],\n \"path\": \"/sso/logout/authorize\",\n \"request_body\": {\n \"properties\": {\n \"profile_id\": {\n \"description\": \"The unique ID of the profile to log out.\",\n \"example\": \"prof_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"profile_id\"\n ],\n \"type\": \"object\"\n },\n \"security\": null,\n \"skill_name\": \"sso_controller_logout_authorize\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Logout Authorize\",\n \"tags\": [\n \"sso\"\n ]\n },\n \"sso_controller_token\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get an access token along with the user [Profile](/reference/sso/profile) using the code passed to your [Redirect URI](/reference/sso/get-authorization-url/redirect-uri).\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"sso_controller_token\",\n \"parameters\": [\n {\n \"description\": \"The client ID of the WorkOS environment.\",\n \"in\": \"query\",\n \"name\": \"client_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"client_01HZBC6N1EB1ZY7KG32X\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The client secret of the WorkOS environment.\",\n \"in\": \"query\",\n \"name\": \"client_secret\",\n \"required\": true,\n \"schema\": {\n \"example\": \"sk_example_123456789\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The authorization code received from the authorization callback.\",\n \"in\": \"query\",\n \"name\": \"code\",\n \"required\": true,\n \"schema\": {\n \"example\": \"authorization_code_value\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The grant type for the token request.\",\n \"in\": \"query\",\n \"name\": \"grant_type\",\n \"required\": true,\n \"schema\": {\n \"const\": \"authorization_code\",\n \"example\": \"authorization_code\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/sso/token\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/TokenQueryDto\"\n },\n \"security\": [],\n \"skill_name\": \"sso_controller_token\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a Profile and Token\",\n \"tags\": [\n \"sso\"\n ]\n },\n \"user_api_keys_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new API key owned by a user. The user must have an active membership in the specified organization.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"user_api_keys_controller_create\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the user.\",\n \"in\": \"path\",\n \"name\": \"userId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{userId}/api_keys\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateUserApiKeyDto\"\n },\n \"security\": null,\n \"skill_name\": \"user_api_keys_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an API key for a user\",\n \"tags\": [\n \"api_keys\"\n ]\n },\n \"user_api_keys_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of API keys owned by a specific user.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"user_api_keys_controller_list\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the user.\",\n \"in\": \"path\",\n \"name\": \"userId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"The ID of the organization to filter user API keys by. When provided, only API keys created against that organization membership are returned.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{userId}/api_keys\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"user_api_keys_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List API keys for a user\",\n \"tags\": [\n \"api_keys\"\n ]\n },\n \"userland_magic_auth_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing [Magic Auth](/reference/authkit/magic-auth) code that can be used to send an email to a user for authentication.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_magic_auth_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the Magic Auth code.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"magic_auth_01HWZBQZY2M3AMQW166Q22K88F\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/magic_auth/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_magic_auth_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get Magic Auth code details\",\n \"tags\": [\n \"user-management.magic-auth\"\n ]\n },\n \"userland_magic_auth_controller_send_magic_auth_code_and_return\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a one-time authentication code that can be sent to the user's email address. The code expires in 10 minutes. To verify the code, [authenticate the user with Magic Auth](/reference/authkit/authentication/magic-auth).\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_magic_auth_controller_send_magic_auth_code_and_return\",\n \"parameters\": [],\n \"path\": \"/user_management/magic_auth\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateUserlandMagicCodeAndReturnDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_magic_auth_controller_send_magic_auth_code_and_return\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a Magic Auth code\",\n \"tags\": [\n \"user-management.magic-auth\"\n ]\n },\n \"userland_sessions_controller_authenticate_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Authenticate a user with a specified [authentication method](/reference/authkit/authentication).\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_sessions_controller_authenticate_0\",\n \"parameters\": [],\n \"path\": \"/user_management/authenticate\",\n \"request_body\": {\n \"oneOf\": [\n {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_secret\": {\n \"description\": \"The client secret of the application. May be omitted by public clients that authenticate through other means, such as a PKCE `code_verifier`.\",\n \"example\": \"sk_test_....\",\n \"type\": \"string\"\n },\n \"code\": {\n \"description\": \"The authorization code received from the redirect.\",\n \"example\": \"vBqZKaPpsnJlPfXiDqN7b6VTz\",\n \"type\": \"string\"\n },\n \"code_verifier\": {\n \"description\": \"The PKCE code verifier used to derive the code challenge passed to the authorization URL.\",\n \"example\": \"dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"authorization_code\",\n \"type\": \"string\"\n },\n \"invitation_token\": {\n \"description\": \"An invitation token to accept during authentication.\",\n \"example\": \"inv_tok_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"grant_type\",\n \"code\"\n ],\n \"type\": \"object\"\n },\n {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_secret\": {\n \"description\": \"The client secret of the application.\",\n \"example\": \"sk_test_....\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"email\": {\n \"description\": \"The user's email address.\",\n \"example\": \"user@example.com\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"password\",\n \"type\": \"string\"\n },\n \"invitation_token\": {\n \"description\": \"An invitation token to accept during authentication.\",\n \"example\": \"inv_tok_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"password\": {\n \"description\": \"The user's password.\",\n \"example\": \"strong_password_123!\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"client_secret\",\n \"grant_type\",\n \"email\",\n \"password\"\n ],\n \"type\": \"object\"\n },\n {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_secret\": {\n \"description\": \"The client secret of the application. May be omitted by public clients that authenticate through other means, such as a PKCE `code_verifier`.\",\n \"example\": \"sk_test_....\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"refresh_token\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"organization_id\": {\n \"description\": \"The ID of the organization to scope the session to.\",\n \"example\": \"org_01EHQMYV6MBK39QC5PZXHY59C3\",\n \"type\": \"string\"\n },\n \"refresh_token\": {\n \"description\": \"The refresh token to exchange for new tokens.\",\n \"example\": \"yAjhKk23hJMM3DaR...\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"grant_type\",\n \"refresh_token\"\n ],\n \"type\": \"object\"\n },\n {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_secret\": {\n \"description\": \"The client secret of the application.\",\n \"example\": \"sk_test_....\",\n \"type\": \"string\"\n },\n \"code\": {\n \"description\": \"The one-time code for Magic Auth authentication.\",\n \"example\": \"123456\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"email\": {\n \"description\": \"The user's email address.\",\n \"example\": \"user@example.com\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"urn:workos:oauth:grant-type:magic-auth:code\",\n \"type\": \"string\"\n },\n \"invitation_token\": {\n \"description\": \"An invitation token to accept during authentication.\",\n \"example\": \"inv_tok_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"client_secret\",\n \"grant_type\",\n \"code\",\n \"email\"\n ],\n \"type\": \"object\"\n },\n {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_secret\": {\n \"description\": \"The client secret of the application.\",\n \"example\": \"sk_test_....\",\n \"type\": \"string\"\n },\n \"code\": {\n \"description\": \"The email verification code.\",\n \"example\": \"123456\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"urn:workos:oauth:grant-type:email-verification:code\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"pending_authentication_token\": {\n \"description\": \"The pending authentication token from a previous authentication attempt.\",\n \"example\": \"cTDQJTTkTkkVYxbn...\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"client_secret\",\n \"grant_type\",\n \"code\",\n \"pending_authentication_token\"\n ],\n \"type\": \"object\"\n },\n {\n \"properties\": {\n \"authentication_challenge_id\": {\n \"description\": \"The ID of the MFA authentication challenge.\",\n \"example\": \"auth_challenge_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_secret\": {\n \"description\": \"The client secret of the application.\",\n \"example\": \"sk_test_....\",\n \"type\": \"string\"\n },\n \"code\": {\n \"description\": \"The TOTP code from the authenticator app.\",\n \"example\": \"123456\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"urn:workos:oauth:grant-type:mfa-totp\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"pending_authentication_token\": {\n \"description\": \"The pending authentication token from a previous authentication attempt.\",\n \"example\": \"cTDQJTTkTkkVYxbn...\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"client_secret\",\n \"grant_type\",\n \"code\",\n \"pending_authentication_token\",\n \"authentication_challenge_id\"\n ],\n \"type\": \"object\"\n },\n {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"client_secret\": {\n \"description\": \"The client secret of the application.\",\n \"example\": \"sk_test_....\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"urn:workos:oauth:grant-type:organization-selection\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"organization_id\": {\n \"description\": \"The ID of the organization the user selected.\",\n \"example\": \"org_01EHQMYV6MBK39QC5PZXHY59C3\",\n \"type\": \"string\"\n },\n \"pending_authentication_token\": {\n \"description\": \"The pending authentication token from a previous authentication attempt.\",\n \"example\": \"cTDQJTTkTkkVYxbn...\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"client_secret\",\n \"grant_type\",\n \"pending_authentication_token\",\n \"organization_id\"\n ],\n \"type\": \"object\"\n },\n {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The client ID of the application.\",\n \"example\": \"client_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"device_code\": {\n \"description\": \"The device verification code.\",\n \"example\": \"Ao4fMrDS...\",\n \"type\": \"string\"\n },\n \"device_id\": {\n \"description\": \"A unique identifier for the device.\",\n \"example\": \"device_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n },\n \"grant_type\": {\n \"const\": \"urn:ietf:params:oauth:grant-type:device_code\",\n \"type\": \"string\"\n },\n \"ip_address\": {\n \"description\": \"The IP address of the user's request.\",\n \"example\": \"203.0.113.42\",\n \"type\": \"string\"\n },\n \"user_agent\": {\n \"description\": \"The user agent string from the user's browser.\",\n \"example\": \"Mozilla/5.0\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\",\n \"grant_type\",\n \"device_code\"\n ],\n \"type\": \"object\"\n }\n ]\n },\n \"security\": null,\n \"skill_name\": \"userland_sessions_controller_authenticate_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Authenticate\",\n \"tags\": [\n \"user-management.authentication\"\n ]\n },\n \"userland_sessions_controller_logout\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Logout a user from the current [session](/reference/authkit/session).\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_sessions_controller_logout\",\n \"parameters\": [\n {\n \"description\": \"The ID of the session. This can be extracted from the `sid` claim of the access token.\",\n \"in\": \"query\",\n \"name\": \"session_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"session_01H93ZY4F80QPBEZ1R5B2SHQG8\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The URL to redirect the user to after logout.\",\n \"in\": \"query\",\n \"name\": \"return_to\",\n \"required\": false,\n \"schema\": {\n \"example\": \"https://example.com\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/sessions/logout\",\n \"request_body\": null,\n \"security\": [],\n \"skill_name\": \"userland_sessions_controller_logout\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Logout\",\n \"tags\": [\n \"user-management.authentication\"\n ]\n },\n \"userland_sessions_controller_revoke_session\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Revoke a [user session](/reference/authkit/session).\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_sessions_controller_revoke_session\",\n \"parameters\": [],\n \"path\": \"/user_management/sessions/revoke\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UserlandRevokeSessionDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_sessions_controller_revoke_session\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Revoke Session\",\n \"tags\": [\n \"user-management.authentication\"\n ]\n },\n \"userland_sso_controller_authorize\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Generates an OAuth 2.0 authorization URL to authenticate a user with AuthKit or SSO.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_sso_controller_authorize\",\n \"parameters\": [\n {\n \"description\": \"The only valid PKCE code challenge method is `\\\"S256\\\"`. Required when specifying a `code_challenge`.\",\n \"in\": \"query\",\n \"name\": \"code_challenge_method\",\n \"required\": false,\n \"schema\": {\n \"const\": \"S256\",\n \"example\": \"S256\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Code challenge derived from the code verifier used for the PKCE flow.\",\n \"in\": \"query\",\n \"name\": \"code_challenge\",\n \"required\": false,\n \"schema\": {\n \"example\": \"E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"A domain hint for SSO connection lookup.\",\n \"in\": \"query\",\n \"name\": \"domain_hint\",\n \"required\": false,\n \"schema\": {\n \"example\": \"example.com\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of an SSO connection to use for authentication.\",\n \"in\": \"query\",\n \"name\": \"connection_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"conn_01EHQMYV6MBK39QC5PZXHY59C3\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Key/value pairs of query parameters to pass to the OAuth provider.\",\n \"in\": \"query\",\n \"name\": \"provider_query_params\",\n \"required\": false,\n \"schema\": {\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"example\": {\n \"access_type\": \"offline\",\n \"hd\": \"example.com\"\n },\n \"type\": \"object\"\n }\n },\n {\n \"description\": \"Additional OAuth scopes to request from the identity provider.\",\n \"in\": \"query\",\n \"name\": \"provider_scopes\",\n \"required\": false,\n \"schema\": {\n \"example\": [\n \"openid\",\n \"profile\",\n \"email\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n {\n \"description\": \"A token representing a user invitation to redeem during authentication.\",\n \"in\": \"query\",\n \"name\": \"invitation_token\",\n \"required\": false,\n \"schema\": {\n \"example\": \"inv_token_abc123\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Used to specify which screen to display when the provider is `authkit`.\",\n \"in\": \"query\",\n \"name\": \"screen_hint\",\n \"required\": false,\n \"schema\": {\n \"default\": \"sign-in\",\n \"enum\": [\n \"sign-up\",\n \"sign-in\"\n ],\n \"example\": \"sign-in\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"A hint to the authorization server about the login identifier the user might use.\",\n \"in\": \"query\",\n \"name\": \"login_hint\",\n \"required\": false,\n \"schema\": {\n \"example\": \"user@example.com\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The OAuth provider to authenticate with (e.g., GoogleOAuth, MicrosoftOAuth, GitHubOAuth).\",\n \"in\": \"query\",\n \"name\": \"provider\",\n \"required\": false,\n \"schema\": {\n \"enum\": [\n \"authkit\",\n \"AppleOAuth\",\n \"BitbucketOAuth\",\n \"GitHubOAuth\",\n \"GitLabOAuth\",\n \"GoogleOAuth\",\n \"IntuitOAuth\",\n \"LinkedInOAuth\",\n \"MicrosoftOAuth\",\n \"SalesforceOAuth\",\n \"SlackOAuth\",\n \"VercelMarketplaceOAuth\",\n \"VercelOAuth\",\n \"XeroOAuth\"\n ],\n \"example\": \"GoogleOAuth\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Controls the authentication flow behavior for the user.\",\n \"in\": \"query\",\n \"name\": \"prompt\",\n \"required\": false,\n \"schema\": {\n \"example\": \"login\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"An opaque value used to maintain state between the request and the callback.\",\n \"in\": \"query\",\n \"name\": \"state\",\n \"required\": false,\n \"schema\": {\n \"example\": \"eyJyZXR1cm5UbyI6ICIvZGFzaGJvYXJkIn0=\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The ID of the organization to authenticate the user against.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHQMYV6MBK39QC5PZXHY59C3\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The response type of the application.\",\n \"in\": \"query\",\n \"name\": \"response_type\",\n \"required\": true,\n \"schema\": {\n \"const\": \"code\",\n \"example\": \"code\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The callback URI where the authorization code will be sent after authentication.\",\n \"in\": \"query\",\n \"name\": \"redirect_uri\",\n \"required\": true,\n \"schema\": {\n \"example\": \"https://example.com/callback\",\n \"format\": \"uri\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The unique identifier of the WorkOS environment client.\",\n \"in\": \"query\",\n \"name\": \"client_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"client_01HZBC6N1EB1ZY7KG32X\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/authorize\",\n \"request_body\": null,\n \"security\": [],\n \"skill_name\": \"userland_sso_controller_authorize\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an authorization URL\",\n \"tags\": [\n \"user-management.authentication\"\n ]\n },\n \"userland_sso_controller_device_authorization\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Initiates the CLI Auth flow by requesting a device code and verification URLs. This endpoint implements the OAuth 2.0 Device Authorization Flow ([RFC 8628](https://datatracker.ietf.org/doc/html/rfc8628)) and is designed for command-line applications or other devices with limited input capabilities.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_sso_controller_device_authorization\",\n \"parameters\": [],\n \"path\": \"/user_management/authorize/device\",\n \"request_body\": {\n \"properties\": {\n \"client_id\": {\n \"description\": \"The WorkOS client ID for your application.\",\n \"example\": \"client_01HZBC6N1EB1ZY7KG32X\",\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"client_id\"\n ],\n \"type\": \"object\"\n },\n \"security\": [],\n \"skill_name\": \"userland_sso_controller_device_authorization\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get device authorization URL\",\n \"tags\": [\n \"user-management.authentication\"\n ]\n },\n \"userland_user_authentication_factors_controller_create_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Enrolls a user in a new [authentication factor](/reference/authkit/mfa/authentication-factor).\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_user_authentication_factors_controller_create_0\",\n \"parameters\": [\n {\n \"description\": \"The ID of the [user](/reference/authkit/user).\",\n \"in\": \"path\",\n \"name\": \"userlandUserId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{userlandUserId}/auth_factors\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/EnrollUserlandUserAuthenticationFactorDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_user_authentication_factors_controller_create_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Enroll an authentication factor\",\n \"tags\": [\n \"user-management.multi-factor-authentication\"\n ]\n },\n \"userland_user_authentication_factors_controller_list_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Lists the [authentication factors](/reference/authkit/mfa/authentication-factor) for a user.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_authentication_factors_controller_list_0\",\n \"parameters\": [\n {\n \"description\": \"The ID of the [user](/reference/authkit/user).\",\n \"in\": \"path\",\n \"name\": \"userlandUserId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/user_management/users/{userlandUserId}/auth_factors\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_authentication_factors_controller_list_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List authentication factors\",\n \"tags\": [\n \"user-management.multi-factor-authentication\"\n ]\n },\n \"userland_user_feature_flags_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all enabled feature flags for the provided user. This includes feature flags enabled specifically for the user as well as any organizations that the user is a member of.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_feature_flags_controller_list\",\n \"parameters\": [\n {\n \"description\": \"The ID of the user.\",\n \"in\": \"path\",\n \"name\": \"userId\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"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.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"obj_1234567890\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"description\": \"Order the results by the creation time.\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/user_management/users/{userId}/feature-flags\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_feature_flags_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List enabled feature flags for a user\",\n \"tags\": [\n \"user-management.users.feature-flags\"\n ]\n },\n \"userland_user_identities_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of identities associated with the user. A user can have multiple associated identities after going through [identity linking](/authkit/identity-linking). Currently only OAuth identities are supported. More provider types may be added in the future.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_identities_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}/identities\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_identities_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get user identities\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_user_invites_controller_accept\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Accepts an invitation and, if linked to an organization, activates the user's membership in that organization.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_user_invites_controller_accept\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the invitation.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"invitation_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/invitations/{id}/accept\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_invites_controller_accept\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Accept an invitation\",\n \"tags\": [\n \"user-management.invitations\"\n ]\n },\n \"userland_user_invites_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Sends an invitation email to the recipient.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_user_invites_controller_create\",\n \"parameters\": [],\n \"path\": \"/user_management/invitations\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateUserlandUserInviteOptionsDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_user_invites_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Send an invitation\",\n \"tags\": [\n \"user-management.invitations\"\n ]\n },\n \"userland_user_invites_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing invitation.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_invites_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the invitation.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"invitation_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/invitations/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_invites_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an invitation\",\n \"tags\": [\n \"user-management.invitations\"\n ]\n },\n \"userland_user_invites_controller_get_by_token\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Retrieve an existing invitation using the token.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_invites_controller_get_by_token\",\n \"parameters\": [\n {\n \"description\": \"The token used to accept the invitation.\",\n \"in\": \"path\",\n \"name\": \"token\",\n \"required\": true,\n \"schema\": {\n \"example\": \"Z1uX3RbwcIl5fIGJJJCXXisdI\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/invitations/by_token/{token}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_invites_controller_get_by_token\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Find an invitation by token\",\n \"tags\": [\n \"user-management.invitations\"\n ]\n },\n \"userland_user_invites_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of invitations matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_invites_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"The ID of the [organization](/reference/organization) that the recipient will join.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"The email address of the recipient.\",\n \"in\": \"query\",\n \"name\": \"email\",\n \"required\": false,\n \"schema\": {\n \"example\": \"marcelina.davis@example.com\",\n \"format\": \"email\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/invitations\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_invites_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List invitations\",\n \"tags\": [\n \"user-management.invitations\"\n ]\n },\n \"userland_user_invites_controller_resend\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Resends an invitation email to the recipient. The invitation must be in a pending state.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_user_invites_controller_resend\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the invitation.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"invitation_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/invitations/{id}/resend\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ResendUserlandUserInviteOptionsDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_user_invites_controller_resend\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Resend an invitation\",\n \"tags\": [\n \"user-management.invitations\"\n ]\n },\n \"userland_user_invites_controller_revoke\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Revokes an existing invitation.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_user_invites_controller_revoke\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the invitation.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"invitation_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/invitations/{id}/revoke\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_invites_controller_revoke\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Revoke an invitation\",\n \"tags\": [\n \"user-management.invitations\"\n ]\n },\n \"userland_user_organization_memberships_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a new `active` organization membership for the given organization and user.\\n\\nCalling this API with an organization and user that match an `inactive` organization membership will activate the membership with the specified role(s).\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_user_organization_memberships_controller_create\",\n \"parameters\": [],\n \"path\": \"/user_management/organization_memberships\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateUserlandUserOrganizationMembershipDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_user_organization_memberships_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create an organization membership\",\n \"tags\": [\n \"user-management.organization-membership\"\n ]\n },\n \"userland_user_organization_memberships_controller_deactivate\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Deactivates an `active` organization membership. Emits an [organization_membership.updated](/events/organization-membership) event upon successful deactivation.\\n\\n- Deactivating an `inactive` membership is a no-op and does not emit an event.\\n- Deactivating a `pending` membership returns an error. This membership should be [deleted](/reference/authkit/organization-membership/delete) instead.\\n\\nSee the [membership management documentation](/authkit/users-organizations/organizations/membership-management) for additional details.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"userland_user_organization_memberships_controller_deactivate\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/organization_memberships/{id}/deactivate\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_organization_memberships_controller_deactivate\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Deactivate an organization membership\",\n \"tags\": [\n \"user-management.organization-membership\"\n ]\n },\n \"userland_user_organization_memberships_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes an existing organization membership. It cannot be undone.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"userland_user_organization_memberships_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/organization_memberships/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_organization_memberships_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete an organization membership\",\n \"tags\": [\n \"user-management.organization-membership\"\n ]\n },\n \"userland_user_organization_memberships_controller_get\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing organization membership.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_organization_memberships_controller_get\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/organization_memberships/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_organization_memberships_controller_get\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an organization membership\",\n \"tags\": [\n \"user-management.organization-membership\"\n ]\n },\n \"userland_user_organization_memberships_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all organization memberships matching the criteria specified. At least one of `user_id` or `organization_id` must be provided. By default only active memberships are returned. Use the `statuses` parameter to filter by other statuses.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_organization_memberships_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"The ID of the [organization](/reference/organization) which the user belongs to.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter by the status of the organization membership. Array including any of `active`, `inactive`, or `pending`.\",\n \"in\": \"query\",\n \"name\": \"statuses\",\n \"required\": false,\n \"schema\": {\n \"example\": [\n \"active\"\n ],\n \"items\": {\n \"enum\": [\n \"active\",\n \"inactive\",\n \"pending\"\n ],\n \"type\": \"string\"\n },\n \"type\": \"array\"\n }\n },\n {\n \"description\": \"The ID of the [user](/reference/authkit/user).\",\n \"in\": \"query\",\n \"name\": \"user_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C5A4QZ2Z2JQXGKZJ9E\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/organization_memberships\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_organization_memberships_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List organization memberships\",\n \"tags\": [\n \"user-management.organization-membership\"\n ]\n },\n \"userland_user_organization_memberships_controller_reactivate\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Reactivates an `inactive` organization membership, retaining the pre-existing role(s). Emits an [organization_membership.updated](/events/organization-membership) event upon successful reactivation.\\n\\n- Reactivating an `active` membership is a no-op and does not emit an event.\\n- Reactivating a `pending` membership returns an error. The user needs to [accept the invitation](/authkit/invitations) instead.\\n\\nSee the [membership management documentation](/authkit/users-organizations/organizations/membership-management) for additional details.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"userland_user_organization_memberships_controller_reactivate\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/organization_memberships/{id}/reactivate\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_organization_memberships_controller_reactivate\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Reactivate an organization membership\",\n \"tags\": [\n \"user-management.organization-membership\"\n ]\n },\n \"userland_user_organization_memberships_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update the details of an existing organization membership.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"userland_user_organization_memberships_controller_update\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the organization membership.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"om_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/organization_memberships/{id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateUserlandUserOrganizationMembershipDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_user_organization_memberships_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update an organization membership\",\n \"tags\": [\n \"user-management.organization-membership\"\n ]\n },\n \"userland_user_sessions_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all active sessions for a specific user.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_user_sessions_controller_list\",\n \"parameters\": [\n {\n \"description\": \"The ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}/sessions\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_user_sessions_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List sessions\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_confirm_email_change\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Confirms an email change using the one-time code received by the user.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_users_controller_confirm_email_change\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}/email_change/confirm\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/ConfirmEmailChangeDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_users_controller_confirm_email_change\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Confirm email change\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_create_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new user in the current environment.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_users_controller_create_0\",\n \"parameters\": [],\n \"path\": \"/user_management/users\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateUserlandUserDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_users_controller_create_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a user\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_create_password_reset_token\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Creates a one-time token that can be used to reset a user's password.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_users_controller_create_password_reset_token\",\n \"parameters\": [],\n \"path\": \"/user_management/password_reset\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreatePasswordResetTokenDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_users_controller_create_password_reset_token\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a password reset token\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_delete_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Permanently deletes a user in the current environment. It cannot be undone.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"userland_users_controller_delete_0\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_users_controller_delete_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a user\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_email_verification_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Verifies an email address using the one-time code received by the user.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_users_controller_email_verification_0\",\n \"parameters\": [\n {\n \"description\": \"The ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}/email_verification/confirm\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/VerifyEmailAddressDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_users_controller_email_verification_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Verify email\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_get_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing user.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_users_controller_get_0\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_users_controller_get_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a user\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_get_by_external_id\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing user by an [external identifier](/authkit/metadata/external-identifiers).\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_users_controller_get_by_external_id\",\n \"parameters\": [\n {\n \"description\": \"The external ID of the user.\",\n \"in\": \"path\",\n \"name\": \"external_id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"f1ffa2b2-c20b-4d39-be5c-212726e11222\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/external_id/{external_id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_users_controller_get_by_external_id\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a user by external ID\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_get_email_verification\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing email verification code that can be used to send an email to a user for verification.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_users_controller_get_email_verification\",\n \"parameters\": [\n {\n \"description\": \"The ID of the email verification code.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"email_verification_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/email_verification/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_users_controller_get_email_verification\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get an email verification code\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_get_password_reset\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get the details of an existing password reset token that can be used to reset a user's password.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_users_controller_get_password_reset\",\n \"parameters\": [\n {\n \"description\": \"The ID of the password reset token.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"password_reset_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/password_reset/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_users_controller_get_password_reset\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Get a password reset token\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_list_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of your existing users matching the criteria specified.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"userland_users_controller_list_0\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n },\n {\n \"description\": \"Filter users by the organization they are a member of. Deprecated in favor of `organization_id`.\",\n \"in\": \"query\",\n \"name\": \"organization\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter users by the organization they are a member of.\",\n \"in\": \"query\",\n \"name\": \"organization_id\",\n \"required\": false,\n \"schema\": {\n \"example\": \"org_01EHZNVPK3SFK441A1RGBFSHRT\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Filter users by their email address.\",\n \"in\": \"query\",\n \"name\": \"email\",\n \"required\": false,\n \"schema\": {\n \"example\": \"user@example.com\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_users_controller_list_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List users\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_reset_password_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Sets a new password using the `token` query parameter from the link that the user received. Successfully resetting the password will verify a user's email, if it hasn't been verified yet.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_users_controller_reset_password_0\",\n \"parameters\": [],\n \"path\": \"/user_management/password_reset/confirm\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreatePasswordResetDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_users_controller_reset_password_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Reset the password\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_send_email_change\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Sends an email that contains a one-time code used to change a user's email address.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_users_controller_send_email_change\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}/email_change/send\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/SendEmailChangeDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_users_controller_send_email_change\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Send email change code\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_send_verification_email_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Sends an email that contains a one-time code used to verify a user's email address.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"userland_users_controller_send_verification_email_0\",\n \"parameters\": [\n {\n \"description\": \"The ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}/email_verification/send\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"userland_users_controller_send_verification_email_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Send verification email\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"userland_users_controller_update_0\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Updates properties of a user. The omitted properties will be left unchanged.\",\n \"destructive\": true,\n \"method\": \"PUT\",\n \"operation_id\": \"userland_users_controller_update_0\",\n \"parameters\": [\n {\n \"description\": \"The unique ID of the user.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"user_01E4ZCR3C56J083X43JQXF3JK5\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/user_management/users/{id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateUserlandUserDto\"\n },\n \"security\": null,\n \"skill_name\": \"userland_users_controller_update_0\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a user\",\n \"tags\": [\n \"user-management.users\"\n ]\n },\n \"webhook_endpoints_controller_create\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Create a new webhook endpoint to receive event notifications.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"webhook_endpoints_controller_create\",\n \"parameters\": [],\n \"path\": \"/webhook_endpoints\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/CreateWebhookEndpointDto\"\n },\n \"security\": null,\n \"skill_name\": \"webhook_endpoints_controller_create\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Create a Webhook Endpoint\",\n \"tags\": [\n \"webhooks\"\n ]\n },\n \"webhook_endpoints_controller_delete\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Delete an existing webhook endpoint.\",\n \"destructive\": true,\n \"method\": \"DELETE\",\n \"operation_id\": \"webhook_endpoints_controller_delete\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Webhook Endpoint.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"we_0123456789\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/webhook_endpoints/{id}\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"webhook_endpoints_controller_delete\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Delete a Webhook Endpoint\",\n \"tags\": [\n \"webhooks\"\n ]\n },\n \"webhook_endpoints_controller_list\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Get a list of all of your existing webhook endpoints.\",\n \"destructive\": false,\n \"method\": \"GET\",\n \"operation_id\": \"webhook_endpoints_controller_list\",\n \"parameters\": [\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"before\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ123456789ABCDEFGHIJ\",\n \"type\": \"string\"\n }\n },\n {\n \"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\\\"`.\",\n \"in\": \"query\",\n \"name\": \"after\",\n \"required\": false,\n \"schema\": {\n \"example\": \"xxx_01HXYZ987654321KJIHGFEDCBA\",\n \"type\": \"string\"\n }\n },\n {\n \"description\": \"Upper limit on the number of objects to return, between `1` and `100`.\",\n \"in\": \"query\",\n \"name\": \"limit\",\n \"required\": false,\n \"schema\": {\n \"default\": 10,\n \"example\": 10,\n \"maximum\": 100,\n \"minimum\": 1,\n \"type\": \"integer\"\n }\n },\n {\n \"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).\",\n \"in\": \"query\",\n \"name\": \"order\",\n \"required\": false,\n \"schema\": {\n \"$ref\": \"#/components/schemas/PaginationOrder\"\n }\n }\n ],\n \"path\": \"/webhook_endpoints\",\n \"request_body\": null,\n \"security\": null,\n \"skill_name\": \"webhook_endpoints_controller_list\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"List Webhook Endpoints\",\n \"tags\": [\n \"webhooks\"\n ]\n },\n \"webhook_endpoints_controller_update\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Update the properties of an existing webhook endpoint.\",\n \"destructive\": true,\n \"method\": \"PATCH\",\n \"operation_id\": \"webhook_endpoints_controller_update\",\n \"parameters\": [\n {\n \"description\": \"Unique identifier of the Webhook Endpoint.\",\n \"in\": \"path\",\n \"name\": \"id\",\n \"required\": true,\n \"schema\": {\n \"example\": \"we_0123456789\",\n \"type\": \"string\"\n }\n }\n ],\n \"path\": \"/webhook_endpoints/{id}\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/UpdateWebhookEndpointDto\"\n },\n \"security\": null,\n \"skill_name\": \"webhook_endpoints_controller_update\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Update a Webhook Endpoint\",\n \"tags\": [\n \"webhooks\"\n ]\n },\n \"widgets_public_controller_issue_widget_session_token\": {\n \"base_url\": \"https://api.workos.com\",\n \"base_url_field\": \"OPENAPI_BASE_URL\",\n \"description\": \"Generate a widget token scoped to an organization and user with the specified scopes.\",\n \"destructive\": true,\n \"method\": \"POST\",\n \"operation_id\": \"widgets_public_controller_issue_widget_session_token\",\n \"parameters\": [],\n \"path\": \"/widgets/token\",\n \"request_body\": {\n \"$ref\": \"#/components/schemas/WidgetSessionTokenDto\"\n },\n \"security\": null,\n \"skill_name\": \"widgets_public_controller_issue_widget_session_token\",\n \"source_index\": 1,\n \"source_openapi_url\": \"https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml\",\n \"source_title\": \"WorkOS\",\n \"summary\": \"Generate a widget token\",\n \"tags\": [\n \"widgets\"\n ]\n }\n}")
OPERATION_GROUPS = json.loads("[\n {\n \"common_prefix\": \"/api_keys\",\n \"description\": \"Handle 3 OpenAPI operation(s) under /api_keys for the api keys route group.\",\n \"id\": \"api_keys\",\n \"label\": \"api keys\",\n \"operation_ids\": [\n \"api_keys_controller_validate_api_key\",\n \"api_keys_controller_delete\",\n \"api_keys_controller_expire\"\n ],\n \"skill_dir\": \"api-keys\",\n \"skill_name\": \"api-keys-routes\",\n \"skill_path\": \"skills/api-keys/SKILL.md\",\n \"subagent_name\": \"api-keys-api\"\n },\n {\n \"common_prefix\": \"/audit_logs\",\n \"description\": \"Handle 6 OpenAPI operation(s) under /audit_logs for the audit logs route group.\",\n \"id\": \"audit_logs\",\n \"label\": \"audit logs\",\n \"operation_ids\": [\n \"audit_log_validators_controller_list\",\n \"audit_log_validator_versions_controller_create\",\n \"audit_log_validator_versions_controller_schemas\",\n \"audit_log_events_controller_create\",\n \"audit_log_exports_controller_exports\",\n \"audit_log_exports_controller_export\"\n ],\n \"skill_dir\": \"audit-logs\",\n \"skill_name\": \"audit-logs-routes\",\n \"skill_path\": \"skills/audit-logs/SKILL.md\",\n \"subagent_name\": \"audit-logs-api\"\n },\n {\n \"common_prefix\": \"/auth\",\n \"description\": \"Handle 5 OpenAPI operation(s) under /auth for the auth route group.\",\n \"id\": \"auth\",\n \"label\": \"auth\",\n \"operation_ids\": [\n \"authentication_challenges_controller_verify\",\n \"authentication_factors_controller_create\",\n \"authentication_factors_controller_get\",\n \"authentication_factors_controller_delete\",\n \"authentication_factors_controller_challenge\"\n ],\n \"skill_dir\": \"auth\",\n \"skill_name\": \"auth-routes\",\n \"skill_path\": \"skills/auth/SKILL.md\",\n \"subagent_name\": \"auth-api\"\n },\n {\n \"common_prefix\": \"/authkit/oauth2/complete\",\n \"description\": \"Handle 1 OpenAPI operation(s) under /authkit/oauth2/complete for the authkit route group.\",\n \"id\": \"authkit\",\n \"label\": \"authkit\",\n \"operation_ids\": [\n \"external_auth_controller_complete_login\"\n ],\n \"skill_dir\": \"authkit\",\n \"skill_name\": \"authkit-routes\",\n \"skill_path\": \"skills/authkit/SKILL.md\",\n \"subagent_name\": \"authkit-api\"\n },\n {\n \"common_prefix\": \"/authorization\",\n \"description\": \"Handle 45 OpenAPI operation(s) under /authorization for the authorization route group.\",\n \"id\": \"authorization\",\n \"label\": \"authorization\",\n \"operation_ids\": [\n \"authorization_group_role_assignments_controller_list\",\n \"authorization_group_role_assignments_controller_create\",\n \"authorization_group_role_assignments_controller_replace_group_role_assignments\",\n \"authorization_group_role_assignments_controller_remove_group_role_assignments\",\n \"authorization_group_role_assignments_controller_get\",\n \"authorization_group_role_assignments_controller_remove_group_role_assignment\",\n \"authorization_controller_check\",\n \"authorization_controller_list_resources_for_membership\",\n \"authorization_controller_list_effective_permissions\",\n \"authorization_controller_list_effective_permissions_by_external_id\",\n \"authorization_role_assignments_controller_list_role_assignments\",\n \"authorization_role_assignments_controller_assign_role\",\n \"authorization_role_assignments_controller_remove_role_by_criteria\",\n \"authorization_role_assignments_controller_remove_role_by_id\",\n \"authorization_organization_roles_controller_create\",\n \"authorization_organization_roles_controller_list\",\n \"authorization_organization_roles_controller_get\",\n \"authorization_organization_roles_controller_update\",\n \"authorization_organization_roles_controller_delete\",\n \"authorization_organization_role_permissions_controller_set_permissions\",\n \"authorization_organization_role_permissions_controller_add_permission\",\n \"authorization_organization_role_permissions_controller_remove_permission\",\n \"authorization_resources_by_external_id_controller_get_by_external_id\",\n \"authorization_resources_by_external_id_controller_update_by_external_id\",\n \"authorization_resources_by_external_id_controller_delete_by_external_id\",\n \"authorization_resources_by_external_id_controller_list_organization_memberships_\",\n \"authorization_role_assignments_controller_list_role_assignments_for_resource_by_\",\n \"authorization_permissions_controller_list\",\n \"authorization_permissions_controller_create\",\n \"authorization_permissions_controller_find\",\n \"authorization_permissions_controller_update\",\n \"authorization_permissions_controller_delete\",\n \"authorization_resources_controller_list\",\n \"authorization_resources_controller_create\",\n \"authorization_resources_controller_find_by_id\",\n \"authorization_resources_controller_update\",\n \"authorization_resources_controller_delete\",\n \"authorization_resources_controller_list_organization_memberships_for_resource\",\n \"authorization_role_assignments_controller_list_role_assignments_for_resource\",\n \"authorization_roles_controller_create\",\n \"authorization_roles_controller_list\",\n \"authorization_roles_controller_get\",\n \"authorization_roles_controller_update\",\n \"authorization_role_permissions_controller_set_permissions\",\n \"authorization_role_permissions_controller_add_permission\"\n ],\n \"skill_dir\": \"authorization\",\n \"skill_name\": \"authorization-routes\",\n \"skill_path\": \"skills/authorization/SKILL.md\",\n \"subagent_name\": \"authorization-api\"\n },\n {\n \"common_prefix\": \"/client/token\",\n \"description\": \"Handle 1 OpenAPI operation(s) under /client/token for the client route group.\",\n \"id\": \"client\",\n \"label\": \"client\",\n \"operation_ids\": [\n \"client_api_token_controller_issue_client_api_token\"\n ],\n \"skill_dir\": \"client\",\n \"skill_name\": \"client-routes\",\n \"skill_path\": \"skills/client/SKILL.md\",\n \"subagent_name\": \"client-api\"\n },\n {\n \"common_prefix\": \"/connect\",\n \"description\": \"Handle 8 OpenAPI operation(s) under /connect for the connect route group.\",\n \"id\": \"connect\",\n \"label\": \"connect\",\n \"operation_ids\": [\n \"applications_controller_list\",\n \"applications_controller_create\",\n \"applications_controller_find\",\n \"applications_controller_update\",\n \"applications_controller_delete\",\n \"application_credentials_controller_list\",\n \"application_credentials_controller_create\",\n \"application_credentials_controller_delete\"\n ],\n \"skill_dir\": \"connect\",\n \"skill_name\": \"connect-routes\",\n \"skill_path\": \"skills/connect/SKILL.md\",\n \"subagent_name\": \"connect-api\"\n },\n {\n \"common_prefix\": \"/connections\",\n \"description\": \"Handle 3 OpenAPI operation(s) under /connections for the connections route group.\",\n \"id\": \"connections\",\n \"label\": \"connections\",\n \"operation_ids\": [\n \"connections_controller_list\",\n \"connections_controller_find\",\n \"connections_controller_delete\"\n ],\n \"skill_dir\": \"connections\",\n \"skill_name\": \"connections-routes\",\n \"skill_path\": \"skills/connections/SKILL.md\",\n \"subagent_name\": \"connections-api\"\n },\n {\n \"common_prefix\": \"/data-integrations/{slug}\",\n \"description\": \"Handle 2 OpenAPI operation(s) under /data-integrations/{slug} for the data integrations route group.\",\n \"id\": \"data_integrations\",\n \"label\": \"data integrations\",\n \"operation_ids\": [\n \"data_integrations_controller_get_data_integration_authorize_url\",\n \"data_integrations_controller_get_userland_user_token\"\n ],\n \"skill_dir\": \"data-integrations\",\n \"skill_name\": \"data-integrations-routes\",\n \"skill_path\": \"skills/data-integrations/SKILL.md\",\n \"subagent_name\": \"data-integrations-api\"\n },\n {\n \"common_prefix\": \"/directories\",\n \"description\": \"Handle 3 OpenAPI operation(s) under /directories for the directories route group.\",\n \"id\": \"directories\",\n \"label\": \"directories\",\n \"operation_ids\": [\n \"directories_controller_list\",\n \"directories_controller_find\",\n \"directories_controller_delete_directory\"\n ],\n \"skill_dir\": \"directories\",\n \"skill_name\": \"directories-routes\",\n \"skill_path\": \"skills/directories/SKILL.md\",\n \"subagent_name\": \"directories-api\"\n },\n {\n \"common_prefix\": \"/directory_groups\",\n \"description\": \"Handle 2 OpenAPI operation(s) under /directory_groups for the directory groups route group.\",\n \"id\": \"directory_groups\",\n \"label\": \"directory groups\",\n \"operation_ids\": [\n \"directory_groups_controller_list\",\n \"directory_groups_controller_find\"\n ],\n \"skill_dir\": \"directory-groups\",\n \"skill_name\": \"directory-groups-routes\",\n \"skill_path\": \"skills/directory-groups/SKILL.md\",\n \"subagent_name\": \"directory-groups-api\"\n },\n {\n \"common_prefix\": \"/directory_users\",\n \"description\": \"Handle 2 OpenAPI operation(s) under /directory_users for the directory users route group.\",\n \"id\": \"directory_users\",\n \"label\": \"directory users\",\n \"operation_ids\": [\n \"directory_users_controller_list\",\n \"directory_users_controller_find\"\n ],\n \"skill_dir\": \"directory-users\",\n \"skill_name\": \"directory-users-routes\",\n \"skill_path\": \"skills/directory-users/SKILL.md\",\n \"subagent_name\": \"directory-users-api\"\n },\n {\n \"common_prefix\": \"/events\",\n \"description\": \"Handle 1 OpenAPI operation(s) under /events for the events route group.\",\n \"id\": \"events\",\n \"label\": \"events\",\n \"operation_ids\": [\n \"events_controller_list\"\n ],\n \"skill_dir\": \"events\",\n \"skill_name\": \"events-routes\",\n \"skill_path\": \"skills/events/SKILL.md\",\n \"subagent_name\": \"events-api\"\n },\n {\n \"common_prefix\": \"/feature-flags\",\n \"description\": \"Handle 6 OpenAPI operation(s) under /feature-flags for the feature flags route group.\",\n \"id\": \"feature_flags\",\n \"label\": \"feature flags\",\n \"operation_ids\": [\n \"feature_flags_controller_list\",\n \"feature_flags_controller_find_by_slug\",\n \"feature_flags_controller_disable_flag\",\n \"feature_flags_controller_enable_flag\",\n \"flag_targets_controller_create_target\",\n \"flag_targets_controller_delete_target\"\n ],\n \"skill_dir\": \"feature-flags\",\n \"skill_name\": \"feature-flags-routes\",\n \"skill_path\": \"skills/feature-flags/SKILL.md\",\n \"subagent_name\": \"feature-flags-api\"\n },\n {\n \"common_prefix\": \"/organization_domains\",\n \"description\": \"Handle 4 OpenAPI operation(s) under /organization_domains for the organization domains route group.\",\n \"id\": \"organization_domains\",\n \"label\": \"organization domains\",\n \"operation_ids\": [\n \"organization_domains_controller_create\",\n \"organization_domains_controller_get\",\n \"organization_domains_controller_delete\",\n \"organization_domains_controller_verify\"\n ],\n \"skill_dir\": \"organization-domains\",\n \"skill_name\": \"organization-domains-routes\",\n \"skill_path\": \"skills/organization-domains/SKILL.md\",\n \"subagent_name\": \"organization-domains-api\"\n },\n {\n \"common_prefix\": \"/organizations\",\n \"description\": \"Handle 22 OpenAPI operation(s) under /organizations for the organizations route group.\",\n \"id\": \"organizations\",\n \"label\": \"organizations\",\n \"operation_ids\": [\n \"organizations_controller_list\",\n \"organizations_controller_create\",\n \"organizations_controller_get_by_external_id\",\n \"organizations_controller_find\",\n \"organizations_controller_update_organization\",\n \"organizations_controller_delete_organization\",\n \"organizations_controller_get_audit_log_configuration\",\n \"audit_logs_retention_controller_audit_logs_retention\",\n \"audit_logs_retention_controller_update_audit_logs_retention\",\n \"organization_api_keys_controller_list\",\n \"organization_api_keys_controller_create\",\n \"provider_controller_list_for_organization\",\n \"provider_controller_configure\",\n \"organization_feature_flags_controller_list\",\n \"groups_controller_create\",\n \"groups_controller_list\",\n \"groups_controller_get\",\n \"groups_controller_update\",\n \"groups_controller_delete\",\n \"group_memberships_controller_add_member\",\n \"group_memberships_controller_list_members\",\n \"group_memberships_controller_remove_member\"\n ],\n \"skill_dir\": \"organizations\",\n \"skill_name\": \"organizations-routes\",\n \"skill_path\": \"skills/organizations/SKILL.md\",\n \"subagent_name\": \"organizations-api\"\n },\n {\n \"common_prefix\": \"/portal/generate_link\",\n \"description\": \"Handle 1 OpenAPI operation(s) under /portal/generate_link for the portal route group.\",\n \"id\": \"portal\",\n \"label\": \"portal\",\n \"operation_ids\": [\n \"portal_sessions_controller_create\"\n ],\n \"skill_dir\": \"portal\",\n \"skill_name\": \"portal-routes\",\n \"skill_path\": \"skills/portal/SKILL.md\",\n \"subagent_name\": \"portal-api\"\n },\n {\n \"common_prefix\": \"/radar\",\n \"description\": \"Handle 4 OpenAPI operation(s) under /radar for the radar route group.\",\n \"id\": \"radar\",\n \"label\": \"radar\",\n \"operation_ids\": [\n \"radar_standalone_controller_assess\",\n \"radar_standalone_controller_update_radar_attempt\",\n \"radar_standalone_controller_update_radar_list\",\n \"radar_standalone_controller_delete_radar_list_entry\"\n ],\n \"skill_dir\": \"radar\",\n \"skill_name\": \"radar-routes\",\n \"skill_path\": \"skills/radar/SKILL.md\",\n \"subagent_name\": \"radar-api\"\n },\n {\n \"common_prefix\": \"/sso\",\n \"description\": \"Handle 6 OpenAPI operation(s) under /sso for the sso route group.\",\n \"id\": \"sso\",\n \"label\": \"sso\",\n \"operation_ids\": [\n \"sso_controller_authorize\",\n \"sso_controller_json_web_key_set\",\n \"sso_controller_logout\",\n \"sso_controller_logout_authorize\",\n \"sso_controller_get_profile\",\n \"sso_controller_token\"\n ],\n \"skill_dir\": \"sso\",\n \"skill_name\": \"sso-routes\",\n \"skill_path\": \"skills/sso/SKILL.md\",\n \"subagent_name\": \"sso-api\"\n },\n {\n \"common_prefix\": \"/user_management\",\n \"description\": \"Handle 52 OpenAPI operation(s) under /user_management for the user management route group.\",\n \"id\": \"user_management\",\n \"label\": \"user management\",\n \"operation_ids\": [\n \"userland_sessions_controller_authenticate_0\",\n \"userland_sso_controller_authorize\",\n \"userland_sso_controller_device_authorization\",\n \"cors_origins_controller_create_cors_origin\",\n \"userland_users_controller_get_email_verification\",\n \"userland_user_invites_controller_list\",\n \"userland_user_invites_controller_create\",\n \"userland_user_invites_controller_get_by_token\",\n \"userland_user_invites_controller_get\",\n \"userland_user_invites_controller_accept\",\n \"userland_user_invites_controller_resend\",\n \"userland_user_invites_controller_revoke\",\n \"jwt_templates_controller_get_jwt_template\",\n \"jwt_templates_controller_update_jwt_template\",\n \"userland_magic_auth_controller_send_magic_auth_code_and_return\",\n \"userland_magic_auth_controller_get\",\n \"userland_user_organization_memberships_controller_list\",\n \"userland_user_organization_memberships_controller_create\",\n \"userland_user_organization_memberships_controller_get\",\n \"userland_user_organization_memberships_controller_delete\",\n \"userland_user_organization_memberships_controller_update\",\n \"userland_user_organization_memberships_controller_deactivate\",\n \"userland_user_organization_memberships_controller_reactivate\",\n \"organization_membership_groups_controller_list_groups\",\n \"userland_users_controller_create_password_reset_token\",\n \"userland_users_controller_reset_password_0\",\n \"userland_users_controller_get_password_reset\",\n \"redirect_uris_controller_create\",\n \"userland_sessions_controller_logout\",\n \"userland_sessions_controller_revoke_session\",\n \"userland_users_controller_list_0\",\n \"userland_users_controller_create_0\",\n \"userland_users_controller_get_by_external_id\",\n \"userland_users_controller_update_0\",\n \"userland_users_controller_get_0\",\n \"userland_users_controller_delete_0\",\n \"userland_users_controller_confirm_email_change\",\n \"userland_users_controller_send_email_change\",\n \"userland_users_controller_email_verification_0\",\n \"userland_users_controller_send_verification_email_0\",\n \"userland_user_identities_controller_get\",\n \"userland_user_sessions_controller_list\",\n \"user_api_keys_controller_list\",\n \"user_api_keys_controller_create\",\n \"userland_user_feature_flags_controller_list\",\n \"authorized_applications_controller_list\",\n \"authorized_applications_controller_delete\",\n \"data_integrations_user_management_controller_get_user_data_installation\",\n \"data_integrations_user_management_controller_delete_user_data_installation\",\n \"data_integrations_user_management_controller_get_user_data_integrations\",\n \"userland_user_authentication_factors_controller_create_0\",\n \"userland_user_authentication_factors_controller_list_0\"\n ],\n \"skill_dir\": \"user-management\",\n \"skill_name\": \"user-management-routes\",\n \"skill_path\": \"skills/user-management/SKILL.md\",\n \"subagent_name\": \"user-management-api\"\n },\n {\n \"common_prefix\": \"/vault/v1\",\n \"description\": \"Handle 11 OpenAPI operation(s) under /vault/v1 for the vault route group.\",\n \"id\": \"vault\",\n \"label\": \"vault\",\n \"operation_ids\": [\n \"jump_wire_web_key_controller_create_data_key\",\n \"jump_wire_web_key_controller_decrypt\",\n \"jump_wire_web_key_controller_rekey\",\n \"jump_wire_web_data_vault_controller_index\",\n \"jump_wire_web_data_vault_controller_create\",\n \"jump_wire_web_data_vault_controller_show_by_name\",\n \"jump_wire_web_data_vault_controller_delete\",\n \"jump_wire_web_data_vault_controller_show_by_id\",\n \"jump_wire_web_data_vault_controller_update\",\n \"jump_wire_web_data_vault_controller_describe\",\n \"jump_wire_web_data_vault_controller_versions\"\n ],\n \"skill_dir\": \"vault\",\n \"skill_name\": \"vault-routes\",\n \"skill_path\": \"skills/vault/SKILL.md\",\n \"subagent_name\": \"vault-api\"\n },\n {\n \"common_prefix\": \"/webhook_endpoints\",\n \"description\": \"Handle 4 OpenAPI operation(s) under /webhook_endpoints for the webhook endpoints route group.\",\n \"id\": \"webhook_endpoints\",\n \"label\": \"webhook endpoints\",\n \"operation_ids\": [\n \"webhook_endpoints_controller_list\",\n \"webhook_endpoints_controller_create\",\n \"webhook_endpoints_controller_update\",\n \"webhook_endpoints_controller_delete\"\n ],\n \"skill_dir\": \"webhook-endpoints\",\n \"skill_name\": \"webhook-endpoints-routes\",\n \"skill_path\": \"skills/webhook-endpoints/SKILL.md\",\n \"subagent_name\": \"webhook-endpoints-api\"\n },\n {\n \"common_prefix\": \"/widgets/token\",\n \"description\": \"Handle 1 OpenAPI operation(s) under /widgets/token for the widgets route group.\",\n \"id\": \"widgets\",\n \"label\": \"widgets\",\n \"operation_ids\": [\n \"widgets_public_controller_issue_widget_session_token\"\n ],\n \"skill_dir\": \"widgets\",\n \"skill_name\": \"widgets-routes\",\n \"skill_path\": \"skills/widgets/SKILL.md\",\n \"subagent_name\": \"widgets-api\"\n }\n]")
ROOT_SECURITY = json.loads("[\n {\n \"bearer\": []\n }\n]")
SECURITY_SCHEMES = json.loads("{\n \"access_token\": {\n \"bearerFormat\": \"JWT\",\n \"description\": \"An SSO access token returned from the Get a Profile and Token endpoint.\",\n \"scheme\": \"bearer\",\n \"type\": \"http\"\n },\n \"bearer\": {\n \"bearerFormat\": \"JWT\",\n \"description\": \"Your WorkOS API key prefixed with `sk_`. Pass it as a Bearer token: `Authorization: Bearer sk_example_123456789`.\",\n \"scheme\": \"bearer\",\n \"type\": \"http\"\n }\n}")
SECURITY_FIELDS = json.loads("{\n \"access_token\": {\n \"field\": \"ACCESS_TOKEN_TOKEN\",\n \"kind\": \"http\",\n \"scheme\": \"bearer\"\n },\n \"bearer\": {\n \"field\": \"BEARER_TOKEN\",\n \"kind\": \"http\",\n \"scheme\": \"bearer\"\n }\n}")
PATH_PARAMETER_RE = re.compile(r"{([^}/]+)}")
SOURCE_ROOT = Path(globals().get("__file__", "agent.py")).resolve().parent
SOURCE_SKILLS_DIR = SOURCE_ROOT / "skills"
RUNTIME_SKILLS_DIR = ".deepagents/openapi-skills/"
class OperationInput(BaseModel):
parameters: dict[str, Any] = Field(
default_factory=dict,
description="Path, query, header, and cookie parameters keyed by OpenAPI parameter name.",
)
body: Any | None = Field(default=None, description="JSON request body, when the operation accepts one.")
class WorkosOpenapiAgent(A2AAgent):
name = "workos-openapi-agent"
description = "Enterprise auth and directory platform API for SSO, SCIM, orgs, audit logs, and user management."
version = "1.0"
consumer_setup = ConsumerSetup.from_fields(
ConsumerSetupField.config("OPENAPI_BASE_URL", label="API base URL", description="Override the default API server (https://api.workos.com).", required=False, input_type="url"),
ConsumerSetupField.secret("BEARER_TOKEN", label="bearer bearer credential", description="Your WorkOS API key prefixed with `sk_`. Pass it as a Bearer token: `Authorization: Bearer sk_example_123456789`.", required=True),
ConsumerSetupField.secret("ACCESS_TOKEN_TOKEN", label="access_token bearer credential", description="An SSO access token returned from the Get a Profile and Token endpoint.", required=True),
)
llm_provisioning = LLMProvisioning.PLATFORM
pricing = Pricing(
price_per_call_usd=0.0,
caller_pays_llm=True,
notes="Uses the caller's saved LLM credential through ctx.llm.",
)
resources = Resources(cpu="200m", memory="512Mi")
egress = EgressPolicy(
allow_hosts=('api.workos.com',),
deny_internet_by_default=True,
)
tools_used = ("openapi", "deepagents")
capabilities = {
"openapi_auto_agent": {
"operation_count": len(OPERATIONS),
"default_base_url": DEFAULT_BASE_URL,
"source_openapi_url": 'https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml',
"source_openapi_urls": ['https://raw.githubusercontent.com/workos/openapi-spec/main/spec/open-api-spec.yaml'],
"server_urls": ['https://api.workos.com'],
"regenerable": True,
"security_schemes": list(SECURITY_SCHEMES),
}
}
@skill(
name="auto",
description="Use the OpenAPI service to complete a natural-language goal.",
tags=("openapi", "auto"),
timeout_seconds=900,
)
async def auto(self, ctx: RunContext, goal: str) -> dict[str, Any]:
creds = ctx.llm
if not creds.api_key:
return {
"error": "llm_credentials_missing",
"final": (
"LLM key required. Add an LLM credential in Settings > "
"LLM credentials before running this agent."
),
"messages": [],
}
backend = ctx.workspace_backend()
skills_root = _seed_runtime_skills(backend, ctx)
graph = create_a2a_deep_agent(
ctx,
creds=creds,
backend=backend,
tools=[],
subagents=self._operation_subagents(ctx, skills_root),
system_prompt=self._system_prompt(),
)
result = await graph.ainvoke({"messages": [{"role": "user", "content": goal}]})
messages = result.get("messages", []) if isinstance(result, dict) else []
final = _message_text(messages[-1]) if messages else result
return {
"final": final,
"messages": [_message_to_dict(message) for message in messages[-8:]],
}
def _operation_subagents(self, ctx: RunContext, skills_root: str) -> list[dict[str, Any]]:
subagents: list[dict[str, Any]] = []
for group in OPERATION_GROUPS:
skill_path = (
f"{skills_root}{group['skill_dir']}/"
if skills_root
else ""
)
subagent = {
"name": group["subagent_name"],
"description": group["description"],
"system_prompt": self._subagent_prompt(group),
"tools": self._operation_tools(ctx, set(group["operation_ids"])),
}
if skill_path:
subagent["skills"] = [skill_path]
subagents.append(subagent)
return subagents
def _operation_tools(
self,
ctx: RunContext,
operation_ids: set[str] | None = None,
) -> list[StructuredTool]:
tools: list[StructuredTool] = []
for operation_id, operation in OPERATIONS.items():
if operation_ids is not None and operation_id not in operation_ids:
continue
async def call(
parameters: dict[str, Any] | None = None,
body: Any | None = None,
*,
_operation_id: str = operation_id,
) -> dict[str, Any]:
return await self._request(
ctx,
_operation_id,
parameters=parameters or {},
body=body,
)
tools.append(
StructuredTool.from_function(
coroutine=call,
name=operation["skill_name"],
description=self._tool_description(operation),
args_schema=OperationInput,
)
)
return tools
def _system_prompt(self) -> str:
if OPERATION_GROUPS:
lines = [
"You coordinate route-specific OpenAPI subagents.",
"Delegate API work to the matching subagent with the task tool.",
"Do not invent API responses; ask subagents to call their tools for real results.",
"If a subagent reports missing consumer setup, tell the user which setup field is required.",
"If a subagent reports that the generated OpenAPI agent may be stale, ask whether the user wants to refresh it from the latest OpenAPI spec.",
"",
"Available route groups:",
]
for group in OPERATION_GROUPS:
lines.append(
f"- {group['subagent_name']}: {group['description']}"
)
return "\n".join(lines)
lines = [
"You operate an API through generated OpenAPI tools.",
"Call tools to get real results. Do not invent API responses.",
"For write, update, or delete operations, explain the intended action before calling the tool.",
"If an operation reports missing consumer setup, tell the user which setup field is required.",
"If an operation returns 404, 405, 410, or a schema/validation error that suggests the live API no longer matches these tools, tell the user this generated agent may need to be refreshed from the latest OpenAPI spec and ask whether they want to refresh it.",
"",
"Available operations:",
]
for operation in OPERATIONS.values():
marker = "WRITE" if operation.get("destructive") else "READ"
lines.append(
f"- {operation['skill_name']}: {marker} {operation['method']} {operation['path']}{operation['summary']}"
)
return "\n".join(lines)
def _subagent_prompt(self, group: dict[str, Any]) -> str:
lines = [
"You operate one route group from a generated OpenAPI API.",
"Use the available operation tools to make real API calls. Do not invent API responses.",
"Read the route group's SKILL.md when it applies; it lists every route you cover.",
"For write, update, or delete operations, explain the intended action before calling the tool.",
"If an operation reports missing consumer setup, return the exact setup field name.",
"If an operation returns 404, 405, 410, or a schema/validation error that suggests the live API no longer matches these tools, say the generated agent may need to be refreshed from the latest OpenAPI spec.",
"",
f"Route group: {group['label']}",
f"Common prefix: {group.get('common_prefix') or '/'}",
"Available operation tools:",
]
for operation_id in group["operation_ids"]:
operation = OPERATIONS[operation_id]
marker = "WRITE" if operation.get("destructive") else "READ"
lines.append(
f"- {operation['skill_name']}: {marker} {operation['method']} {operation['path']} - {operation['summary']}"
)
return "\n".join(lines)
def _tool_description(self, operation: dict[str, Any]) -> str:
parts = [
f"{operation['method']} {operation['path']}",
str(operation.get("description") or operation.get("summary") or ""),
]
if operation.get("parameters"):
parts.append(
"Parameters: "
+ ", ".join(
f"{p['name']} in {p['in']}{' required' if p.get('required') else ''}"
for p in operation["parameters"]
)
)
if operation.get("request_body") is not None:
parts.append("Accepts a JSON request body.")
return "\n".join(part for part in parts if part)
async def _request(
self,
ctx: RunContext,
operation_id: str,
*,
parameters: dict[str, Any],
body: Any | None,
) -> dict[str, Any]:
operation = OPERATIONS[operation_id]
default_base_url = str(operation.get("base_url") or DEFAULT_BASE_URL).rstrip("/")
base_url_field = str(operation.get("base_url_field") or "OPENAPI_BASE_URL")
base_url = str(ctx.consumer_config(base_url_field, default_base_url) or default_base_url).rstrip("/")
url, query, headers = self._request_parts(ctx, operation, parameters)
request_kwargs: dict[str, Any] = {
"params": query,
"headers": headers,
}
if body is not None:
if isinstance(body, (bytes, bytearray)):
body = body.decode("utf-8", errors="replace")
if isinstance(body, str):
stripped = body.strip()
if stripped and stripped[0] in "{[":
try:
body = json.loads(stripped)
except ValueError:
pass
request_kwargs["json"] = body
async with httpx.AsyncClient(timeout=60.0, follow_redirects=True) as client:
response = await client.request(
operation["method"],
f"{base_url}{url}",
**request_kwargs,
)
content_type = response.headers.get("content-type", "")
try:
payload: Any = response.json() if "json" in content_type else response.text
except ValueError:
payload = response.text
if response.status_code >= 400:
out = {
"ok": False,
"status_code": response.status_code,
"operation_id": operation_id,
"error": payload,
}
if response.status_code in {404, 405, 410, 422}:
out["stale_openapi_hint"] = (
"This generated OpenAPI agent may be stale. Ask the user "
"whether they want to refresh it from the latest OpenAPI spec."
)
return out
return {
"ok": True,
"status_code": response.status_code,
"operation_id": operation_id,
"result": payload,
}
def _request_parts(
self,
ctx: RunContext,
operation: dict[str, Any],
parameters: dict[str, Any],
) -> tuple[str, dict[str, Any], dict[str, str]]:
path = operation["path"]
query: dict[str, Any] = {}
headers: dict[str, str] = {}
cookies: dict[str, Any] = {}
for param in operation.get("parameters") or []:
name = param["name"]
if name not in parameters:
if param.get("required"):
raise ValueError(f"missing required parameter {name!r}")
continue
value = parameters[name]
location = param["in"]
if location == "path":
path = path.replace("{" + name + "}", str(value))
elif location == "query":
query[name] = value
elif location == "header":
headers[name] = str(value)
elif location == "cookie":
cookies[name] = value
unresolved = PATH_PARAMETER_RE.findall(path)
if unresolved:
missing = ", ".join(sorted(set(unresolved)))
raise ValueError("missing required path parameter(s): " + missing)
if cookies:
headers["cookie"] = "; ".join(f"{key}={value}" for key, value in cookies.items())
auth_headers, auth_query = self._auth_for_operation(ctx, operation)
headers.update(auth_headers)
query.update(auth_query)
return path, query, headers
def _auth_for_operation(self, ctx: RunContext, operation: dict[str, Any]) -> tuple[dict[str, str], dict[str, Any]]:
requirements = operation.get("security")
if requirements is None:
requirements = ROOT_SECURITY
if requirements == []:
return {}, {}
missing: list[str] = []
for requirement in requirements or []:
if not isinstance(requirement, dict) or not requirement:
return {}, {}
headers: dict[str, str] = {}
query: dict[str, Any] = {}
ok = True
for scheme_name in requirement:
mapping = SECURITY_FIELDS.get(scheme_name) or {}
secret_name = mapping.get("field")
value = _consumer_secret_optional(ctx, secret_name) if secret_name else ""
if not value:
ok = False
if secret_name:
missing.append(secret_name)
continue
kind = mapping.get("kind")
if kind == "apiKey":
prefix = mapping.get("prefix") or ""
sent_value = f"{prefix}{value}"
if mapping.get("location") == "query":
query[mapping.get("name") or scheme_name] = sent_value
else:
headers[mapping.get("name") or scheme_name] = sent_value
elif kind in {"http", "oauth2"}:
scheme = mapping.get("scheme") or "Bearer"
if scheme.lower() == "basic":
token = base64.b64encode(value.encode("utf-8")).decode("ascii")
headers["authorization"] = f"Basic {token}"
else:
headers["authorization"] = f"{scheme} {value}"
else:
ok = False
if ok:
return headers, query
if missing:
raise ConsumerSetupMissing(
"operation requires consumer setup secret(s): "
+ ", ".join(sorted(set(missing)))
)
return {}, {}
def _consumer_secret_optional(ctx: RunContext, name: str | None) -> str:
if not name:
return ""
try:
return ctx.consumer_secret(name)
except ConsumerSetupMissing:
return ""
def _runtime_skills_root(ctx: RunContext) -> str:
workspace = getattr(ctx, "_workspace", None)
prefixes = tuple(getattr(workspace, "write_prefixes", ()) or ())
if not prefixes:
outputs_prefix = getattr(workspace, "outputs_prefix", None)
prefixes = (outputs_prefix or "outputs/",)
prefix = str(prefixes[0]).strip("/")
return f"/{prefix}/{RUNTIME_SKILLS_DIR}" if prefix else f"/{RUNTIME_SKILLS_DIR}"
def _seed_runtime_skills(backend: Any, ctx: RunContext) -> str:
if not SOURCE_SKILLS_DIR.exists():
return ""
runtime_root = _runtime_skills_root(ctx)
uploads: list[tuple[str, bytes]] = []
for path in SOURCE_SKILLS_DIR.rglob("*"):
if not path.is_file():
continue
rel = path.relative_to(SOURCE_SKILLS_DIR).as_posix()
uploads.append((runtime_root + rel, path.read_bytes()))
if not uploads:
return ""
backend.upload_files(uploads)
return runtime_root
def _message_text(message: Any) -> Any:
content = getattr(message, "content", message)
return content
def _message_to_dict(message: Any) -> dict[str, Any]:
if isinstance(message, BaseMessage):
return message.model_dump(mode="json")
if hasattr(message, "model_dump"):
return message.model_dump(mode="json")
if isinstance(message, dict):
return message
return {"content": str(message)}
agent = WorkosOpenapiAgent()