{"openapi":"3.1.0","paths":{"/v2/accounts":{"get":{"description":"Returns the accounts in the project.","operationId":"list_accounts","parameters":[{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `connector` (the connector display data), `connector_profile` (the connector profile id and label), `last_request` (when the account was last active, counting both requests and action runs), and `actions` (the connector action catalog, each flagged with whether it is enabled for this account's connector profile). These are omitted (returned as `null`) unless requested, as resolving them is more expensive.","schema":{"nullable":true,"example":"connector,connector_profile,last_request,actions","type":"string"}},{"name":"page","required":false,"in":"query","description":"The 1-based page number to fetch. Omit both `page` and `page_size` to fetch all accounts at once.","schema":{"minimum":1,"nullable":true,"type":"number"}},{"name":"page_size","required":false,"in":"query","description":"The number of accounts to return per page.","schema":{"minimum":1,"maximum":100,"nullable":true,"default":25,"type":"number"}},{"name":"account_id","required":false,"in":"query","description":"Filter to accounts with any of these account ids. Comma-separated or repeated (e.g. `?account_id=a,b`).","schema":{"nullable":true,"type":"array","items":{"type":"string"}}},{"name":"connector_key","required":false,"in":"query","description":"Filter to accounts with any of these connector keys (comma-separated or repeated).","schema":{"nullable":true,"type":"array","items":{"type":"string"}}},{"name":"status","required":false,"in":"query","description":"Filter to accounts with any of these statuses (comma-separated or repeated).","x-speakeasy-unknown-values":"allow","schema":{"type":"array","items":{"$ref":"#/components/schemas/StatusType"}}},{"name":"owner_id","required":false,"in":"query","description":"Filter to accounts with any of these owner ids (comma-separated or repeated).","schema":{"nullable":true,"type":"array","items":{"type":"string"}}},{"name":"search","required":false,"in":"query","description":"Narrow to accounts whose name or owner username contains this text, case-insensitively.","schema":{"nullable":true,"type":"string"}},{"name":"connector_profile_id","required":false,"in":"query","description":"Filter to accounts linked to any of these connector profiles (comma-separated or repeated). Each value must be a UUID.","schema":{"nullable":true,"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"capability","required":false,"in":"query","description":"Filter to accounts you can perform this action on, rather than merely read. Single value — \"must be able to do X\" is one requirement, not a choice. Has no effect on requests without per-user account context (e.g. API keys).","x-speakeasy-unknown-values":"allow","schema":{"$ref":"#/components/schemas/AccountCapability"}}],"responses":{"200":{"description":"The accounts were retrieved.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaginatedAccountsResponse"},{"type":"array","items":{"$ref":"#/components/schemas/AccountResource"}}]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List accounts","tags":["Accounts"]}},"/v2/accounts/filters":{"get":{"description":"Returns the distinct values available for filtering the project's accounts as `{ value, label }` options per field (`connector_keys`, `account_ids`, `owner_ids`, `statuses`), suitable for building filter UIs.","operationId":"list_account_filters","parameters":[],"responses":{"200":{"description":"The account filter values were retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountFiltersResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List account filter values","tags":["Accounts"]}},"/v2/accounts/{id}":{"get":{"description":"Returns a single linked account, including when it was connected.","operationId":"get_account","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the account.","schema":{"type":"string"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `connector` (the connector display data), `connector_profile` (the connector profile id and label), `last_request` (when the account was last active, counting both requests and action runs), and `actions` (the connector action catalog, each flagged with whether it is enabled for this account's connector profile). These are omitted (returned as `null`) unless requested, as resolving them is more expensive.","schema":{"nullable":true,"example":"connector,connector_profile,last_request,actions","type":"string"}}],"responses":{"200":{"description":"The account was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get an account","tags":["Accounts"]},"patch":{"description":"Updates an account's status and/or status reasons.","operationId":"patch_account","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the account.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAccountDto"}}}},"responses":{"200":{"description":"The account was updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Patch an account","tags":["Accounts"]},"delete":{"description":"Deletes the account.","operationId":"delete_account","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the account.","schema":{"type":"string"}}],"responses":{"204":{"description":"The account was deleted."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Delete an account","tags":["Accounts"]}},"/v2/connectors":{"post":{"description":"Creates a custom connector in the current project's registry. It is owned by this project and is not available to the organization's other projects.","operationId":"create_connector","parameters":[{"name":"expand","required":false,"in":"query","description":"Comma-separated fields to resolve on the created connector, with the same tokens as the get endpoint: `actions`, `versions`, `changelog`, `accounts_count`, `connector_profiles_count`. Unexpanded fields are `null`.","schema":{"nullable":true,"type":"string"}}],"requestBody":{"required":true,"description":"Exactly one of the two source-specific shapes: create from a remote MCP server url, or register a StackOne connector YAML definition.","content":{"application/json":{"schema":{"oneOf":[{"title":"CreateMcpConnectorRequest","type":"object","additionalProperties":false,"required":["mcp_server_url"],"properties":{"mcp_server_url":{"type":"string","format":"uri","pattern":"^https?://","description":"The URL of the remote MCP server to create the connector for. The server is probed to determine how it authenticates (openly, with a static access token, or through OAuth). The connector is created without actions; its tools are added separately."},"title":{"type":"string","minLength":1,"description":"The display name of the connector; it also derives the connector key. Defaults to the name the MCP server reports about itself, or to the server URL hostname."},"force":{"type":"boolean","enum":[false],"description":"Not supported when creating from an MCP server url; accepted only as `false`, which is a no-op."}}},{"title":"CreateYamlConnectorRequest","type":"object","additionalProperties":false,"required":["yaml"],"properties":{"yaml":{"type":"string","minLength":1,"description":"The StackOne connector YAML definition to register. Its version must be new and semver-greater than the latest one, unless `force` is set."},"force":{"type":"boolean","default":false,"description":"Skips the version-increment validation when re-registering a connector (version conflicts are still rejected while the project has immutable versioning on, its default)."}}}]}}}},"responses":{"201":{"description":"The connector was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Create a connector","tags":["Connectors"]},"get":{"description":"Returns the connectors available to the project.","operationId":"list_connectors","parameters":[{"name":"page","required":false,"in":"query","description":"The 1-based page number to fetch. Omit both `page` and `page_size` to fetch all connectors at once.","schema":{"minimum":1,"nullable":true,"type":"number"}},{"name":"page_size","required":false,"in":"query","description":"The number of connectors to return per page.","schema":{"minimum":1,"maximum":100,"nullable":true,"default":25,"type":"number"}},{"name":"key","required":false,"in":"query","description":"Filter to connectors with any of these keys (comma-separated or repeated, e.g. `?key=workday,bamboohr`).","schema":{"nullable":true,"type":"array","items":{"type":"string"}}},{"name":"category","required":false,"in":"query","description":"Filter to connectors in any of these categories (comma-separated or repeated, e.g. `?category=hris,ats`).","schema":{"nullable":true,"type":"array","items":{"type":"string"}}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `accounts_count` (the number of accounts linked to each connector) and `connector_profiles_count` (the number of connector profiles configured for each connector). These require database aggregation, so they are returned as `null` unless requested. When either is requested, connectors are sorted by combined usage (accounts + connector profiles, highest first) before the alphabetical order.","schema":{"nullable":true,"example":"accounts_count,connector_profiles_count","type":"string"}}],"responses":{"200":{"description":"The connectors were retrieved.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaginatedConnectorsResponse"},{"type":"array","items":{"$ref":"#/components/schemas/ConnectorSummaryResource"}}]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List connectors","tags":["Connectors"]}},"/v2/connectors/{id}":{"get":{"description":"Returns the details of a single connector, including its description, documentation URL and authentication methods.","operationId":"get_connector","parameters":[{"name":"id","required":true,"in":"path","description":"The connector id, in the form `key[@version][~owner]` (e.g. `hibob@1.2.0~stackone`).","schema":{"type":"string"}},{"name":"version","required":false,"in":"query","description":"The connector version to fetch. Overrides any version embedded in the id. Accepts `latest` to resolve the latest version. When omitted, the version is resolved automatically.","schema":{"nullable":true,"type":"string"}},{"name":"owner","required":false,"in":"query","description":"The owner of the connector version. Overrides any owner embedded in the id. Accepts the wildcards `builtin` (the global `stackone` owner) and `custom` (the organization's own connectors). When omitted, the owner is resolved automatically.","schema":{"nullable":true,"type":"string"}},{"name":"connector_profile_id","required":false,"in":"query","description":"The id of a connector profile to report the actions against. Every action returned by `expand=actions` then carries `enabled`, the actions the profile enables are listed first, and `enabled_actions_count` reports how many of them it enables. Requires `expand=actions`; supplying it without that is a `400`. Omit it to receive the connector as configured for no profile.","schema":{"nullable":true,"type":"string"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `actions` (the actions, event-actions and scope-definitions metadata — a large payload; empty arrays when the connector exposes no actions metadata), `versions` (the registry versions of the connector, newest first — the version options a connector profile can be pinned to), `changelog` (the connector's release history, newest first — one entry per published version with its summary, labels, release date and affected actions; StackOne's built-in Falcon connectors only), `accounts_count` (the number of accounts linked to the connector) and `connector_profiles_count` (the number of connector profiles configured for the connector). These are expensive to resolve, so they are returned as `null` unless requested.","schema":{"nullable":true,"example":"accounts_count,connector_profiles_count","type":"string"}}],"responses":{"200":{"description":"The connector was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get connector","tags":["Connectors"]},"delete":{"description":"Removes one version of the project's own connector from the connectors registry. The id has the form `key@version` (e.g. `acmehr@1.2.0`) — an exact version is required, so which document is removed never depends on what a range like `latest` resolves to at the time. Built-in StackOne connectors are shared across organizations and cannot be deleted. A version that any of the project's connector profiles currently resolves to is refused until those are repointed or removed.","operationId":"delete_connector","parameters":[{"name":"id","required":true,"in":"path","description":"The connector id, in the form `key@version` (e.g. `acmehr@1.2.0`).","schema":{"type":"string"}}],"responses":{"204":{"description":"The connector version was deleted."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Delete a connector","tags":["Connectors"]}},"/v2/connectors/{id}/versions":{"get":{"description":"Returns the registry versions of the connector available to the project, newest first — the version options a connector profile can be pinned to. Returns an empty array for connectors that exist but have no registry versions.","operationId":"list_connector_versions","parameters":[{"name":"id","required":true,"in":"path","description":"The connector id; only the `key` part is used (e.g. `hibob`).","schema":{"type":"string"}}],"responses":{"200":{"description":"The connector versions were retrieved.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConnectorVersionResource"}}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List connector versions","tags":["Connectors"]}},"/v2/connectors/{id}/actions/{actionId}":{"get":{"description":"Returns the definition of one of the connector actions: the inputs it accepts, the steps it runs and the result it produces. Fetch it per action — the connector endpoint reports the actions a connector exposes, but a definition is large and a connector can expose hundreds of them.","operationId":"get_connector_action","parameters":[{"name":"id","required":true,"in":"path","description":"The connector id, in the form `key[@version][~owner]` (e.g. `hibob@1.2.0~stackone`).","schema":{"type":"string"}},{"name":"actionId","required":true,"in":"path","description":"The id of the action (e.g. `hibob_list_employees`).","schema":{"type":"string"}},{"name":"version","required":false,"in":"query","description":"The connector version to read the action from, overriding any version in the id. Accepts `latest`. Resolved automatically when omitted.","schema":{"nullable":true,"type":"string"}},{"name":"owner","required":false,"in":"query","description":"The owner of the connector version, overriding any owner in the id. Accepts the wildcards `builtin` (global) and `custom` (the organization's own). Resolved automatically when omitted.","schema":{"nullable":true,"type":"string"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `steps` (the sequence the action runs to fulfil a call) and `result` (how the response body is built from it). Both are `null` unless requested.","schema":{"nullable":true,"type":"string"}}],"responses":{"200":{"description":"The action was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorActionDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get connector action","tags":["Connectors"]}},"/v2/connectors/{id}/event_actions/{eventId}":{"get":{"description":"Returns the definition of one of the connector event actions — the inbound counterpart of `get_connector_action`, describing how an event the provider sends is processed. Fetch it per event action.","operationId":"get_connector_event_action","parameters":[{"name":"id","required":true,"in":"path","description":"The connector id, in the form `key[@version][~owner]` (e.g. `hibob@1.2.0~stackone`).","schema":{"type":"string"}},{"name":"eventId","required":true,"in":"path","description":"The id of the event action.","schema":{"type":"string"}},{"name":"version","required":false,"in":"query","description":"The connector version to read the action from, overriding any version in the id. Accepts `latest`. Resolved automatically when omitted.","schema":{"nullable":true,"type":"string"}},{"name":"owner","required":false,"in":"query","description":"The owner of the connector version, overriding any owner in the id. Accepts the wildcards `builtin` (global) and `custom` (the organization's own). Resolved automatically when omitted.","schema":{"nullable":true,"type":"string"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `steps` (the sequence the action runs to fulfil a call) and `result` (how the response body is built from it). Both are `null` unless requested.","schema":{"nullable":true,"type":"string"}}],"responses":{"200":{"description":"The event action was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorActionDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get connector event action","tags":["Connectors"]}},"/v2/connector_profiles":{"get":{"description":"Returns the connector profiles configured in the project.","operationId":"list_connector_profiles","parameters":[{"name":"page","required":false,"in":"query","description":"The 1-based page number to fetch. Omit both `page` and `page_size` to fetch all connector profiles at once.","schema":{"minimum":1,"nullable":true,"type":"number"}},{"name":"page_size","required":false,"in":"query","description":"The number of connector profiles to return per page.","schema":{"minimum":1,"maximum":100,"nullable":true,"default":25,"type":"number"}},{"name":"connector_key","required":false,"in":"query","description":"Filter to connector profiles for any of these connector keys (comma-separated or repeated, e.g. `?connector_key=workday,bamboohr`).","schema":{"nullable":true,"type":"array","items":{"type":"string"}}},{"name":"active","required":false,"in":"query","description":"Filter connector profiles by their active state.","schema":{"nullable":true,"example":true,"type":"boolean"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `connector` (the connector this profile configures), `version` (the connector version this profile resolves to), `accounts_count` (the number of accounts linked to this profile) and `enabled_actions_count` (how many of that version's actions this profile enables). These are returned as `null` unless requested.","schema":{"nullable":true,"example":"connector,version","type":"string"}}],"responses":{"200":{"description":"The connector profiles were retrieved.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaginatedConnectorProfilesResponse"},{"type":"array","items":{"$ref":"#/components/schemas/ConnectorProfileResource"}}]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List connector profiles","tags":["Connector Profiles"]},"post":{"description":"Creates a connector profile and returns its full representation. `enabled_actions_count` cannot be expanded here. Read it back with a `GET`.","operationId":"create_connector_profile","parameters":[{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `connector` (the connector this profile configures), `version` (the connector version this profile resolves to) and `accounts_count` (the number of accounts linked to this profile). These are returned as `null` unless requested.","schema":{"nullable":true,"example":"connector,version","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConnectorProfileDto"}}}},"responses":{"201":{"description":"The connector profile was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorProfileDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Create a connector profile","tags":["Connector Profiles"]}},"/v2/connector_profiles/{id}":{"get":{"description":"Returns the connector profile including its saved setup fields, redacted secrets and action/event/sync configuration, everything needed to pre-fill an edit form.","operationId":"get_connector_profile","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the connector profile.","schema":{"type":"string"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `connector` (the connector this profile configures), `version` (the connector version this profile resolves to), `accounts_count` (the number of accounts linked to this profile) and `enabled_actions_count` (how many of that version's actions this profile enables). These are returned as `null` unless requested.","schema":{"nullable":true,"example":"connector,version","type":"string"}}],"responses":{"200":{"description":"The connector profile was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorProfileDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get a connector profile","tags":["Connector Profiles"]},"patch":{"description":"Updates a connector profile. Secrets resent as `__secretvalue:`-prefixed placeholders keep their stored values.","operationId":"patch_connector_profile","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the connector profile.","schema":{"type":"string"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `connector` (the connector this profile configures), `version` (the connector version this profile resolves to), `accounts_count` (the number of accounts linked to this profile) and `enabled_actions_count` (how many of that version's actions this profile enables). These are returned as `null` unless requested.","schema":{"nullable":true,"example":"connector,version","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchConnectorProfileDto"}}}},"responses":{"200":{"description":"The connector profile was updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorProfileDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Patch a connector profile","tags":["Connector Profiles"]},"delete":{"description":"Deletes the connector profile and everything configured on it, including its webhook subscriptions and saved secrets. A profile with linked accounts cannot be deleted. The default profile cannot be deleted while two or more alternatives exist for the same connector. With exactly one, that profile becomes the new default.","operationId":"delete_connector_profile","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the connector profile.","schema":{"type":"string"}}],"responses":{"204":{"description":"The connector profile was deleted."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Delete a connector profile","tags":["Connector Profiles"]}},"/v2/data_sync/sync_configs":{"get":{"description":"Returns the data-sync configs in the project.","operationId":"list_sync_configs","parameters":[{"name":"connector_profile_id","required":false,"in":"query","description":"Filter to sync configs for a specific connector profile.","schema":{"nullable":true,"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"string"}},{"name":"action_id","required":false,"in":"query","description":"Filter to sync configs for a specific action.","schema":{"nullable":true,"example":"hris_list_employees","type":"string"}},{"name":"enabled","required":false,"in":"query","description":"Filter by enabled state.","schema":{"nullable":true,"example":true,"type":"boolean"}},{"name":"page","required":false,"in":"query","description":"The 1-based page number to fetch. Omit both `page` and `page_size` to fetch all sync configs at once.","schema":{"minimum":1,"nullable":true,"type":"number"}},{"name":"page_size","required":false,"in":"query","description":"The number of sync configs to return per page.","schema":{"minimum":1,"maximum":100,"nullable":true,"default":25,"type":"number"}}],"responses":{"200":{"description":"The sync configs were retrieved.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaginatedSyncConfigsResponse"},{"type":"array","items":{"$ref":"#/components/schemas/SyncConfigResource"}}]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List sync configs","tags":["Data Sync"]},"post":{"description":"Creates a sync config binding an action to a connector profile and returns its representation.","operationId":"create_sync_config","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSyncConfigDto"}}}},"responses":{"201":{"description":"The sync config was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncConfigResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.\n\nA sync config for this connector profile and action already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Create a sync config","tags":["Data Sync"]}},"/v2/data_sync/sync_configs/{id}":{"get":{"description":"Returns a single sync config, with the action it governs and its cadence.","operationId":"get_sync_config","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the sync config.","schema":{"type":"string"}}],"responses":{"200":{"description":"The sync config was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncConfigResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get a sync config","tags":["Data Sync"]},"patch":{"description":"Updates a sync config's mutable fields. `connector_profile_id` and `action_id` cannot be changed.","operationId":"patch_sync_config","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the sync config.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchSyncConfigDto"}}}},"responses":{"200":{"description":"The sync config was updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncConfigResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Patch a sync config","tags":["Data Sync"]},"delete":{"description":"Deletes a sync config, so the action it governs stops syncing.","operationId":"delete_sync_config","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the sync config.","schema":{"type":"string"}},{"name":"force","required":false,"in":"query","description":"Deletes the sync config even if live, hand-authored schedules depend on it. Without this, such a delete is rejected with a `409` naming the count.","schema":{"nullable":true,"default":false,"type":"boolean"}}],"responses":{"204":{"description":"The sync config was deleted."},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.\n\nLive manual schedules depend on this sync config.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncConfigDeleteConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Delete a sync config","tags":["Data Sync"]}},"/v2/data_sync/sync_configs/{id}/parameters":{"get":{"description":"Returns the parameters the sync config's action accepts, together with any cross-parameter rules it enforces.","operationId":"get_sync_config_parameters","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the sync config.","schema":{"type":"string"}}],"responses":{"200":{"description":"The action parameters were retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionParametersResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get a sync config action's parameters","tags":["Data Sync"]}},"/v2/data_sync/schedules":{"get":{"description":"Returns the data-sync schedules in the project.","operationId":"list_schedules","parameters":[{"name":"sync_config_id","required":false,"in":"query","description":"Filter to schedules fanned out from a specific sync config.","schema":{"nullable":true,"example":"dsc_01HXYZ...","type":"string"}},{"name":"account_id","required":false,"in":"query","description":"Filter to schedules belonging to a specific linked account.","schema":{"nullable":true,"example":"acc_01HXYZ...","type":"string"}},{"name":"action_id","required":false,"in":"query","description":"Filter to schedules for a specific action.","schema":{"nullable":true,"example":"hris_list_employees","type":"string"}},{"name":"enabled","required":false,"in":"query","description":"Filter by enabled state.","schema":{"nullable":true,"example":true,"type":"boolean"}},{"name":"page","required":false,"in":"query","description":"The 1-based page number to fetch. Omit both `page` and `page_size` to fetch all schedules at once.","schema":{"minimum":1,"nullable":true,"type":"number"}},{"name":"page_size","required":false,"in":"query","description":"The number of schedules to return per page.","schema":{"minimum":1,"maximum":100,"nullable":true,"default":25,"type":"number"}}],"responses":{"200":{"description":"The schedules were retrieved.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaginatedSchedulesResponse"},{"type":"array","items":{"$ref":"#/components/schemas/ScheduleResource"}}]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List schedules","tags":["Data Sync"]}},"/v2/data_sync/schedules/{id}":{"get":{"description":"Returns a single data-sync schedule, with its cadence and last run.","operationId":"get_schedule","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the schedule.","schema":{"type":"string"}}],"responses":{"200":{"description":"The schedule was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get a schedule","tags":["Data Sync"]},"patch":{"description":"Enables or disables a schedule. `enabled` is the only patchable field.","operationId":"patch_schedule","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the schedule.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchScheduleDto"}}}},"responses":{"200":{"description":"The schedule was updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Patch a schedule","tags":["Data Sync"]}},"/v2/data_sync/runs":{"get":{"description":"Returns the data-sync runs in the project. Runs are read-only: they are produced by the sync engine, never created directly.","operationId":"list_runs","parameters":[{"name":"schedule_id","required":false,"in":"query","description":"Filter to runs belonging to a specific schedule.","schema":{"nullable":true,"example":"sched_01HXYZ...","type":"string"}},{"name":"account_id","required":false,"in":"query","description":"Filter to runs for a specific linked account.","schema":{"nullable":true,"example":"acc_01HXYZ...","type":"string"}},{"name":"status","required":false,"in":"query","description":"Filter by run lifecycle status.","schema":{"nullable":true,"type":"string","enum":["running","success","truncated","quota_exceeded","invalid_config","timed_out","provider_auth_failed","provider_rate_limited","provider_error","incomplete","failed",null]}},{"name":"is_failure","required":false,"in":"query","description":"Filter to failed runs (`true`) or everything else (`false`).","schema":{"nullable":true,"example":true,"type":"boolean"}},{"name":"page","required":false,"in":"query","description":"The 1-based page number to fetch. Omit both `page` and `page_size` to fetch all runs at once.","schema":{"minimum":1,"nullable":true,"type":"number"}},{"name":"page_size","required":false,"in":"query","description":"The number of runs to return per page.","schema":{"minimum":1,"maximum":100,"nullable":true,"default":25,"type":"number"}}],"responses":{"200":{"description":"The runs were retrieved.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaginatedRunsResponse"},{"type":"array","items":{"$ref":"#/components/schemas/RunResource"}}]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List runs","tags":["Data Sync"]}},"/v2/data_sync/runs/{id}":{"get":{"description":"Returns a single data-sync run, with its outcome and record counts.","operationId":"get_run","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the run (the Temporal workflow run id).","schema":{"type":"string"}}],"responses":{"200":{"description":"The run was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get a run","tags":["Data Sync"]}},"/v2/webhooks":{"get":{"description":"Returns the webhooks registered in the project, newest first. The signing secret is never returned by the list. Fetch a single webhook for it.","operationId":"list_webhooks","parameters":[{"name":"page","required":false,"in":"query","description":"The 1-based page number to fetch. Omit both `page` and `page_size` to fetch all webhooks at once.","schema":{"minimum":1,"nullable":true,"type":"number"}},{"name":"page_size","required":false,"in":"query","description":"The number of webhooks to return per page.","schema":{"minimum":1,"maximum":100,"nullable":true,"default":25,"type":"number"}},{"name":"status","required":false,"in":"query","description":"Filter webhooks by their status.","x-speakeasy-unknown-values":"allow","schema":{"$ref":"#/components/schemas/StatusType"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `provider_events` (the per-provider event configuration). These are returned as `null` unless requested.","schema":{"nullable":true,"example":"provider_events","type":"string"}}],"responses":{"200":{"description":"The webhooks were retrieved.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PaginatedWebhooksResponse"},{"type":"array","items":{"$ref":"#/components/schemas/WebhookResource"}}]}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"List webhooks","tags":["Webhooks"]}},"/v2/webhooks/{id}":{"get":{"description":"Returns the webhook, including the signing secret used to verify payload signatures.","operationId":"get_webhook","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the webhook.","schema":{"type":"string"}},{"name":"expand","required":false,"in":"query","description":"A comma-separated list of additional fields to expand. Supported values: `provider_events` (the per-provider event configuration). These are returned as `null` unless requested.","schema":{"nullable":true,"example":"provider_events","type":"string"}}],"responses":{"200":{"description":"The webhook was retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDetailResource"}}}},"400":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"401":{"description":"Unauthorized access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedResponse"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenResponse"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"408":{"description":"The request has timed out.","headers":{"Retry-After":{"description":"A time in seconds after which the request can be retried.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestTimedOutResponse"}}}},"409":{"description":"Conflict with current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictResponse"}}}},"422":{"description":"Validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityResponse"}}}},"429":{"description":"Too many requests.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TooManyRequestsResponse"}}}},"500":{"description":"Server error while executing the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorResponse"}}}},"501":{"description":"This functionality is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotImplementedResponse"}}}},"502":{"description":"Bad gateway error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadGatewayResponse"}}}}},"security":[{"basic":[]}],"summary":"Get a webhook","tags":["Webhooks"]}}},"info":{"title":"StackOne","description":"The documentation for the StackOne API","version":"1.0.0","contact":{}},"tags":[{"name":"Accounts","description":"View and manage linked accounts."},{"name":"Connector Profiles","description":"View and manage connector profiles for the project."},{"name":"Connectors","description":"Retrieve metadata for connectors."},{"name":"Webhooks","description":"Configure and manage webhooks."},{"name":"Data Sync","description":"View data-sync configs, schedules, runs, and event subscriptions."}],"servers":[{"url":"https://api.stackone.com"}],"components":{"securitySchemes":{"basic":{"type":"http","scheme":"basic"}},"schemas":{"AccountActionResource":{"type":"object","properties":{"id":{"type":"string","description":"The action identifier (e.g. `list_employees`)."},"label":{"type":"string","description":"The human-readable action label (e.g. `List Employees`)."},"description":{"type":"string","description":"A short description of what the action does."},"tags":{"description":"The tags categorising the action.","type":"array","items":{"type":"string"}},"enabled":{"type":"boolean","description":"Whether the action is enabled for this account's connector profile. Disabled actions are still listed but cannot be used."},"sync_available":{"type":"boolean","description":"Whether a synced variant of this action is available for the account's connector profile."}},"required":["id","label","description","tags","enabled","sync_available"]},"AccountCapability":{"type":"string","enum":["read","execute-actions","update","delete","relink","manage-members","unmapped_value",null]},"AccountDetailResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the account."},"connector_key":{"type":"string","description":"The connector/provider key this account connects to (e.g. `workday`). Always present; the full connector object requires `?expand=connector`."},"connector":{"description":"The connector this account uses. Only present when requested via `?expand=connector`.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorResource"}]},"connector_profile_id":{"type":"string","description":"The identifier of the connector profile this account is linked to. Only present when requested via `?expand=connector_profile`.","nullable":true},"connector_profile_label":{"type":"string","description":"The connector profile label: the connector profile name, appended with the authentication label (e.g. `Acme | Production`). Only present when requested via `?expand=connector_profile`.","nullable":true},"last_request":{"type":"string","format":"date-time","description":"When the account was last active, counting both requests and action runs. Only present when requested via `?expand=last_request`.","nullable":true},"actions":{"description":"The account's connector action catalog, each flagged with whether it is enabled for the connector profile. Only present when requested via `?expand=actions`.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/AccountActionResource"}},"status":{"type":"string","enum":["active","inactive","suspended","archived","expired","error"],"description":"The current status of the account.","x-speakeasy-unknown-values":"allow"},"status_reasons":{"description":"Reasons explaining the current status.","type":"array","items":{"$ref":"#/components/schemas/StatusReasonResource"}},"owner_id":{"type":"string","description":"The account owner's identifier in the provider's system."},"name":{"type":"string","description":"The account owner's name in the provider's system."},"owner_username":{"type":"string","description":"The end-user identifier within the owner, if any.","nullable":true},"type":{"type":"string","description":"The account type (e.g. `production` or `test`)."},"created_at":{"type":"string","format":"date-time","description":"When the account was created."},"updated_at":{"type":"string","format":"date-time","description":"When the account was last updated."},"connected_at":{"type":"string","format":"date-time","nullable":true,"description":"When the account was connected to its integration; `null` if unknown."},"expires_at":{"type":"string","format":"date-time","nullable":true,"description":"When the account expires (test accounts only); `null` for production."}},"required":["id","connector_key","status","status_reasons","owner_id","name","type","created_at","updated_at","connected_at","expires_at"]},"AccountFiltersResource":{"type":"object","properties":{"connector_keys":{"description":"The connectors in use — value is the connector key, label is the connector display name. A connector key appears once per distinct connector name it resolves to (owned connectors can share a key across owners).","type":"array","items":{"$ref":"#/components/schemas/FilterOptionResource"}},"account_ids":{"description":"The distinct accounts — value is the account id, label is `<owner name> (<connector name>)`.","type":"array","items":{"$ref":"#/components/schemas/FilterOptionResource"}},"owner_ids":{"description":"The distinct owners — value and label are both the owner id.","type":"array","items":{"$ref":"#/components/schemas/FilterOptionResource"}},"statuses":{"description":"The distinct account statuses — value is the status code, label is the title-cased status.","type":"array","items":{"$ref":"#/components/schemas/FilterOptionResource"}}},"required":["connector_keys","account_ids","owner_ids","statuses"]},"AccountResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the account."},"connector_key":{"type":"string","description":"The connector/provider key this account connects to (e.g. `workday`). Always present; the full connector object requires `?expand=connector`."},"connector":{"description":"The connector this account uses. Only present when requested via `?expand=connector`.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorResource"}]},"connector_profile_id":{"type":"string","description":"The identifier of the connector profile this account is linked to. Only present when requested via `?expand=connector_profile`.","nullable":true},"connector_profile_label":{"type":"string","description":"The connector profile label: the connector profile name, appended with the authentication label (e.g. `Acme | Production`). Only present when requested via `?expand=connector_profile`.","nullable":true},"last_request":{"type":"string","format":"date-time","description":"When the account was last active, counting both requests and action runs. Only present when requested via `?expand=last_request`.","nullable":true},"actions":{"description":"The account's connector action catalog, each flagged with whether it is enabled for the connector profile. Only present when requested via `?expand=actions`.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/AccountActionResource"}},"status":{"type":"string","enum":["active","inactive","suspended","archived","expired","error"],"description":"The current status of the account.","x-speakeasy-unknown-values":"allow"},"status_reasons":{"description":"Reasons explaining the current status.","type":"array","items":{"$ref":"#/components/schemas/StatusReasonResource"}},"owner_id":{"type":"string","description":"The account owner's identifier in the provider's system."},"name":{"type":"string","description":"The account owner's name in the provider's system."},"owner_username":{"type":"string","description":"The end-user identifier within the owner, if any.","nullable":true},"type":{"type":"string","description":"The account type (e.g. `production` or `test`)."},"created_at":{"type":"string","format":"date-time","description":"When the account was created."},"updated_at":{"type":"string","format":"date-time","description":"When the account was last updated."}},"required":["id","connector_key","status","status_reasons","owner_id","name","type","created_at","updated_at"]},"ActionParameterResource":{"type":"object","properties":{"name":{"type":"string","description":"The parameter name, as the action expects it."},"in":{"type":"string","description":"Where the parameter goes in the request.","enum":["path","query","body","headers"],"x-speakeasy-unknown-values":"allow"},"type":{"type":"string","description":"The value type the parameter accepts.","enum":["string","number","boolean","datetime_string","object","enum"],"x-speakeasy-unknown-values":"allow"},"required":{"type":"boolean","description":"Whether the action rejects a payload that omits it."},"array":{"type":"boolean","description":"Whether the parameter takes a list of `type` values rather than a single one. Supplying a single value where a list is expected is rejected."},"description":{"type":"string","description":"What the parameter is for.","nullable":true},"options":{"description":"The accepted values, present only for `enum` parameters.","nullable":true,"type":"array","items":{"type":"string"}}},"required":["name","in","type","required","array"]},"ActionParametersResource":{"type":"object","properties":{"parameters":{"description":"The parameters the action accepts.","type":"array","items":{"$ref":"#/components/schemas/ActionParameterResource"}},"validation_rules":{"description":"Cross-parameter rules the action enforces on top of `required`.","type":"array","items":{"$ref":"#/components/schemas/ValidationRuleResource"}}},"required":["parameters","validation_rules"]},"BadGatewayResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":502},"message":{"type":"string","description":"Error message","example":"Bad Gateway"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"BadRequestResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":400},"message":{"type":"string","description":"Error message","example":"Bad Request"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"},"data":{"description":"Error details","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/UnifiedError"}]},"provider_errors":{"description":"List of provider-specific errors","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ProviderError"}}},"required":["statusCode","message","timestamp"]},"ConflictResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":409},"message":{"type":"string","description":"Error message","example":"Conflict"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"ConnectorActionAnnotationsResource":{"type":"object","properties":{"title":{"type":"string","description":"A human-readable title for the action.","nullable":true},"readOnlyHint":{"type":"boolean","description":"Whether the action does not modify the external system.","nullable":true},"destructiveHint":{"type":"boolean","description":"Whether the action may perform destructive updates.","nullable":true},"idempotentHint":{"type":"boolean","description":"Whether repeated calls with the same arguments have no additional effect.","nullable":true},"openWorldHint":{"type":"boolean","description":"Whether the action interacts with entities outside the external system.","nullable":true}}},"ConnectorActionAuthUsageResource":{"type":"object","properties":{"type":{"type":"string","description":"The authentication type (e.g. `oauth2`, `custom`)."},"label":{"type":"string","description":"The display label of the authentication method."},"key":{"type":"string","description":"The key of the authentication method."},"required_scopes":{"description":"The provider scopes the action requires under this method.","nullable":true,"type":"array","items":{"type":"string"}},"description":{"type":"string","description":"A description of the authentication requirements.","nullable":true}},"required":["type","label","key"]},"ConnectorActionDetailResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique id of the action."},"label":{"type":"string","description":"The display label of the action."},"description":{"type":"string","description":"The description of the action."},"action_type":{"nullable":true,"description":"The operation the action performs on the resource.","x-speakeasy-unknown-values":"allow","allOf":[{"$ref":"#/components/schemas/ConnectorActionType"}]},"schema_type":{"nullable":true,"description":"Whether the action speaks the provider's own schema or a unified one.","x-speakeasy-unknown-values":"allow","allOf":[{"$ref":"#/components/schemas/ConnectorActionSchemaType"}]},"schema":{"type":"string","nullable":true,"description":"The unified schema the action reads or writes (e.g. `employees`). `null` for native actions."},"details":{"type":"string","nullable":true,"description":"Extended documentation for the action, as Markdown."},"categories":{"description":"The categories the action belongs to.","type":"array","items":{"type":"string"}},"resources":{"type":"string","nullable":true,"description":"A link to the provider's documentation for the underlying operation."},"effects":{"type":"array","description":"The effects the action has on the external system.","x-speakeasy-unknown-values":"allow","items":{"$ref":"#/components/schemas/ConnectorActionEffect"}},"required_scopes":{"description":"The provider scopes the action requires under every authentication method. Empty when it scopes per method instead — read `authentication[].required_scopes`.","type":"array","items":{"type":"string"}},"release_stage":{"nullable":true,"description":"The release stage of the action.","x-speakeasy-unknown-values":"allow","allOf":[{"$ref":"#/components/schemas/ConnectorActionReleaseStage"}]},"tags":{"description":"The tags of the action.","type":"array","items":{"type":"string"}},"authentication":{"description":"The authentication methods the action can be run under, with the scopes each needs.","type":"array","items":{"$ref":"#/components/schemas/ConnectorActionAuthUsageResource"}},"syncable":{"type":"boolean","description":"Whether the data-sync engine can sync this action."},"inputs":{"description":"The inputs the action accepts, in declaration order. Object inputs nest theirs under `properties`; rules spanning inputs are in `validation_rules`.","type":"array","items":{"$ref":"#/components/schemas/ConnectorActionInputResource"}},"validation_rules":{"description":"Rules spanning several inputs, which the per-input `required` flag cannot express. Apply these too, or a call can still be rejected.","type":"array","items":{"$ref":"#/components/schemas/ValidationRuleResource"}},"steps":{"type":"object","nullable":true,"additionalProperties":{"$ref":"#/components/schemas/ConnectorActionStepResource"},"description":"The sequence the action runs to fulfil a call, keyed by step id. `null` unless requested with `expand=steps`."},"result":{"nullable":true,"description":"How the response is built: a response field to expression mapping, or a single expression for the whole body. `null` unless requested with `expand=result`. A mapping referring back to its own ancestor reads as `[cyclic]`.","oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}]}},"required":["id","label","description","action_type","schema_type","schema","details","categories","resources","effects","required_scopes","release_stage","tags","authentication","syncable","inputs","validation_rules","steps","result"]},"ConnectorActionEffect":{"type":"string","enum":["read","write","delete","search","execute"],"description":"The effects the action has on the external system."},"ConnectorActionInputEnumResource":{"type":"object","properties":{"values":{"description":"The allowed values, listed inline or resolved from `ref`. Absent when a named enum could not be resolved.","nullable":true,"type":"array","items":{"type":"string"}},"ref":{"type":"string","description":"The shared enum the values came from. Absent when the input lists its values itself.","nullable":true}}},"ConnectorActionInputFormat":{"type":"string","enum":["email","url","uuid","date","datetime","uri","unmapped_value",null],"description":"The expected string format."},"ConnectorActionInputLocation":{"type":"string","enum":["body","query","path","headers","unmapped_value",null],"description":"Where the input is sent on the provider request. Set on top-level inputs only."},"ConnectorActionInputResource":{"type":"object","properties":{"name":{"type":"string","description":"The name of the input."},"description":{"type":"string","description":"What the input is for."},"required":{"type":"boolean","description":"Whether the action requires the input."},"type":{"description":"The value type of the input.","x-speakeasy-unknown-values":"allow","nullable":true,"allOf":[{"$ref":"#/components/schemas/ConnectorActionInputType"}]},"in":{"description":"Where the input is sent on the provider request. Set on top-level inputs only.","x-speakeasy-unknown-values":"allow","nullable":true,"allOf":[{"$ref":"#/components/schemas/ConnectorActionInputLocation"}]},"array":{"type":"boolean","description":"Whether the input accepts a list of values.","nullable":true},"properties":{"description":"The members of an object input. Absent — not empty — on an input that appears within itself.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorActionInputResource"}},"options":{"description":"The allowed values, for inputs of type `enum`.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorActionInputEnumResource"}]},"rules":{"description":"The validation constraints on the input.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorActionInputRulesResource"}]},"variants":{"description":"The alternative shapes the input accepts; a value matching any one is valid.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorActionInputVariantResource"}}},"required":["name","description","required"]},"ConnectorActionInputRulesResource":{"type":"object","properties":{"min_length":{"type":"number","description":"The minimum length of a string value.","nullable":true},"max_length":{"type":"number","description":"The maximum length of a string value.","nullable":true},"pattern":{"type":"string","description":"A regular expression the value must match.","nullable":true},"format":{"description":"The expected string format.","x-speakeasy-unknown-values":"allow","nullable":true,"allOf":[{"$ref":"#/components/schemas/ConnectorActionInputFormat"}]},"min":{"type":"number","description":"The minimum numeric value.","nullable":true},"max":{"type":"number","description":"The maximum numeric value.","nullable":true},"error_message":{"type":"string","description":"The message to surface when the value fails these rules.","nullable":true}}},"ConnectorActionInputType":{"type":"string","enum":["string","number","boolean","datetime_string","object","enum","unmapped_value",null],"description":"The value type of the input."},"ConnectorActionInputVariantResource":{"type":"object","properties":{"type":{"description":"The value type of this variant.","x-speakeasy-unknown-values":"allow","allOf":[{"$ref":"#/components/schemas/ConnectorActionInputVariantType"}]},"description":{"type":"string","description":"What this variant represents.","nullable":true},"array":{"type":"boolean","description":"Whether this variant accepts a list of values.","nullable":true},"properties":{"description":"The members of this variant, when it is an object.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorActionInputResource"}},"options":{"description":"The allowed values, when this variant is an enum.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorActionInputEnumResource"}]},"rules":{"description":"The validation constraints on this variant.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorActionInputRulesResource"}]}},"required":["type"]},"ConnectorActionInputVariantType":{"type":"string","enum":["string","number","boolean","datetime_string","object","enum"],"description":"The value type of this variant."},"ConnectorActionReleaseStage":{"type":"string","enum":["preview","beta","ga","deprecated","internal"],"description":"The release stage of the action."},"ConnectorActionResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique id of the action."},"label":{"type":"string","description":"The display label of the action."},"description":{"type":"string","description":"The description of the action."},"schema_type":{"type":"string","description":"The schema type of the action (e.g. `list`, `create`)."},"tags":{"description":"The tags of the action.","nullable":true,"type":"array","items":{"type":"string"}},"required_scopes":{"description":"The provider scopes the action requires.","nullable":true,"type":"array","items":{"type":"string"}},"release_stage":{"type":"string","description":"The release stage of the action (e.g. `ga`, `beta`).","nullable":true},"effects":{"description":"The effects of the action (e.g. `read`, `write`, `delete`).","nullable":true,"type":"array","items":{"type":"string"}},"annotations":{"description":"The behavioural annotations of the action.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorActionAnnotationsResource"}]},"action_details":{"type":"object","additionalProperties":true,"description":"The full action definition (inputs, response schema…). A large, connector-specific payload.","nullable":true},"authentication":{"description":"The authentication methods the action supports.","type":"array","items":{"$ref":"#/components/schemas/ConnectorActionAuthUsageResource"}},"syncable":{"type":"boolean","description":"Whether this action can be synced by the data-sync engine.","nullable":true},"supports_incremental":{"type":"boolean","description":"Whether this action supports incremental syncs (it declares an incremental strategy).","nullable":true},"has_required_parameters":{"type":"boolean","description":"Whether this action requires parameters to be supplied when it is synced. Such actions cannot be linked automatically for every account — each schedule must be created with its parameter values.","nullable":true},"enabled":{"type":"boolean","description":"Whether the connector profile given in `connector_profile_id` enables this action. Present only when the request names a connector profile.","nullable":true}},"required":["id","label","description","schema_type","authentication"]},"ConnectorActionSchemaType":{"type":"string","enum":["native","unified"],"description":"Whether the action speaks the provider's own schema or a unified one."},"ConnectorActionStepFunctionResource":{"type":"object","properties":{"functionName":{"type":"string","description":"The step function to run (e.g. `request`, `map_fields`, `typecast`)."},"version":{"type":"string","description":"The version of the step function.","nullable":true},"params":{"type":"object","additionalProperties":true,"description":"The arguments the step function runs with. The shape varies by step function, and values may contain `${...}` expressions naming inputs, credentials or the output of earlier steps. An argument referring back to its own ancestor reads as `[cyclic]`.","nullable":true}},"required":["functionName"]},"ConnectorActionStepResource":{"type":"object","properties":{"id":{"type":"string","description":"The id of the step, unique within the action."},"description":{"type":"string","description":"What the step does.","nullable":true},"condition":{"type":"string","description":"An expression that must hold for the step to run.","nullable":true},"onConditionError":{"description":"`true` skips the step, `false` fails the action, `break` stops the rest.","oneOf":[{"type":"boolean"},{"type":"string","enum":["break"]}],"nullable":true},"successCriteria":{"type":"string","description":"An expression that must hold for the step to count as successful.","nullable":true},"ignoreError":{"type":"boolean","description":"Whether the action continues when this step fails.","nullable":true},"async":{"type":"boolean","description":"Whether the step runs without the action waiting for it.","nullable":true},"iterator":{"type":"string","description":"The collection the step iterates over. Present on repeating steps only.","nullable":true},"stepFunction":{"description":"The operation the step performs.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorActionStepFunctionResource"}]},"stepFunctions":{"description":"The operations the step performs in order, for a repeating step.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorActionStepFunctionResource"}}},"required":["id"]},"ConnectorActionType":{"type":"string","enum":["list","get","create","update","delete","custom","refresh_token","test","event","unknown"],"description":"The operation the action performs on the resource."},"ConnectorAuthenticationMethodResource":{"type":"object","properties":{"type":{"type":"string","description":"The authentication type (`oauth2`, `oidc` or `custom`)."},"label":{"type":"string","description":"The display label of the method (present on the `default` environment).","nullable":true},"envLabel":{"type":"string","description":"The display label of the environment (present on concrete environments).","nullable":true},"guide":{"description":"The guide attached to the method.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorAuthGuideResource"}]},"setup":{"description":"The setup fields and notices the method requires.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorAuthSetupResource"}]},"fields":{"description":"The config fields of the method (rendered outside the setup section).","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorSetupFieldResource"}},"notices":{"description":"Notices rendered alongside the config fields.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorAuthNoticeResource"}},"configuredTestActionIds":{"description":"The ids of the test actions configured for the method.","nullable":true,"type":"array","items":{"type":"string"}},"credentialsVerifiedByAuth":{"type":"boolean","description":"Whether completing the authentication flow already verifies credentials.","nullable":true},"hasInlineTestAction":{"type":"boolean","description":"Whether the method declares an inline test action.","nullable":true}},"required":["type"]},"ConnectorAuthenticationSummaryResource":{"type":"object","properties":{"key":{"type":"string","description":"The key of the authentication method (e.g. `oauth2`)."},"label":{"type":"string","description":"The display label of the method (e.g. `OAuth v2`)."},"type":{"type":"string","description":"The authentication type (e.g. `oauth2`, `oidc`, `custom`)."}},"required":["key","label","type"]},"ConnectorAuthGuideResource":{"type":"object","properties":{"description":{"type":"string","description":"A description of the method.","nullable":true},"supportLink":{"type":"string","description":"A link to the setup documentation for the method.","nullable":true}}},"ConnectorAuthNoticeResource":{"type":"object","properties":{"key":{"type":"string","description":"The unique key of the notice."},"type":{"type":"string","description":"The notice type (`warning` or `info`)."},"description":{"type":"string","description":"The notice text."},"position":{"type":"string","description":"Where the notice is rendered (`top` or `bottom`).","nullable":true},"anchor":{"type":"string","description":"The key of the field the notice is anchored to.","nullable":true}},"required":["key","type","description"]},"ConnectorAuthSetupResource":{"type":"object","properties":{"fields":{"description":"The setup fields the method requires.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorSetupFieldResource"}},"notices":{"description":"Notices rendered alongside the setup fields.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorAuthNoticeResource"}}}},"ConnectorChangelogAffectedActionsResource":{"type":"object","properties":{"added":{"description":"The ids of the actions this version added.","type":"array","items":{"type":"string"}},"removed":{"description":"The ids of the actions this version removed.","type":"array","items":{"type":"string"}},"changed":{"description":"The ids of the actions this version changed.","type":"array","items":{"type":"string"}}},"required":["added","removed","changed"]},"ConnectorChangelogEntryResource":{"type":"object","properties":{"version":{"type":"string","description":"The connector version the entry describes (e.g. `1.2.0`)."},"summary":{"type":"string","description":"A summary of what changed in this version."},"labels":{"nullable":true,"description":"Labels categorising the change (e.g. `new-actions`, `bug-fix`); `null` when the entry carries none.","type":"array","items":{"type":"string"}},"released_at":{"type":"string","format":"date-time","description":"When the version was released, as an ISO 8601 timestamp."},"affected_actions":{"nullable":true,"description":"The action ids this version added, removed and changed relative to the previous version; `null` when no previous version exists to compare against (a connector's first recorded entry).","type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorChangelogAffectedActionsResource"}]}},"required":["version","summary","labels","released_at","affected_actions"]},"ConnectorChangelogResource":{"type":"object","properties":{"current_version":{"type":"string","description":"The most recent version with a changelog entry."},"entries":{"description":"One entry per published version, newest first by version (semver descending).","type":"array","items":{"$ref":"#/components/schemas/ConnectorChangelogEntryResource"}}},"required":["current_version","entries"]},"ConnectorDetailResource":{"type":"object","properties":{"key":{"type":"string","description":"The connector key (e.g. `workday`)."},"name":{"type":"string","description":"The human-readable connector name (e.g. `Workday`)."},"logo_url":{"type":"string","description":"The URL of the connector's logo."},"description":{"type":"string","nullable":true,"description":"The connector description; `null` when the connector declares none."},"categories":{"description":"The categories the connector belongs to (e.g. `[\"hris\"]`).","type":"array","items":{"type":"string"}},"authentication_methods":{"description":"One-line summaries of the authentication methods the connector supports.","type":"array","items":{"$ref":"#/components/schemas/ConnectorAuthenticationSummaryResource"}},"version":{"type":"string","description":"The connector version."},"owner":{"type":"string","description":"The owner of the connector."},"release_stage":{"type":"string","description":"The release stage of the connector (e.g. `ga`, `beta`)."},"actions_count":{"type":"integer","description":"The number of actions the connector exposes to the organization; 0 when the connector does not report action counts."},"events_count":{"type":"integer","description":"The number of event actions the connector exposes; 0 when the connector does not report event counts."},"accounts_count":{"type":"integer","nullable":true,"description":"The number of accounts linked to the connector in this project that are visible to you. Only resolved when `expand=accounts_count` is requested; `null` otherwise."},"connector_profiles_count":{"type":"integer","nullable":true,"description":"The number of connector profiles configured for the connector in this project. Only resolved when `expand=connector_profiles_count` is requested; `null` otherwise."},"documentation_url":{"type":"string","nullable":true,"description":"The URL of the public StackOne documentation for the connector; `null` when no public documentation is available."},"authentication":{"type":"object","additionalProperties":{"type":"object","description":"The environments of the authentication method (`default` plus concrete environments such as `production`), keyed by environment.","additionalProperties":{"$ref":"#/components/schemas/ConnectorAuthenticationMethodResource"}},"description":"The authentication methods the connector supports, keyed by authentication config key and then by environment. Contains field definitions, notices and OAuth metadata — never credential values."},"actions":{"nullable":true,"description":"The metadata of the actions the connector exposes (id, label, description, tags, required scopes…). Only resolved when `expand=actions` is requested; `null` otherwise. When `connector_profile_id` is supplied, the actions that profile enables come first and every action carries `enabled`.","type":"array","items":{"$ref":"#/components/schemas/ConnectorActionResource"}},"enabled_actions_count":{"type":"integer","nullable":true,"description":"How many of the connector's actions the connector profile given in `connector_profile_id` enables, out of `actions_count`. Only resolved when `connector_profile_id` is supplied together with `expand=actions`; `null` otherwise."},"event_actions":{"nullable":true,"description":"The metadata of the event actions the connector exposes. Only resolved when `expand=actions` is requested; `null` otherwise.","type":"array","items":{"$ref":"#/components/schemas/ConnectorEventActionResource"}},"scope_definitions":{"nullable":true,"description":"The scopes the connector declares, each with the scopes it already grants. Only resolved when `expand=actions` is requested; `null` otherwise. Empty for connectors that declare no scopes.","type":"array","items":{"$ref":"#/components/schemas/ConnectorScopeDefinitionResource"}},"versions":{"nullable":true,"description":"The registry versions of the connector, newest first — the version options a connector profile can be pinned to. Only resolved when `expand=versions` is requested; `null` otherwise. Empty for connectors with no registry versions.","type":"array","items":{"$ref":"#/components/schemas/ConnectorVersionResource"}},"changelog":{"nullable":true,"description":"The connector's release history: one entry per published version, newest first, with its summary, labels, release date and affected actions. Only resolved when `expand=changelog` is requested, and only for StackOne's built-in Falcon connectors; `null` otherwise, including connectors with no published changelog.","type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorChangelogResource"}]}},"required":["key","name","logo_url","description","categories","authentication_methods","version","owner","release_stage","actions_count","events_count","documentation_url","authentication","actions","enabled_actions_count","event_actions","scope_definitions","versions","changelog"]},"ConnectorEventActionResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique id of the event action."},"label":{"type":"string","description":"The display label of the event action."},"description":{"type":"string","description":"The description of the event action."},"tags":{"description":"The tags of the event action.","nullable":true,"type":"array","items":{"type":"string"}},"release_stage":{"type":"string","description":"The release stage of the event action (e.g. `ga`, `beta`).","nullable":true},"requires_manual_setup":{"type":"boolean","description":"Whether the event requires manual webhook setup in the external system.","nullable":true},"authentication":{"description":"The authentication methods the event action supports.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorActionAuthUsageResource"}}},"required":["id","label","description"]},"ConnectorFieldGuideResource":{"type":"object","properties":{"tooltip":{"type":"string","description":"A short tooltip for the field.","nullable":true},"description":{"type":"string","description":"A longer description of how to fill the field.","nullable":true}}},"ConnectorFieldOptionResource":{"type":"object","properties":{"label":{"type":"string","description":"The display label of the option."},"value":{"type":"string","description":"The value submitted when the option is selected."}},"required":["label","value"]},"ConnectorFieldValidationResource":{"type":"object","properties":{"type":{"type":"string","enum":["html-pattern","domain","unmapped_value",null],"description":"The rule kind, set only by legacy/static connectors (`html-pattern` or `domain`); absent on Falcon connectors.","x-speakeasy-unknown-values":"allow","nullable":true},"pattern":{"type":"string","description":"A regular expression the field value must match. On Falcon connectors exactly one of `pattern` or `format` is set.","nullable":true},"format":{"description":"The expected string format.","x-speakeasy-unknown-values":"allow","nullable":true,"allOf":[{"$ref":"#/components/schemas/ConnectorActionInputFormat"}]},"errorMessage":{"type":"string","description":"The message shown when a Falcon rule fails; clients generate a fallback when omitted.","nullable":true},"error":{"type":"string","description":"The message shown when a legacy/static rule fails.","nullable":true}}},"ConnectorProfileDetailResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the connector profile."},"name":{"type":"string","description":"The display name of the connector profile."},"connector_key":{"type":"string","description":"The connector key (e.g. `workday`). Always present; the full connector object requires `?expand=connector`."},"connector":{"nullable":true,"description":"The connector this profile configures. Always present; `null` unless requested via `?expand=connector`.","type":"object","allOf":[{"$ref":"#/components/schemas/ProfileConnectorResource"}]},"version":{"nullable":true,"description":"The connector version this profile resolves to. Always present; `null` unless requested via `?expand=version`.","type":"object","allOf":[{"$ref":"#/components/schemas/ProfileVersionResource"}]},"accounts_count":{"type":"integer","nullable":true,"description":"The number of accounts linked to this connector profile that are visible to you. Always present; `null` unless requested via `?expand=accounts_count`."},"enabled_actions_count":{"type":"integer","nullable":true,"description":"How many of the connector version's actions this profile enables. For StackOne connectors only the actions in the release stages your organization can access are counted, so this can read lower than the number the profile actually enables; a connector your organization owns is counted in full. A profile that enables everything counts all of them; one naming individual actions counts only those the version still has. `0` when the profile enables nothing, and also whenever no catalogue can be resolved — an unreadable registry, or a connector whose own release stage your organization cannot access. Always present; `null` unless requested via `?expand=enabled_actions_count` on a read endpoint, and always `null` on create."},"active":{"type":"boolean","description":"Whether the connector profile is active."},"default":{"type":"boolean","description":"Whether this is the default connector profile."},"environment":{"type":"string","nullable":true,"description":"The environment of the connector profile."},"authentication_config_key":{"type":"string","nullable":true,"description":"The authentication configuration key."},"created_at":{"type":"string","description":"The timestamp when the connector profile was created.","format":"date-time"},"updated_at":{"type":"string","description":"The timestamp when the connector profile was last updated.","format":"date-time"},"setup_fields":{"type":"object","additionalProperties":true,"description":"The saved non-secret setup field values, keyed by setup field key."},"secrets":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"The saved secret fields, keyed by field key. Values are `__secretvalue:`-prefixed redacted placeholders (never the plaintext); resend a placeholder unchanged to keep the stored secret."},"action_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"description":"The per-action enablement of the profile, keyed by action id."},"event_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"webhook_ids":{"type":"array","items":{"type":"string"}}},"required":["enabled","webhook_ids"]},"description":"The per-event-action configuration (enablement and subscribed webhooks), keyed by event action id."},"sync_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"cadence":{"type":"string"},"start_at":{"type":"string"},"full_sync_after":{"type":"string"},"auto_link":{"type":"boolean","description":"Whether the action syncs automatically on every account linked to this profile. When a save enables an action with no required parameters, omitting it means `true` and `false` is refused; a stored value not saved since may still read `false`. An action with required parameters cannot be newly synced or auto-linked."}},"required":["enabled","cadence","full_sync_after"]},"description":"The per-action data-sync configuration, keyed by action id."}},"required":["id","name","connector_key","connector","version","accounts_count","enabled_actions_count","active","default","environment","authentication_config_key","created_at","updated_at","setup_fields","secrets","action_config","event_config","sync_config"]},"ConnectorProfileResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the connector profile."},"name":{"type":"string","description":"The display name of the connector profile."},"connector_key":{"type":"string","description":"The connector key (e.g. `workday`). Always present; the full connector object requires `?expand=connector`."},"connector":{"nullable":true,"description":"The connector this profile configures. Always present; `null` unless requested via `?expand=connector`.","type":"object","allOf":[{"$ref":"#/components/schemas/ProfileConnectorResource"}]},"version":{"nullable":true,"description":"The connector version this profile resolves to. Always present; `null` unless requested via `?expand=version`.","type":"object","allOf":[{"$ref":"#/components/schemas/ProfileVersionResource"}]},"accounts_count":{"type":"integer","nullable":true,"description":"The number of accounts linked to this connector profile that are visible to you. Always present; `null` unless requested via `?expand=accounts_count`."},"enabled_actions_count":{"type":"integer","nullable":true,"description":"How many of the connector version's actions this profile enables. For StackOne connectors only the actions in the release stages your organization can access are counted, so this can read lower than the number the profile actually enables; a connector your organization owns is counted in full. A profile that enables everything counts all of them; one naming individual actions counts only those the version still has. `0` when the profile enables nothing, and also whenever no catalogue can be resolved — an unreadable registry, or a connector whose own release stage your organization cannot access. Always present; `null` unless requested via `?expand=enabled_actions_count` on a read endpoint, and always `null` on create."},"active":{"type":"boolean","description":"Whether the connector profile is active."},"default":{"type":"boolean","description":"Whether this is the default connector profile."},"environment":{"type":"string","nullable":true,"description":"The environment of the connector profile."},"authentication_config_key":{"type":"string","nullable":true,"description":"The authentication configuration key."},"created_at":{"type":"string","description":"The timestamp when the connector profile was created.","format":"date-time"},"updated_at":{"type":"string","description":"The timestamp when the connector profile was last updated.","format":"date-time"}},"required":["id","name","connector_key","connector","version","accounts_count","enabled_actions_count","active","default","environment","authentication_config_key","created_at","updated_at"]},"ConnectorResource":{"type":"object","properties":{"key":{"type":"string","description":"The connector key (e.g. `workday`)."},"name":{"type":"string","description":"The human-readable connector name (e.g. `SAP SuccessFactors`).","nullable":true},"logo_url":{"type":"string","description":"The URL of the connector's logo."},"categories":{"description":"The categories the connector belongs to (e.g. `[\"hris\"]`).","type":"array","items":{"type":"string"}},"version":{"type":"string","description":"The resolved connector version.","nullable":true},"owner":{"type":"string","description":"The owner of the connector."}},"required":["key","logo_url","categories","owner"]},"ConnectorScopeDefinitionResource":{"type":"object","properties":{"name":{"type":"string","description":"The scope name, as it appears in `required_scopes`."},"description":{"type":"string","description":"What the scope grants."},"includes":{"description":"The scopes this scope already grants. A consumer listing required scopes can drop any scope another listed scope includes.","nullable":true,"type":"array","items":{"type":"string"}}},"required":["name","description"]},"ConnectorSetupFieldResource":{"type":"object","properties":{"key":{"type":"string","description":"The key the field value is submitted under."},"label":{"type":"string","description":"The display label of the field.","nullable":true},"type":{"type":"string","description":"The input type of the field (e.g. `text`, `password`, `select`).","nullable":true},"required":{"type":"boolean","description":"Whether the field is required.","nullable":true},"secret":{"type":"boolean","description":"Whether the field value is a secret — submitted via `secrets` and returned redacted.","nullable":true},"readOnly":{"type":"boolean","description":"Whether the field is read-only.","nullable":true},"options":{"description":"The options of a select-type field.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/ConnectorFieldOptionResource"}},"placeholder":{"type":"string","description":"The placeholder text of the field.","nullable":true},"externalSystemAccountIdentifier":{"type":"boolean","description":"Whether the field value identifies the account in the external system (used for event routing).","nullable":true},"value":{"type":"string","description":"The default or fixed value of the field.","nullable":true},"computed":{"type":"boolean","description":"Whether the field value is computed server-side rather than user-provided.","nullable":true},"guide":{"description":"Guide texts for the field.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorFieldGuideResource"}]},"validation":{"description":"The client-side validation rule for the field value, when the connector declares one.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ConnectorFieldValidationResource"}]}},"required":["key"]},"ConnectorSummaryResource":{"type":"object","properties":{"key":{"type":"string","description":"The connector key (e.g. `workday`)."},"name":{"type":"string","description":"The human-readable connector name (e.g. `Workday`)."},"logo_url":{"type":"string","description":"The URL of the connector's logo."},"description":{"type":"string","nullable":true,"description":"The connector description; `null` when the connector declares none."},"categories":{"description":"The categories the connector belongs to (e.g. `[\"hris\"]`).","type":"array","items":{"type":"string"}},"authentication_methods":{"description":"One-line summaries of the authentication methods the connector supports.","type":"array","items":{"$ref":"#/components/schemas/ConnectorAuthenticationSummaryResource"}},"version":{"type":"string","description":"The connector version."},"owner":{"type":"string","description":"The owner of the connector."},"release_stage":{"type":"string","description":"The release stage of the connector (e.g. `ga`, `beta`)."},"actions_count":{"type":"integer","description":"The number of actions the connector exposes to the organization; 0 when the connector does not report action counts."},"events_count":{"type":"integer","description":"The number of event actions the connector exposes; 0 when the connector does not report event counts."},"accounts_count":{"type":"integer","nullable":true,"description":"The number of accounts linked to the connector in this project that are visible to you. Only resolved when `expand=accounts_count` is requested; `null` otherwise."},"connector_profiles_count":{"type":"integer","nullable":true,"description":"The number of connector profiles configured for the connector in this project. Only resolved when `expand=connector_profiles_count` is requested; `null` otherwise."}},"required":["key","name","logo_url","description","categories","authentication_methods","version","owner","release_stage","actions_count","events_count"]},"ConnectorVersionResource":{"type":"object","properties":{"version":{"type":"string","description":"The connector version (e.g. `1.2.0`)."},"owner":{"type":"string","description":"The owner of the version; `stackone` for built-in connectors."},"builtin":{"type":"boolean","description":"Whether the version is a built-in StackOne connector (`true`) or one owned by the organization (`false`)."},"release_stage":{"type":"string","description":"The release stage of the version (e.g. `ga`, `beta`)."}},"required":["version","owner","builtin","release_stage"]},"CreateConnectorProfileDto":{"type":"object","properties":{"connector_key":{"type":"string","description":"The key of the connector to configure (e.g. `workday`)."},"authentication_config_key":{"type":"string","description":"The key of the connector's authentication configuration to use."},"environment":{"type":"string","description":"The environment of the authentication configuration (e.g. `production`)."},"name":{"type":"string","description":"The display name of the connector profile."},"active":{"type":"boolean","description":"Whether the connector profile is active.","default":false,"nullable":true},"is_default":{"type":"boolean","description":"Whether this is the connector's default profile. When omitted, the first ACTIVE profile created for a connector becomes the default (a profile created disabled leaves the slot empty until one is enabled). An explicit true is honored; when it replaces an existing default it requires permission to update that profile, and the previous default is demoted.","nullable":true},"version":{"type":"string","description":"The connector version the profile is created for.","nullable":true},"pinned_version":{"type":"string","description":"The connector version to pin the profile to. Only applies to Falcon-versioned connectors; ignored otherwise.","nullable":true},"owner":{"type":"string","description":"The owner of the pinned connector version (defaults to `stackone`). Accepts the wildcards `builtin` (the global `stackone` owner) and `custom` (the organization's own connectors).","nullable":true},"setup_fields":{"type":"object","additionalProperties":true,"description":"The non-secret setup field values, keyed by setup field key.","nullable":true},"secrets":{"type":"object","additionalProperties":true,"description":"The secret field values, keyed by field key. Stored encrypted.","nullable":true},"action_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"description":"The per-action enablement of the profile, keyed by action id.","nullable":true},"event_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"webhook_ids":{"type":"array","items":{"type":"string"}}},"required":["enabled","webhook_ids"]},"description":"The per-event-action configuration (enablement and subscribed webhooks), keyed by event action id.","nullable":true},"sync_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"cadence":{"type":"string"},"start_at":{"type":"string"},"full_sync_after":{"type":"string"},"auto_link":{"type":"boolean","description":"Whether the action syncs automatically on every account linked to this profile. When a save enables an action with no required parameters, omitting it means `true` and `false` is refused; a stored value not saved since may still read `false`. An action with required parameters cannot be newly synced or auto-linked."}},"required":["enabled","cadence","full_sync_after"]},"description":"The per-action data-sync configuration, keyed by action id.","nullable":true}},"required":["connector_key","authentication_config_key","environment","name"]},"CreateSyncConfigDto":{"type":"object","properties":{"connector_profile_id":{"type":"string","description":"The identifier of the connector profile this sync config belongs to.","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},"action_id":{"type":"string","description":"The action this sync config governs (e.g. `hris_list_employees`)."},"enabled":{"type":"boolean","description":"Whether the action is syncable for the connector profile.","default":true,"nullable":true},"cadence":{"type":"string","description":"How often the sync fires. ISO 8601 duration (e.g. `PT1H`)."},"full_sync_after":{"type":"string","description":"The point after which an incremental sync falls back to a full sync. ISO 8601 duration. Required whenever `enabled` is true; may be omitted (or `null`) only on a sync config created disabled.","nullable":true},"start_at":{"type":"string","format":"date-time","description":"When the sync config should first be scheduled to fire.","nullable":true},"auto_link":{"type":"boolean","description":"Whether the action syncs automatically on every account linked to this connector profile. For an action with no required parameters it is always on: omitting it means `true` and `false` is refused. An action with required parameters cannot be auto-linked.","default":true,"nullable":true}},"required":["connector_profile_id","action_id","cadence"]},"FilterOptionResource":{"type":"object","properties":{"value":{"type":"string","description":"The value to send back when filtering by this field."},"label":{"type":"string","description":"The human-readable label for display."}},"required":["value","label"]},"ForbiddenResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":403},"message":{"type":"string","description":"Error message","example":"Forbidden resource"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"InternalServerErrorResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":500},"message":{"type":"string","description":"Error message","example":"Internal server error"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"NotFoundResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":404},"message":{"type":"string","description":"Error message","example":"Not Found"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"NotImplementedResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":501},"message":{"type":"string","description":"Error message","example":"Not Implemented"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"PaginatedAccountsResponse":{"type":"object","properties":{"page":{"type":"number","description":"The current page number."},"page_size":{"type":"number","description":"The number of accounts per page."},"total":{"type":"number","description":"The total number of accounts matching the request."},"data":{"description":"The accounts on this page.","type":"array","items":{"$ref":"#/components/schemas/AccountResource"}}},"required":["page","page_size","total","data"]},"PaginatedConnectorProfilesResponse":{"type":"object","properties":{"page":{"type":"number","description":"The current page number."},"page_size":{"type":"number","description":"The number of connector profiles per page."},"total":{"type":"number","description":"The total number of connector profiles matching the request."},"data":{"description":"The connector profiles on this page.","type":"array","items":{"$ref":"#/components/schemas/ConnectorProfileResource"}}},"required":["page","page_size","total","data"]},"PaginatedConnectorsResponse":{"type":"object","properties":{"page":{"type":"number","description":"The current page number."},"page_size":{"type":"number","description":"The number of connectors per page."},"total":{"type":"number","description":"The total number of connectors matching the request."},"data":{"description":"The connectors on this page.","type":"array","items":{"$ref":"#/components/schemas/ConnectorSummaryResource"}}},"required":["page","page_size","total","data"]},"PaginatedRunsResponse":{"type":"object","properties":{"page":{"type":"number","description":"The current page number."},"page_size":{"type":"number","description":"The number of runs per page."},"total":{"type":"number","description":"The total number of runs matching the request."},"data":{"description":"The runs on this page.","type":"array","items":{"$ref":"#/components/schemas/RunResource"}}},"required":["page","page_size","total","data"]},"PaginatedSchedulesResponse":{"type":"object","properties":{"page":{"type":"number","description":"The current page number."},"page_size":{"type":"number","description":"The number of schedules per page."},"total":{"type":"number","description":"The total number of schedules matching the request."},"data":{"description":"The schedules on this page.","type":"array","items":{"$ref":"#/components/schemas/ScheduleResource"}}},"required":["page","page_size","total","data"]},"PaginatedSyncConfigsResponse":{"type":"object","properties":{"page":{"type":"number","description":"The current page number."},"page_size":{"type":"number","description":"The number of sync configs per page."},"total":{"type":"number","description":"The total number of sync configs matching the request."},"data":{"description":"The sync configs on this page.","type":"array","items":{"$ref":"#/components/schemas/SyncConfigResource"}}},"required":["page","page_size","total","data"]},"PaginatedWebhooksResponse":{"type":"object","properties":{"page":{"type":"number","description":"The current page number."},"page_size":{"type":"number","description":"The number of webhooks per page."},"total":{"type":"number","description":"The total number of webhooks matching the request."},"data":{"description":"The webhooks on this page.","type":"array","items":{"$ref":"#/components/schemas/WebhookResource"}}},"required":["page","page_size","total","data"]},"PatchAccountDto":{"type":"object","properties":{"status":{"description":"The new status of the account.","x-speakeasy-unknown-values":"allow","nullable":true,"allOf":[{"$ref":"#/components/schemas/StatusType"}]},"status_reasons":{"description":"The reasons explaining the new status. Replaces the existing reasons.","nullable":true,"type":"array","items":{"$ref":"#/components/schemas/PatchStatusReasonDto"}}}},"PatchConnectorProfileDto":{"type":"object","properties":{"name":{"type":"string","description":"The display name of the connector profile.","nullable":true},"authentication_config_key":{"type":"string","description":"The key of the connector's authentication configuration to use. Switching it usually requires resending the setup fields and secrets of the new method.","nullable":true},"environment":{"type":"string","description":"The environment of the authentication configuration (e.g. `production`).","nullable":true},"active":{"type":"boolean","description":"Whether the connector profile is active.","nullable":true},"is_default":{"type":"boolean","description":"Whether this is the connector's default profile. Marking a profile as default demotes the previous one; the last remaining default cannot be demoted.","nullable":true},"version":{"type":"string","description":"The connector version the profile uses.","nullable":true},"pinned_version":{"type":"string","description":"The connector version to pin the profile to. Only applies to Falcon-versioned connectors; ignored otherwise.","nullable":true},"owner":{"type":"string","description":"The owner of the pinned connector version (defaults to `stackone`). Accepts the wildcards `builtin` (the global `stackone` owner) and `custom` (the organization's own connectors).","nullable":true},"setup_fields":{"type":"object","additionalProperties":true,"description":"The non-secret setup field values, keyed by setup field key. Replaces the saved setup fields when provided.","nullable":true},"secrets":{"type":"object","additionalProperties":true,"description":"The secret field values, keyed by field key. Replaces the saved secrets when provided: resend a `__secretvalue:`-prefixed placeholder to keep a stored secret, send an empty object to clear all secrets, or omit the field to leave them unchanged.","nullable":true},"action_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"description":"The per-action enablement of the profile, keyed by action id.","nullable":true},"event_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"webhook_ids":{"type":"array","items":{"type":"string"}}},"required":["enabled","webhook_ids"]},"description":"The per-event-action configuration (enablement and subscribed webhooks), keyed by event action id.","nullable":true},"sync_config":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"cadence":{"type":"string"},"start_at":{"type":"string"},"full_sync_after":{"type":"string"},"auto_link":{"type":"boolean","description":"Whether the action syncs automatically on every account linked to this profile. When a save enables an action with no required parameters, omitting it means `true` and `false` is refused; a stored value not saved since may still read `false`. An action with required parameters cannot be newly synced or auto-linked."}},"required":["enabled","cadence","full_sync_after"]},"description":"The per-action data-sync configuration, keyed by action id.","nullable":true}}},"PatchScheduleDto":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether the schedule is active.","nullable":true}}},"PatchStatusReasonDto":{"type":"object","properties":{"code":{"description":"A machine-readable status code.","x-speakeasy-unknown-values":"allow","nullable":true,"allOf":[{"$ref":"#/components/schemas/StatusCode"}]},"description":{"type":"string","description":"A human-readable explanation of the status.","nullable":true},"timestamp":{"type":"string","format":"date-time","description":"When this reason was recorded."}},"required":["timestamp"]},"PatchSyncConfigDto":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether the action is syncable for the connector profile.","nullable":true},"cadence":{"type":"string","description":"How often the sync fires. ISO 8601 duration (e.g. `PT1H`).","nullable":true},"full_sync_after":{"type":"string","nullable":true,"description":"The point after which an incremental sync falls back to a full sync. ISO 8601 duration; `null` clears it (only accepted while the sync config is disabled, since an enabled one requires a value), omit to leave it unchanged."},"start_at":{"type":"string","format":"date-time","nullable":true,"description":"When the sync config should next be scheduled to fire; `null` clears it, omit to leave it unchanged."},"auto_link":{"type":"boolean","description":"Whether the action syncs automatically on every account linked to this connector profile. For an action with no required parameters it is always on: omitting it means `true` and `false` is refused. An action with required parameters cannot be auto-linked.","nullable":true}}},"ProfileConnectorResource":{"type":"object","properties":{"key":{"type":"string","description":"The connector key (e.g. `workday`)."},"name":{"type":"string","description":"The human-readable connector name (e.g. `Workday`)."},"logo_url":{"type":"string","description":"The URL of the connector's logo."},"categories":{"description":"The categories the connector belongs to (e.g. `[\"hris\"]`).","type":"array","items":{"type":"string"}},"release_stage":{"type":"string","description":"The release stage of the connector (e.g. `ga`, `beta`)."},"authentication_config_label":{"type":"string","nullable":true,"description":"The human-readable label of the profile's authentication configuration; `null` when the profile has no authentication configuration key."}},"required":["key","name","logo_url","categories","release_stage","authentication_config_label"]},"ProfileVersionResource":{"type":"object","properties":{"resolved":{"type":"string","nullable":true,"description":"The connector version the profile currently resolves to."},"pinned":{"type":"string","nullable":true,"description":"The explicitly pinned connector version; `null` when no version is pinned."},"owner":{"type":"string","nullable":true,"description":"The owner of the resolved connector version."}},"required":["resolved","pinned","owner"]},"ProviderError":{"type":"object","properties":{"status":{"type":"number","description":"HTTP status code of the provider error","example":400,"nullable":true},"url":{"type":"string","description":"URL that caused the error","example":"https://api.provider.com/v1/resource","nullable":true},"raw":{"type":"object","description":"Raw error response from the provider","example":{"message":"Invalid input parameters"},"nullable":true},"headers":{"type":"object","description":"Response headers","example":{"content-type":"application/json","x-request-id":"5678c28b211dace4e0a0f9171e6b88c5"},"nullable":true}}},"RequestTimedOutResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":408},"message":{"type":"string","description":"Error message","example":"Request timed out"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"RunErrorResource":{"type":"object","properties":{"message":{"type":"string","description":"A human-readable error message."},"code":{"type":"string","description":"A structured error code, if the workflow attached one.","nullable":true}},"required":["message"]},"RunRecordStatsResource":{"type":"object","properties":{"created":{"type":"number","description":"Records that did not exist before this run."},"updated":{"type":"number","description":"Records that existed and changed."},"unchanged":{"type":"number","description":"Records that existed and were unchanged."},"deleted":{"type":"number","description":"Records that no longer exist at the provider. Only resolvable on a full sync, so `null` on an incremental run.","nullable":true}},"required":["created","updated","unchanged"]},"RunResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the run (the Temporal workflow run id)."},"schedule_id":{"type":"string","description":"The schedule this run belongs to; `null` for legacy runs not tied to a schedule.","nullable":true},"account_id":{"type":"string","description":"The linked account this run synced."},"action_id":{"type":"string","description":"The action this run executed."},"status":{"type":"string","enum":["running","success","truncated","quota_exceeded","invalid_config","timed_out","provider_auth_failed","provider_rate_limited","provider_error","incomplete","failed",null],"description":"Why the run ended, or `running`; `null` for runs recorded before statuses were tracked. `truncated` stopped early; a full sync that stops early is not served, and reads keep the last complete sync; `failed` is any failure not classified more specifically.","x-speakeasy-unknown-values":"allow","nullable":true},"is_failure":{"type":"boolean","description":"Whether the run failed to do its whole job and needs attention."},"trigger_source":{"type":"string","description":"What triggered the run — `initial` (fired when a schedule is created) or `schedule` (a Temporal cadence fire).","nullable":true},"sync_mode":{"type":"string","enum":["full","incremental"],"description":"Whether the run re-fetched everything (`full`) or only records changed since the last run (`incremental`).","x-speakeasy-unknown-values":"allow"},"started_at":{"type":"string","format":"date-time","nullable":true,"description":"When the run began; `null` if it has not started."},"completed_at":{"type":"string","format":"date-time","nullable":true,"description":"When the run finished; `null` while running."},"synced_at":{"type":"string","format":"date-time","nullable":true,"description":"When the synced data became available for read; `null` unless the run's data is served, which a full sync that stopped early is not."},"record_count":{"type":"number","description":"The number of records written by the run; set for runs that completed or stopped early, `null` for runs that failed with an error, were refused before syncing, or are still running.","nullable":true},"record_stats":{"description":"How the record count breaks down. `null` when the run failed, was abandoned, or was a full sync that stopped early.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/RunRecordStatsResource"}]},"error":{"description":"Why the run failed or stopped early.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/RunErrorResource"}]},"workflow_id":{"type":"string","description":"The Temporal workflow id, stable across replays; useful for cross-referencing the run.","nullable":true}},"required":["id","account_id","action_id","is_failure","sync_mode"]},"ScheduleResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the schedule."},"sync_config_id":{"type":"string","description":"The sync config that bounds this schedule. Set on every schedule, hand-authored ones included — it is what permits the action to sync at all. Use `source` to tell how a schedule came to exist; `null` here means only that the schedule predates the field.","nullable":true},"account_id":{"type":"string","description":"The linked account this schedule syncs."},"action_id":{"type":"string","description":"The action this schedule runs."},"name":{"type":"string","description":"The human-readable name of the schedule."},"sync_params":{"allOf":[{"$ref":"#/components/schemas/SyncParamsResource"}],"description":"The parameters the action is called with on each run."},"params_hash":{"type":"string","description":"A hash of `sync_params`, distinguishing schedules for the same action."},"source":{"type":"string","enum":["auto_link","manual","unmapped_value",null],"description":"How the schedule came to exist: `auto_link` if its sync config fanned it out, `manual` if it was hand-authored. This is the discriminator between the two, not `sync_config_id`.","x-speakeasy-unknown-values":"allow","nullable":true},"enabled":{"type":"boolean","description":"Whether the schedule is currently active."},"cadence":{"type":"string","description":"How often the sync fires. ISO 8601 duration. Read-only: on `auto_link` schedules it comes from the sync config."},"full_sync_after":{"type":"string","description":"The point after which an incremental sync falls back to a full sync. ISO 8601 duration; `null` when unset. Read-only: on `auto_link` schedules it comes from the sync config.","nullable":true},"start_at":{"type":"string","format":"date-time","nullable":true,"description":"When the schedule was first scheduled to fire; `null` when unset. Read-only: on `auto_link` schedules it comes from the sync config."},"next_run_at":{"type":"string","format":"date-time","nullable":true,"description":"When the schedule will next fire; `null` when unset."},"last_run_at":{"type":"string","format":"date-time","nullable":true,"description":"When the most recent run completed; `null` until one has. A fire refused before syncing (`invalid_config`, `quota_exceeded`) sets `last_run_status` but not this."},"last_run_status":{"type":"string","description":"The status of the most recent run; `null` before its first run.","nullable":true},"last_run_is_failure":{"type":"boolean","description":"Whether the most recent run failed; `false` before its first run."},"last_run_error":{"type":"string","description":"Why the most recent run failed or stopped early.","nullable":true},"paused_reason":{"type":"string","description":"Why the schedule is not currently running even though `enabled` may be true. `sync_config_disabled` while its sync config is disabled or has been removed, `action_disabled` while the action is switched off on the connector profile, `action_not_syncable` while the connector version the profile is on no longer supports data sync for the action, `auto_link_disabled` while `auto_link` is off on a schedule that `auto_link` created (hand-authored schedules are unaffected by it), or an account-lifecycle reason such as the linked account being disabled. Only the widest cause currently holding the schedule back is reported, so clearing it may reveal another. The schedule keeps its own `enabled` value throughout. `null` means nothing is holding it back.","nullable":true},"created_at":{"type":"string","format":"date-time","description":"When the schedule was created."},"updated_at":{"type":"string","format":"date-time","description":"When the schedule was last updated."}},"required":["id","account_id","action_id","name","sync_params","params_hash","enabled","cadence","last_run_is_failure","created_at","updated_at"]},"StatusCode":{"type":"string","enum":["ACCOUNT_TOKEN_REFRESH_FAILURE","ACCOUNT_DELETED","ACCOUNT_DISABLED","INTEGRATION_INACTIVE","MONITORING_ERROR","CONNECTOR_UNAVAILABLE","unmapped_value",null],"description":"A machine-readable status code."},"StatusReasonResource":{"type":"object","properties":{"code":{"description":"A machine-readable status code.","x-speakeasy-unknown-values":"allow","nullable":true,"allOf":[{"$ref":"#/components/schemas/StatusCode"}]},"description":{"type":"string","description":"A human-readable explanation of the status.","nullable":true},"timestamp":{"type":"string","format":"date-time","description":"When this reason was recorded."}},"required":["timestamp"]},"StatusType":{"type":"string","enum":["active","inactive","suspended","archived","expired","error","unmapped_value",null]},"SyncConfigDeleteConflictResponse":{"type":"object","properties":{"statusCode":{"type":"number","example":409},"message":{"type":"string","description":"A human-readable explanation of the conflict.","example":"This sync config has 2 manually-created schedule(s). Pass ?force=true to delete it anyway."},"manual_schedule_count":{"type":"number","description":"The number of live, hand-authored schedules that depend on this sync config."}},"required":["statusCode","message","manual_schedule_count"]},"SyncConfigResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the sync config."},"connector_profile_id":{"type":"string","description":"The identifier of the connector profile this sync config belongs to."},"action_id":{"type":"string","description":"The action this sync config governs (e.g. `hris_list_employees`)."},"enabled":{"type":"boolean","description":"Whether the action is currently syncable for the connector profile."},"cadence":{"type":"string","description":"How often the sync fires. ISO 8601 duration (e.g. `PT1H`)."},"full_sync_after":{"type":"string","description":"The point after which an incremental sync falls back to a full sync. ISO 8601 duration; `null` when unset.","nullable":true},"start_at":{"type":"string","format":"date-time","nullable":true,"description":"When the sync config was first scheduled to fire; `null` when unset."},"auto_link":{"type":"boolean","description":"Whether the action syncs automatically on every account linked to this connector profile, including accounts linked later. Forced to `true` whenever a write leaves an action with no required parameters enabled; a config that is disabled, or not written since, may still read `false`."},"created_at":{"type":"string","format":"date-time","description":"When the sync config was created."},"updated_at":{"type":"string","format":"date-time","description":"When the sync config was last updated."}},"required":["id","connector_profile_id","action_id","enabled","cadence","auto_link","created_at","updated_at"]},"SyncParamsResource":{"type":"object","properties":{"path":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{}},{"type":"object","additionalProperties":true}]},"description":"Path parameters, keyed by parameter name.","nullable":true},"query":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{}},{"type":"object","additionalProperties":true}]},"description":"Query-string parameters, keyed by parameter name.","nullable":true},"body":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{}},{"type":"object","additionalProperties":true}]},"description":"Request-body parameters, keyed by parameter name.","nullable":true},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Request headers, keyed by header name. Values are always strings.","nullable":true}}},"TooManyRequestsResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":429},"message":{"type":"string","description":"Error message","example":"Too many requests"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"UnauthorizedResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":401},"message":{"type":"string","description":"Error message","example":"Unauthorized"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"UnifiedError":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":400,"nullable":true},"message":{"type":"string","description":"Error message","example":"Bad Request","nullable":true},"headers":{"type":"object","description":"Response headers","example":{"content-type":"application/json","x-request-id":"5678c28b211dace4e0a0f9171e6b88c5"},"nullable":true}}},"UnprocessableEntityResponse":{"type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code","example":422},"message":{"type":"string","description":"Error message","example":"Unprocessable Entity"},"timestamp":{"type":"string","description":"Timestamp when the error occurred","example":"2023-05-30T00:00:00.000Z","format":"date-time"}},"required":["statusCode","message","timestamp"]},"ValidationRuleConditionResource":{"type":"object","properties":{"field":{"type":"string","description":"The parameter the condition tests."},"equals":{"type":"string","description":"The condition holds when the tested parameter equals this value.","nullable":true},"not_equals":{"type":"string","description":"The condition holds when the tested parameter differs from this value.","nullable":true},"present":{"type":"boolean","description":"The condition holds on the tested parameter being present (or absent).","nullable":true}},"required":["field"]},"ValidationRuleResource":{"type":"object","properties":{"type":{"type":"string","description":"The kind of rule.","enum":["at_least_one_of","required_if","mutually_exclusive"],"x-speakeasy-unknown-values":"allow"},"fields":{"description":"The parameters the rule spans, for `at_least_one_of` and `mutually_exclusive`.","nullable":true,"type":"array","items":{"type":"string"}},"field":{"type":"string","description":"The parameter the rule makes conditionally required, for `required_if`.","nullable":true},"condition":{"allOf":[{"$ref":"#/components/schemas/ValidationRuleConditionResource"}],"description":"When `field` becomes required, for `required_if`.","nullable":true},"error_message":{"type":"string","description":"The message the action returns when the rule is violated.","nullable":true}},"required":["type"]},"WebhookDetailResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the webhook."},"label":{"type":"string","description":"The display label of the webhook."},"webhook_url":{"type":"string","description":"The URL webhook events are delivered to."},"events":{"description":"The unified event names the webhook is subscribed to (e.g. `employee.created`).","type":"array","items":{"type":"string"}},"status":{"description":"The status of the webhook.","x-speakeasy-unknown-values":"allow","allOf":[{"$ref":"#/components/schemas/StatusType"}]},"status_reasons":{"description":"The reasons explaining the current status; empty when none are recorded.","type":"array","items":{"$ref":"#/components/schemas/WebhookStatusReasonResource"}},"provider_events":{"type":"object","nullable":true,"additionalProperties":{"type":"object","description":"The unified events sourced from the provider, keyed by unified event name.","additionalProperties":{"$ref":"#/components/schemas/WebhookProviderEventConfigResource"}},"description":"The per-provider event configuration, keyed by provider key and then by unified event name. Only resolved when `expand=provider_events` is requested; `null` otherwise."},"created_at":{"type":"string","format":"date-time","description":"When the webhook was created."},"updated_at":{"type":"string","format":"date-time","description":"When the webhook was last updated."},"signing_secret":{"type":"string","nullable":true,"description":"The secret used to sign webhook payloads, for signature verification; `null` when none is stored."}},"required":["id","label","webhook_url","events","status","status_reasons","provider_events","created_at","updated_at","signing_secret"]},"WebhookEventSourceResource":{"type":"object","properties":{"events":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WebhookEventToggleResource"},"description":"The provider-specific events of this source, keyed by provider event."}},"required":["events"]},"WebhookEventToggleResource":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether the event is enabled."}},"required":["enabled"]},"WebhookProviderEventConfigResource":{"type":"object","properties":{"synthetic":{"description":"The StackOne-synthesised source of the event, when the provider has one.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WebhookEventToggleResource"}]},"programmatic":{"description":"The provider events wired up programmatically by StackOne.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WebhookEventSourceResource"}]},"manual":{"description":"The provider events requiring manual setup in the external system.","nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/WebhookEventSourceResource"}]}}},"WebhookResource":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the webhook."},"label":{"type":"string","description":"The display label of the webhook."},"webhook_url":{"type":"string","description":"The URL webhook events are delivered to."},"events":{"description":"The unified event names the webhook is subscribed to (e.g. `employee.created`).","type":"array","items":{"type":"string"}},"status":{"description":"The status of the webhook.","x-speakeasy-unknown-values":"allow","allOf":[{"$ref":"#/components/schemas/StatusType"}]},"status_reasons":{"description":"The reasons explaining the current status; empty when none are recorded.","type":"array","items":{"$ref":"#/components/schemas/WebhookStatusReasonResource"}},"provider_events":{"type":"object","nullable":true,"additionalProperties":{"type":"object","description":"The unified events sourced from the provider, keyed by unified event name.","additionalProperties":{"$ref":"#/components/schemas/WebhookProviderEventConfigResource"}},"description":"The per-provider event configuration, keyed by provider key and then by unified event name. Only resolved when `expand=provider_events` is requested; `null` otherwise."},"created_at":{"type":"string","format":"date-time","description":"When the webhook was created."},"updated_at":{"type":"string","format":"date-time","description":"When the webhook was last updated."}},"required":["id","label","webhook_url","events","status","status_reasons","provider_events","created_at","updated_at"]},"WebhookStatusReasonResource":{"type":"object","properties":{"code":{"type":"string","description":"A machine-readable status code.","nullable":true},"description":{"type":"string","description":"A human-readable explanation of the status.","nullable":true},"timestamp":{"type":"string","format":"date-time","description":"When this reason was recorded."}},"required":["timestamp"]}}}}